Ejemplo n.º 1
0
        public void UpgradeDatabase_UpgradingMissingTable_ShouldOnlyCreateIt()
        {
            var process = new ProcessDefinition(Constants.AccountProcessName);
            process.IsStateEnabled = true;
            var table = new TableDefinition(Constants.AccountProcessName);
            table.Relationships.Add(new TableRelationshipDefinition {FKTableName = "fkt"});
            table.FieldList.Add(new TableFieldDefinition {IsPrimaryKey = true});
            process.TableList.Add(table);

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, null);
            gen.UpgradeDatabase(process);

            Assert.AreEqual(29, actionsCalled.Count);

            Assert.IsTrue(Contains(actionsCalled, "GetTableDefinition"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateTableSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetAddForeignKeySql"));
            Assert.IsTrue(Contains(actionsCalled, "GetInsertUpdateStates"));
            Assert.IsTrue(Contains(actionsCalled, "GetPrimaryKeyAlterConstraintSql"));
            Assert.IsTrue(Contains(actionsCalled, "ExecuteSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateAuditTable"));
            Assert.IsTrue(Contains(actionsCalled, "GetAuditTriggerScript"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateIndexesSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateBinaryContentTable"));
            Assert.IsTrue(Contains(actionsCalled, "GetApprovalAllowDelegationFixScript"));

            // If process name equals Constants.AccountProcessName
            Assert.IsTrue(Contains(actionsCalled, "GetAccountsLdapProfileFixScript"));
        }
Ejemplo n.º 2
0
        public void UpgradeDatabase_DerivedProcess_CreatesForeignKeyToBaseTable()
        {
            var process = new ProcessDefinition("name");
            var table = new TableDefinition("name");
            table.AddBaseProcess("BaseProcessName", process.Name);
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = "Id" });
            process.TableList.Add(table);

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, null);
            gen.UpgradeDatabase(process);

            Assert.IsTrue(Contains(actionsCalled, "GetAddForeignKeySql"));
        }
Ejemplo n.º 3
0
        public void UpgradeDatabase_UpgradingExistingTable_UseIdentityInsertOnlyIfHasIdentityColumn()
        {
            var process = new ProcessDefinition("name");
            var table = new TableDefinition("name");
            table.Relationships.Add(new TableRelationshipDefinition { Name = "FK_1", FKTableName = "fkt" });
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = "Id" });
            process.TableList.Add(table);

            var dbTable = DbTableDefinition.Create("table", new DbColumnDefinition[] { }, new[] { DbForeignKeyDefinition.Create("FK_1", string.Empty, new[] { "Id" }, "table", new[] { "Id" }) });

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, dbTable);
            gen.UpgradeDatabase(process);

            Assert.IsFalse(Contains(actionsCalled, "GetIdentityInsertSql"));

            table.FieldList.Clear();
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = false, GenerateDbColumn = true, ColumnName = "Id" });
            actionsCalled.Clear();

            gen.UpgradeDatabase(process);
            Assert.IsFalse(Contains(actionsCalled, "GetIdentityInsertSql"));
        }
Ejemplo n.º 4
0
        public void UpgradeDatabase_GetFKConstraintsSql_WontBeCalled_IfPrimaryKeyNotFound()
        {
            var process = new ProcessDefinition("name");
            var table = new TableDefinition("name");
            table.Relationships.Add(new TableRelationshipDefinition { FKTableName = "fkt" });
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = "Id" });
            process.TableList.Add(table);

            var dbTable = DbTableDefinition.Create(
                "table",
                new DbColumnDefinition[] { },
                new[] { DbForeignKeyDefinition.Create(string.Empty, string.Empty, new[] { "IdNew" }, "table", new[] { "IdNew" }) });

            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, dbTable);
            gen.UpgradeDatabase(process);

            Assert.IsFalse(Contains(actionsCalled, "GetFKConstraintsSql"));
        }
Ejemplo n.º 5
0
        public void UpgradeDatabase_UpgradingExistingTable_ShouldUpdateIt()
        {
            var process = new ProcessDefinition("name");
            process.IsStateEnabled = true;
            var table = new TableDefinition("name");
            table.Relationships.Add(new TableRelationshipDefinition { Name = "FK_1", FKTableName = "fkt" });
            table.FieldList.Add(new TableFieldDefinition { IsPrimaryKey = true, IsIdentity = true, GenerateDbColumn = true, ColumnName = Constants.IdColumnName});
            process.TableList.Add(table);


            var dbTable = DbTableDefinition.Create(
                "table",
                new DbColumnDefinition[] { },
                new[] { DbForeignKeyDefinition.Create("FK_1", string.Empty, new[] { Constants.IdColumnName }, "table", new[] { Constants.IdColumnName }) });
            var actionsCalled = new List<MethodBase>();
            var gen = new MockDatabaseGenerator(actionsCalled.Add, dbTable);
            gen.UpgradeDatabase(process);

            Assert.IsTrue(Contains(actionsCalled, "GetTableDefinition"));
            Assert.IsFalse(Contains(actionsCalled, "GetBeginTransactionSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetDropTableSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateTableSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetIdentityInsertSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetDataCopySql"));
            Assert.IsFalse(Contains(actionsCalled, "GetDropFKConstraintsSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetInsertUpdateStates"));
            Assert.IsTrue(Contains(actionsCalled, "GetDropTableSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetDropPKConstraintsSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetRenameTableSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetPrimaryKeyAlterConstraintSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetAddForeignKeySql"));
            Assert.IsFalse(Contains(actionsCalled, "GetFKConstraintsSql"));
            Assert.IsFalse(Contains(actionsCalled, "GetCommitTransactionSql"));
            Assert.IsTrue(Contains(actionsCalled, "GetCreateAuditTable"));
            Assert.IsTrue(Contains(actionsCalled, "GetAuditTriggerScript"));
            Assert.IsTrue(Contains(actionsCalled, "ExecuteSql"));
        }