- Artifact a = buildTestModel("aaaa", "mvaaaa", "cccc|mvcccc");
- Artifact b = buildTestModel("bbbb", "mvbbbb", "aaaa|mvaaaa");
- Artifact c = buildTestModel("cccc", "mvcccc");
- List<Artifact> expected = Arrays.asList(c, a, b);
- assertThat(new ModelSorter().sort(Arrays.asList(a, b, c)), is(expected));
+ Artifact artA = buildTestModel("aaaa", "mvaaaa", "cccc|mvcccc");
+ Artifact artB = buildTestModel("bbbb", "mvbbbb", "aaaa|mvaaaa");
+ Artifact artC = buildTestModel("cccc", "mvcccc");
+ List<Artifact> expected = Arrays.asList(artC, artA, artB);
+ assertThat(new ModelSorter().sort(Arrays.asList(artA, artB, artC)), is(expected));
+ }
+
+
+ @Test
+ public void multipleModelsWithMultipleIncomingEdges() throws BabelArtifactParsingException {
+ ModelArtifact artA = buildTestModel("aaaa", "mvaaaa", "cccc|mvcccc");
+ Artifact artB = buildTestModel("bbbb", "mvbbbb", "aaaa|mvaaaa");
+ Artifact artC = buildTestModel("cccc", "mvcccc");
+ Artifact artD = buildTestModel("dddd", "mvdddd", "cccc|mvcccc");
+ artA.addDependentModelId("dddd|mvdddd");
+ List<Artifact> expected = Arrays.asList(artC, artD, artA, artB);
+ assertThat(new ModelSorter().sort(Arrays.asList(artA, artB, artC, artD)), is(expected));