public void DatabaseGenerator_NoTransaction() { var oldApplications = new List <ConceptApplication> { BaseCi.CreateApplication("A", new SimpleConceptImplementation()), BaseCi.CreateApplication("B", new NoTransactionConceptImplementation()), BaseCi.CreateApplication("C", new SimpleConceptImplementation()) }; var newApplications = new List <NewConceptApplication> { BaseCi.CreateApplication("D", new SimpleConceptImplementation()), BaseCi.CreateApplication("E", new NoTransactionConceptImplementation()), BaseCi.CreateApplication("F", new SimpleConceptImplementation()) }; var sqlExecuter = new MockSqlExecuter(); var sqlTransactionBatches = new SqlTransactionBatches(sqlExecuter, new NullConfiguration(), new ConsoleLogProvider()); var databaseGenerator = new DatabaseGenerator_Accessor(sqlTransactionBatches); databaseGenerator.ApplyChangesToDatabase(oldApplications, newApplications, oldApplications, newApplications); var executedSql = TestUtility.Dump(sqlExecuter.executedScriptsWithTransaction, scripts => (scripts.Item2 ? "TRAN" : "NOTRAN") + ": " + string.Join(", ", scripts.Item1)); executedSql = ClearSqlForReport(executedSql); Assert.AreEqual( "TRAN: remove C, NOTRAN: remove B, TRAN: remove A, create D, NOTRAN: create E, TRAN: create F", executedSql); }
public static NewConceptApplication CreateApplication(string name, IConceptDatabaseDefinition implementation) { var conceptInfo = new BaseCi { Name = name }; return(new NewConceptApplication(conceptInfo, implementation) { CreateQuery = implementation.CreateDatabaseStructure(conceptInfo), RemoveQuery = implementation.RemoveDatabaseStructure(conceptInfo), DependsOn = new ConceptApplicationDependency[] { }, ConceptImplementationType = implementation.GetType(), }); }
public void ExtractDependenciesFromConceptInfosTest() { var a = BaseCi.CreateApplication("A"); var b = BaseCi.CreateApplication("B"); var c = BaseCi.CreateApplication("C"); var r1 = MultipleReferencingCi.CreateApplication("1", a, b); var r2 = MultipleReferencingCi.CreateApplication("2", b, c); var r3 = MultipleReferencingCi.CreateApplication("3", r1, r2); var r5 = MultipleReferencingCi.CreateApplication("5", c, c); var r4 = MultipleReferencingCi.CreateApplication("4", c, r5); var all = new List <NewConceptApplication> { a, b, c, r1, r2, r3, r4, r5 }; var dependencies = new DatabaseGenerator_Accessor().ExtractDependenciesFromConceptInfos(all); string result = string.Join(" ", dependencies .Select(d => ((dynamic)d).DependsOn.ConceptInfo.Name + "<" + ((dynamic)d).Dependent.ConceptInfo.Name) .OrderBy(str => str)); Console.WriteLine(result); Assert.AreEqual("1<3 2<3 5<4 A<1 A<3 B<1 B<2 B<3 C<2 C<3 C<4 C<5", result); }