public CommandBuilder(string text, DatabaseSchema schema, int bulkIndex) { _text = new StringBuilder(text); _schemaProvider = schema.SchemaProvider; _customInterfaceProvider = schema.ProviderHelper; _parameterSuffix = (bulkIndex >= 0) ? "_c" + bulkIndex : string.Empty; }
public void CanGetStoredProcedure() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var result = schema.GetStoredProcedures().Where(s => s.Name == "get_customers").SingleOrDefault(); Assert.IsNotNull(result); }
public void CanGetView() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var result = schema.GetTables().Where(s => s.ActualName == "view_customers").SingleOrDefault(); Assert.IsNotNull(result); Assert.AreEqual(TableType.View, result.Type); }
private AdoAdapter(IConnectionProvider connectionProvider, AdoAdapterFinder finder, ProviderHelper providerHelper, Lazy<AdoAdapterRelatedFinder> relatedFinder, DatabaseSchema schema) { _connectionProvider = connectionProvider; _finder = finder; _providerHelper = providerHelper; _relatedFinder = relatedFinder; _schema = schema; }
public void ShouldFindForeignKeysUsingCreateTableSql() { var providerHelper = new ProviderHelper(); var connectionProvider = providerHelper.GetProviderByConnectionString(ConnectionString); var schemaProvider = connectionProvider.GetSchemaProvider(); var databaseSchema = DatabaseSchema.Get(connectionProvider, providerHelper); var table = databaseSchema.FindTable("orderitems_fk_test"); var foreignKeys = schemaProvider.GetForeignKeys(table); var items_fk_test = foreignKeys.FirstOrDefault(fk => fk.MasterTable.Name == "items_fk_test"); Assert.IsNotNull(items_fk_test); CollectionAssert.AreEqual(new[] { "ItemsId" }, items_fk_test.Columns.AsEnumerable()); CollectionAssert.AreEqual(new[] { "ItemId" }, items_fk_test.UniqueColumns.AsEnumerable()); var orders_fk_test = foreignKeys.FirstOrDefault(fk => fk.MasterTable.Name == "orders_fk_test"); Assert.IsNotNull(orders_fk_test); CollectionAssert.AreEqual(new[] { "OrdersId" }, orders_fk_test.Columns.AsEnumerable()); CollectionAssert.AreEqual(new[] { "OrderId" }, orders_fk_test.UniqueColumns.AsEnumerable()); }
protected override void OnSetup() { var settingsKeys = ((IDictionary <string, object>)Settings).Keys; if (settingsKeys.Contains("ConnectionString")) { _connectionProvider = ProviderHelper.GetProviderByConnectionString(Settings.ConnectionString); } else if (settingsKeys.Contains("Filename")) { _connectionProvider = ProviderHelper.GetProviderByFilename(Settings.Filename); } else if (settingsKeys.Contains("ConnectionName")) { _connectionProvider = ProviderHelper.GetProviderByConnectionName(Settings.ConnectionName); } _schema = DatabaseSchema.Get(_connectionProvider); _relatedFinder = new Lazy <AdoAdapterRelatedFinder>(CreateRelatedFinder); }
private ICommandBuilder[] GetPagedQueryCommandBuilders(SimpleQuery query, Int32 bulkIndex, out IEnumerable <SimpleQueryClauseBase> unhandledClauses) { var commandBuilders = new List <ICommandBuilder>(); var unhandledClausesList = new List <SimpleQueryClauseBase>(); unhandledClauses = unhandledClausesList; IEnumerable <SimpleQueryClauseBase> unhandledClausesForPagedQuery; ICommandBuilder mainCommandBuilder = new QueryBuilder(this, bulkIndex).Build(query, out unhandledClausesForPagedQuery); unhandledClausesList.AddRange(unhandledClausesForPagedQuery); const int maxInt = 2147483646; SkipClause skipClause = query.Clauses.OfType <SkipClause>().FirstOrDefault() ?? new SkipClause(0); TakeClause takeClause = query.Clauses.OfType <TakeClause>().FirstOrDefault() ?? new TakeClause(maxInt); if (skipClause.Count != 0 || takeClause.Count != maxInt) { var queryPager = ProviderHelper.GetCustomProvider <IQueryPager>(ConnectionProvider); if (queryPager == null) { unhandledClausesList.AddRange(query.OfType <SkipClause>()); unhandledClausesList.AddRange(query.OfType <TakeClause>()); } IEnumerable <string> commandTexts = queryPager.ApplyPaging(mainCommandBuilder.Text, skipClause.Count, takeClause.Count); foreach (string commandText in commandTexts) { var commandBuilder = new CommandBuilder(commandText, _schema, mainCommandBuilder.Parameters); commandBuilders.Add(commandBuilder); } } return(commandBuilders.ToArray()); }
public void TestProviderIsSqlProvider() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); Assert.True(provider is PgConnectionProvider); }
private AdoAdapter(IConnectionProvider connectionProvider, AdoAdapterFinder finder, ProviderHelper providerHelper, Lazy <AdoAdapterRelatedFinder> relatedFinder, DatabaseSchema schema) { _connectionProvider = connectionProvider; _finder = finder; _providerHelper = providerHelper; _relatedFinder = relatedFinder; _schema = schema; }
public void CanGetArrayTypesTableColumns() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var table = schema.GetTables().Where(s => s.ActualName == "array_types").Single(); var column = schema.GetColumns(table).Where(p => p.ActualName == "id").Single(); Assert.True(column.IsIdentity); Assert.AreEqual(DbType.Int32, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "integer_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "real_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "double_precision_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "varchar_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "integer_multi_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "real_multi_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "double_precision_multi_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "varchar_multi_array_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); }
public void TestProviderIsSqlProvider() { var provider = new ProviderHelper().GetProviderByConnectionString(Properties.Settings.Default.ConnectionString); Assert.IsInstanceOf(typeof(SqlConnectionProvider), provider); }
public void CanGetViewColumns() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var table = schema.GetTables().Where(s => s.ActualName == "view_customers").Single(); var column = schema.GetColumns(table).Where(p => p.ActualName == "name").Single(); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Varchar, column.NpgsqlDbType); column = schema.GetColumns(table).Where(p => p.ActualName == "address").Single(); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Varchar, column.NpgsqlDbType); column = schema.GetColumns(table).Where(p => p.ActualName == "id").Single(); Assert.AreEqual(DbType.Int32, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); }
public void TestProviderWithConnectionString() { var provider = new ProviderHelper().GetProviderByConnectionString(string.Format("data source={0}", DatabasePath)); Assert.IsInstanceOf(typeof(SqliteConnectionProvider), provider); }
public void TestProviderWithFileName() { var provider = new ProviderHelper().GetProviderByFilename(DatabasePath); Assert.IsInstanceOf(typeof(SqliteConnectionProvider), provider); }
public void TestProviderWithConnectionString() { var provider = new ProviderHelper().GetProviderByConnectionString(_helper.ConnectionString); Assert.IsInstanceOf(typeof(AccessConnectionProvider), provider); }
public void TestProviderIsInformixConnectionProvider() { TraceHelper.TraceTestName(); var provider = new ProviderHelper().GetProviderByConnectionString(_connectionString); Assert.IsInstanceOf(typeof(InformixConnectionProvider), provider); }
private IEnumerable<Parameter> GetParameters(string schema, string name) { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schemaProvider = provider.GetSchemaProvider(); return schemaProvider.GetParameters(schemaProvider.GetStoredProcedures().Where(p => p.Schema == schema && p.Name == name).First()); }
public void CanGetStoredProcedureParameters() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var proc = schema.GetStoredProcedures().Where(s => s.Name == "test_return").SingleOrDefault(); var result = schema.GetParameters(proc).ToArray(); Assert.AreEqual(2, result.Count()); Assert.AreEqual(null, result[0].Name); Assert.AreEqual(typeof (int), result[0].Type); Assert.AreEqual(ParameterDirection.ReturnValue, result[0].Direction); Assert.AreEqual("double_me", result[1].Name); Assert.AreEqual(typeof (int), result[1].Type); Assert.AreEqual(ParameterDirection.Input, result[1].Direction); }
public void CanGetBasicTypesTableColumns() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var table = schema.GetTables().Where(s => s.ActualName == "basic_types").Single(); var column = schema.GetColumns(table).Where(p => p.ActualName == "id").Single(); Assert.True(column.IsIdentity); Assert.AreEqual(DbType.Int32, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "smallint_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Int16, column.DbType); //Assert.AreEqual(NpgsqlDbType.Smallint, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "integer_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Int32, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bigint_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Int64, column.DbType); //Assert.AreEqual(NpgsqlDbType.Bigint, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "decimal_unlimited_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Decimal, column.DbType); //Assert.AreEqual(NpgsqlDbType.Numeric, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "decimal_10_2_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Decimal, column.DbType); //Assert.AreEqual(NpgsqlDbType.Numeric, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "numeric_unlimited_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Decimal, column.DbType); //Assert.AreEqual(NpgsqlDbType.Numeric, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "numeric_10_2_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Decimal, column.DbType); //Assert.AreEqual(NpgsqlDbType.Numeric, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "real_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Single, column.DbType); //Assert.AreEqual(NpgsqlDbType.Real, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "double_precision_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Double, column.DbType); //Assert.AreEqual(NpgsqlDbType.Double, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "serial_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Int32, column.DbType); //Assert.AreEqual(NpgsqlDbType.Integer, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bigserial_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Int64, column.DbType); //Assert.AreEqual(NpgsqlDbType.Bigint, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "money_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Currency, column.DbType); //Assert.AreEqual(NpgsqlDbType.Money, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "character_varying_unlimited_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Varchar, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "character_varying_30_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Varchar, column.NpgsqlDbType); Assert.AreEqual(30, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "varchar_unlimited_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Varchar, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "varchar_30_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Varchar, column.NpgsqlDbType); Assert.AreEqual(30, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "character_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "character_10_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(10, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "char_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "char_10_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(10, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "text_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bytea_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Binary, column.DbType); //Assert.AreEqual(NpgsqlDbType.Bytea, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "timestamp_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.DateTime, column.DbType); //Assert.AreEqual(NpgsqlDbType.Timestamp, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "timestamp_without_time_zone_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.DateTime, column.DbType); //Assert.AreEqual(NpgsqlDbType.Timestamp, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "timestamptz_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.DateTime, column.DbType); //Assert.AreEqual(NpgsqlDbType.TimestampTZ, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "timestamp_with_time_zone_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.DateTime, column.DbType); //Assert.AreEqual(NpgsqlDbType.TimestampTZ, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "date_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Date, column.DbType); //Assert.AreEqual(NpgsqlDbType.Date, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "time_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Time, column.DbType); //Assert.AreEqual(NpgsqlDbType.Time, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "time_without_time_zone_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Time, column.DbType); //Assert.AreEqual(NpgsqlDbType.Time, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "timetz_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Time, column.DbType); //Assert.AreEqual(NpgsqlDbType.TimeTZ, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "time_with_time_zone_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Time, column.DbType); //Assert.AreEqual(NpgsqlDbType.TimeTZ, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "interval_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Interval, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "boolean_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Boolean, column.DbType); //Assert.AreEqual(NpgsqlDbType.Boolean, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "point_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Point, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "lseg_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.LSeg, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "box_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Box, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "path_closed_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Path, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "path_open_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Path, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "polygon_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Polygon, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "circle_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Circle, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "cidr_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "inet_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Inet, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "macaddr_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bit_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Bit, column.NpgsqlDbType); Assert.AreEqual(1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bit_10_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Object, column.DbType); //Assert.AreEqual(NpgsqlDbType.Bit, column.NpgsqlDbType); Assert.AreEqual(10, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bit_varying_unlimited_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "bit_varying_10_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(10, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "tsvector_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "tsquery_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.String, column.DbType); //Assert.AreEqual(NpgsqlDbType.Text, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "uuid_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Guid, column.DbType); //Assert.AreEqual(NpgsqlDbType.Uuid, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); column = schema.GetColumns(table).Where(p => p.ActualName == "oid_field").Single(); Assert.False(column.IsIdentity); Assert.AreEqual(DbType.Int64, column.DbType); //Assert.AreEqual(NpgsqlDbType.Bigint, column.NpgsqlDbType); Assert.AreEqual(-1, column.MaxLength); }
public void CanGetForeignKeys() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var table = schema.GetTables().Where(s => s.ActualName == "order_items").SingleOrDefault(); var result = schema.GetForeignKeys(table).ToList(); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count()); var fk = result.Where(p => p.MasterTable.Name == "orders").FirstOrDefault(); Assert.IsNotNull(fk); Assert.AreEqual("public", fk.DetailTable.Schema); Assert.AreEqual("order_items", fk.DetailTable.Name); Assert.AreEqual(1, fk.Columns.Length); Assert.AreEqual("order_id", fk.Columns[0]); Assert.AreEqual("public", fk.MasterTable.Schema); Assert.AreEqual("orders", fk.MasterTable.Name); Assert.AreEqual(1, fk.UniqueColumns.Length); Assert.AreEqual("id", fk.UniqueColumns[0]); fk = result.Where(p => p.MasterTable.Name == "items").FirstOrDefault(); Assert.IsNotNull(fk); Assert.AreEqual("public", fk.DetailTable.Schema); Assert.AreEqual("order_items", fk.DetailTable.Name); Assert.AreEqual(1, fk.Columns.Length); Assert.AreEqual("item_id", fk.Columns[0]); Assert.AreEqual("public", fk.MasterTable.Schema); Assert.AreEqual("items", fk.MasterTable.Name); Assert.AreEqual(1, fk.UniqueColumns.Length); Assert.AreEqual("id", fk.UniqueColumns[0]); }
public void CanGetPrimaryKeyWhenTableHasNoPrimaryKey() { var provider = new ProviderHelper().GetProviderByConnectionString(ConfigurationManager.ConnectionStrings["Test"].ConnectionString); var schema = provider.GetSchemaProvider(); var table = schema.GetTables().Where(s => s.ActualName == "no_primary_key_test").SingleOrDefault(); var result = schema.GetPrimaryKey(table); Assert.IsNotNull(result); Assert.AreEqual(0, result.Length); }