protected CommandBuilderTestBase() { CurrentSource = new Source("My Data"); CurrentSource.Schemas.Add("SchemaA"); CurrentSource.AddFunction("Function A", "dbo", "My Definition"); CurrentSource.AddStoredProcedure("Stored Procedure A", "dbo", "My Definition"); var Table = CurrentSource.AddTable("Table A", "dbo"); Table.AddCheckConstraint("Constraint A", "My Definition"); Table.AddColumn <int>("Column A", DbType.Int32); Table.AddTrigger("Trigger A", "My Definition", TriggerType.Insert); //Table.AddForeignKey("Column A", "Foreign Table", "Foreign Column"); CurrentSource.AddView("View A", "dbo", "My Definition"); var ForeignTable = CurrentSource.AddTable("Foreign Table", "dbo"); ForeignTable.AddColumn <int>("Foreign Column", DbType.Int32); Table.SetupForeignKeys(); DesiredSource = new Source("My Data"); DesiredSource.Schemas.Add("SchemaA"); DesiredSource.AddFunction("Function A", "dbo", "My Definition 2"); DesiredSource.AddStoredProcedure("Stored Procedure A", "dbo", "My Definition 2"); Table = DesiredSource.AddTable("Table A", "dbo"); Table.AddCheckConstraint("Constraint A", "My Definition2"); Table.AddColumn <int>("Column A", DbType.Int32); Table.AddColumn <string>("Column B", DbType.String); Table.AddTrigger("Trigger A", "My Definition 2", TriggerType.Update); Table.AddForeignKey("Column A", "Foreign Table", "Foreign Column"); DesiredSource.AddView("View A", "dbo", "My Definition 2"); ForeignTable = DesiredSource.AddTable("Foreign Table", "dbo"); ForeignTable.AddColumn <int>("Foreign Column", DbType.Int32); Table.SetupForeignKeys(); }
public void FillSource() { var TempTableTriggers = new TableTriggers(); var TempSource = new Source("My Source"); _ = TempSource.AddTable("Table A", "dbo"); var ConstraintsToAdd = new List <dynamic> { new Dynamo(new { Table = "Table A", Name = "Trigger A", Type = 1, Definition = "Definition A" }) }; TempTableTriggers.FillSource(ConstraintsToAdd, TempSource); var TempTable2 = TempSource.Tables[0]; var Trigger = TempTable2.Triggers[0]; Assert.Equal("Trigger A", Trigger.Name); Assert.Equal("Definition A", Trigger.Definition); Assert.Equal(TriggerType.Insert, Trigger.Type); }
public void SetupForeignKeysOneColumnPointingToKey() { var TempSource = new Source("Source1"); var TempTable = TempSource.AddTable("Name", "dbo"); var ForeignTable = TempSource.AddTable("ForeignKeyTable", "dbo"); var TempColumn = TempTable.AddColumn <int>("A", System.Data.DbType.Int32, 0, true, true, true, true, true, "ForeignKeyTable", "ForeignKeyColumn", 1, null, true, true, true); _ = ForeignTable.AddColumn <int>("ForeignKeyColumn", System.Data.DbType.Int32, 0, true, true, true, true, true, null, null, 1, null, true, true, true); Assert.NotEmpty(TempTable.Columns); Assert.Empty(TempTable.Constraints); Assert.Equal("Name", TempTable.Name); Assert.NotNull(TempTable.Source); Assert.Empty(TempTable.Triggers); TempTable.SetupForeignKeys(); Assert.True(TempColumn.OnDeleteCascade); Assert.True(TempColumn.OnDeleteSetNull); Assert.True(TempColumn.OnUpdateCascade); }
public void AddTable() { var TempSource = new Source("MySource"); var TempTable = TempSource.AddTable("TableName", "dbo"); Assert.Equal("TableName", TempTable.Name); Assert.Empty(TempTable.Columns); Assert.Empty(TempTable.Constraints); Assert.Equal(TempSource, TempTable.Source); Assert.Empty(TempTable.Triggers); }
public void FillSource() { var TempTableForeignKeys = new TableForeignKeys(); var TempSource = new Source("My Source"); var TempTable = TempSource.AddTable("Table A", "dbo"); TempTable.AddColumn <int>("Column A", DbType.Int32, foreignKeyTable: "Table B", foreignKeyColumn: "Column B"); var TempForeignTable = TempSource.AddTable("Table B", "dbo"); TempForeignTable.AddColumn <int>("Column B", DbType.Int32); var ConstraintsToAdd = new List <dynamic> { new Dynamo(new { }) }; TempTableForeignKeys.FillSource(ConstraintsToAdd, TempSource); var TempTable2 = (Modeler.Providers.Table)TempSource.Tables.First(x => x.Name == "Table A"); Assert.Equal(TempForeignTable.Columns[0], TempTable2.Columns[0].ForeignKey[0]); }
public void Copy() { var TempSource = new Source("MySource"); _ = TempSource.AddTable("TableName", "dbo"); _ = TempSource.AddView("ViewName", "dbo", "ViewDefinition"); _ = TempSource.AddStoredProcedure("ProcedureName", "dbo", "ProcedureDefinition"); _ = TempSource.AddFunction("FunctionName", "dbo", "FunctionDefinition"); var TempCopy = TempSource.Copy(); Assert.Equal(TempSource, TempCopy); }
public void FillSource() { var TempTableColumns = new TableColumns(); var TempSource = new Source("My Source"); var TempTable = TempSource.AddTable("Table A", "dbo"); var ConstraintsToAdd = new List <dynamic> { new Dynamo(new { Table = "Table A", Definition = "My Definition", Column = "Column A", COLUMN_TYPE = "Int", MAX_LENGTH = 4, IS_NULLABLE = false, IS_IDENTITY = false, IS_INDEX = 1, PRIMARY_KEY = "PK_Table_A", UNIQUE = "IX_Table_A", FOREIGN_KEY_TABLE = "", FOREIGN_KEY_COLUMN = "", DEFAULT_VALUE = "", ComputedColumnSpecification = "" }) }; TempTableColumns.FillSource(ConstraintsToAdd, TempSource); var TempTable2 = (Modeler.Providers.Table)TempSource.Tables[0]; var Column = TempTable2.Columns[0]; Assert.Equal("Column A", Column.Name); Assert.Equal(DbType.Int32, Column.DataType); Assert.False(Column.AutoIncrement); Assert.Equal("", Column.ComputedColumnSpecification); Assert.Equal("", Column.Default); Assert.Empty(Column.ForeignKey); Assert.True(Column.Index); Assert.Equal(4, Column.Length); Assert.False(Column.Nullable); Assert.False(Column.OnDeleteCascade); Assert.False(Column.OnDeleteSetNull); Assert.False(Column.OnUpdateCascade); Assert.Equal(TempTable, Column.ParentTable); Assert.True(Column.PrimaryKey); Assert.True(Column.Unique); }
public void FillSource() { var TempCheckConstraints = new CheckConstraints(); var TempSource = new Source("My Source"); var TableA = TempSource.AddTable("Table A", "dbo"); var ConstraintsToAdd = new List <dynamic> { new Dynamo(new { Table = "Table A", Name = "Constraint A", Definition = "(Definition A)" }) }; TempCheckConstraints.FillSource(ConstraintsToAdd, TempSource); var Constraint = TempSource.Tables[0].Constraints[0]; Assert.Equal("Definition A", Constraint.Definition); Assert.Equal("Constraint A", Constraint.Name); Assert.Equal(TableA, Constraint.ParentTable); }