public void Create_and_initialize_foreign_key() { var table = new Table("dbo.MyTable"); var column0 = new Column("Foo", "int"); var column1 = new Column("Bar", "int"); table.AddColumn(column0); table.AddColumn(column1); var referencedTable = new Table("dbo.MyReferencedTable"); var referencedColumn0 = new Column("ReferencedFoo", "int"); var referencedColumn1 = new Column("ReferencedBar", "int"); referencedTable.AddColumn(referencedColumn0); referencedTable.AddColumn(referencedColumn1); var foreignKey = new ForeignKey( "MyForeignKey", new[] { column0, column1 }, new[] { referencedColumn0, referencedColumn1 }, cascadeDelete: true); Assert.Equal("MyForeignKey", foreignKey.Name); Assert.IsAssignableFrom<IReadOnlyList<Column>>(foreignKey.Columns); Assert.Equal(2, foreignKey.Columns.Count); Assert.Same(column0, foreignKey.Columns[0]); Assert.Same(column1, foreignKey.Columns[1]); Assert.Same(table, foreignKey.Table); Assert.IsAssignableFrom<IReadOnlyList<Column>>(foreignKey.ReferencedColumns); Assert.Equal(2, foreignKey.ReferencedColumns.Count); Assert.Same(referencedColumn0, foreignKey.ReferencedColumns[0]); Assert.Same(referencedColumn1, foreignKey.ReferencedColumns[1]); Assert.Same(referencedTable, foreignKey.ReferencedTable); Assert.True(foreignKey.CascadeDelete); }
public void Columns_gets_read_only_list_of_columns() { var table = new Table("dbo.MyTable"); var column0 = new Column("Foo", "int"); var column1 = new Column("Bar", "int"); table.AddColumn(column0); table.AddColumn(column1); Assert.IsAssignableFrom<IReadOnlyList<Column>>(table.Columns); Assert.Equal(2, table.Columns.Count); Assert.Same(column0, table.Columns[0]); Assert.Same(column1, table.Columns[1]); }
public void Create_and_initialize_primary_key() { var table = new Table("dbo.MyTable"); var column0 = new Column("Foo", "int"); var column1 = new Column("Bar", "int"); table.AddColumn(column0); table.AddColumn(column1); var primaryKey = new PrimaryKey( "MyPrimaryKey", new[] { column0, column1, }, isClustered: true); Assert.Equal("MyPrimaryKey", primaryKey.Name); Assert.IsAssignableFrom<IReadOnlyList<Column>>(table.Columns); Assert.Equal(2, primaryKey.Columns.Count); Assert.Same(column0, primaryKey.Columns[0]); Assert.Same(column1, primaryKey.Columns[1]); Assert.Same(table, primaryKey.Table); Assert.True(primaryKey.IsClustered); }
public void AddColumn_adds_specified_column() { var table = new Table("dbo.MyTable"); Assert.Equal(0, table.Columns.Count); var column = new Column("Foo", "int"); table.AddColumn(column); Assert.Equal(1, table.Columns.Count); Assert.Same(table, column.Table); Assert.Same(column, table.Columns[0]); }
private static Column BuildColumn(Table table, IProperty property) { var column = new Column(property.ColumnName(), property.PropertyType, property.ColumnType()) { IsNullable = property.IsNullable, DefaultValue = property.ColumnDefaultValue(), DefaultSql = property.ColumnDefaultSql(), ValueGenerationStrategy = property.ValueGenerationOnSave, IsTimestamp = property.PropertyType == typeof(byte[]) && property.IsConcurrencyToken }; table.AddColumn(column); return column; }
private static Column CreateColumn(Type clrType) { var column = new Column("Username", clrType); var table = new Table("dbo.Users"); table.AddColumn(column); return column; }
public void GenerateDataType_for_byte_array_concurrency_token() { var column = new Column("Username", typeof(byte[])) { IsTimestamp = true }; var table = new Table("dbo.Users"); table.AddColumn(column); Assert.Equal("rowversion", GenerateDataType(column)); }
public void GenerateDataType_for_byte_array_key() { var column = new Column("Username", typeof(byte[])); var table = new Table("dbo.Users") { PrimaryKey = new PrimaryKey("PK_Users", new[] { column }) }; table.AddColumn(column); Assert.Equal("varbinary(128)", GenerateDataType(column)); }
public void GenerateDataType_for_string_key() { var column = new Column("Username", typeof(string)); var table = new Table("dbo.Users"); table.PrimaryKey = new PrimaryKey("PK_Users", new List<Column>() { column }.AsReadOnly()); table.AddColumn(column); Assert.Equal("nvarchar(128)", GenerateDataType(column)); }
public void GetColumn_finds_column_by_name() { var table = new Table("dbo.MyTable"); var column0 = new Column("Foo", "int"); var column1 = new Column("Bar", "int"); table.AddColumn(column0); table.AddColumn(column1); Assert.Same(column0, table.GetColumn("Foo")); Assert.Same(column1, table.GetColumn("Bar")); }