public void ExtractDependenciesFromConceptInfosTest() { var a = CreateBaseCiApplication("A"); var b = CreateBaseCiApplication("B"); var c = CreateBaseCiApplication("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 conceptImplementations = new PluginsMetadataList <IConceptDatabaseDefinition> { new NullImplementation(), { new SimpleConceptImplementation(), typeof(SimpleCi) }, }; var all = new List <CodeGenerator> { a, b, c, r1, r2, r3, r4, r5 }; var dependencies = new DatabaseModelDependencies(new ConsoleLogProvider()) .ExtractCodeGeneratorDependencies(all, MockDatabasePluginsContainer.Create(conceptImplementations)); 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); }
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); }