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();
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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]);
        }
Exemple #6
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);
        }
Exemple #7
0
        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);
        }