public void SortTopologicallyAsString_returns_dependency_package_before_the_package_itself_regardless_of_addition_order_to_graph() { Graph graph = new Graph(); PackageDefinition definitionB = new PackageDefinition("B"); PackageDefinition definitionA = new PackageDefinition("A:B"); graph.AddPackageDefinition(definitionB); graph.AddPackageDefinition(definitionA); string sortedList = graph.SortTopologicallyAsString(); Assert.AreEqual("B, A", sortedList); }
public void SortTopologicallyAsString_returns_dependency_package_before_the_package_itself_when_multiple_dependencies_involved() { Graph graph = new Graph(); PackageDefinition definitionA = new PackageDefinition("A:B,C,D"); PackageDefinition definitionB = new PackageDefinition("B:C"); PackageDefinition definitionC = new PackageDefinition("C"); PackageDefinition definitionD = new PackageDefinition("D"); graph.AddPackageDefinition(definitionA); graph.AddPackageDefinition(definitionC); graph.AddPackageDefinition(definitionB); graph.AddPackageDefinition(definitionD); string sortedList = graph.SortTopologicallyAsString(); Assert.AreEqual("C, B, D, A", sortedList); }
public void SortTopologicallyAsString_returns_the_node_if_it_has_no_dependency_list() { Graph graph = new Graph(); PackageDefinition definition = new PackageDefinition("A"); graph.AddPackageDefinition(definition); string sortedList = graph.SortTopologicallyAsString(); Assert.AreEqual("A", sortedList); }