diff --git a/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCases.java b/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCases.java index d99e09b5f..1539a70bd 100644 --- a/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCases.java +++ b/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCases.java @@ -20,6 +20,8 @@ import de.monticore.prettyprint.IndentPrinter; import de.se_rwth.commons.logging.Log; import java.io.IOException; +import java.util.List; + import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -117,23 +119,28 @@ public void testCase1() throws IOException { .getCDAttributeList().size()); assertEquals("attributeA", utility.getAst().getCDDefinition().getCDClassesList().get(2) .getCDAttributeList().get(0).getName()); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(2) - .printSuperclasses()); + + // allow all permutations of the three classes [ClassB, ClassC, ClassD] + // as the actual order depends on the pattern matching + List allowedSuperClassNames = List.of("ClassBClassCClassD", "ClassBClassDClassC", + "ClassCClassBClassD", "ClassCClassDClassB", "ClassDClassBClassC", "ClassDClassCClassB"); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(2).printSuperclasses())); assertEquals("ClassC", utility.getAst().getCDDefinition().getCDClassesList().get(3).getName()); assertEquals(0, utility.getAst().getCDDefinition().getCDClassesList().get(3) .getCDAttributeList().size()); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(3) - .printSuperclasses()); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(3).printSuperclasses())); assertEquals("ClassD", utility.getAst().getCDDefinition().getCDClassesList().get(4).getName()); assertEquals(0, utility.getAst().getCDDefinition().getCDClassesList().get(4) .getCDAttributeList().size()); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(4) - .printSuperclasses()); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(4).printSuperclasses())); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(5) - .getName()); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(5).getName())); assertEquals(1, utility.getAst().getCDDefinition().getCDClassesList().get(5) .getCDAttributeList().size()); assertEquals("attributeB", utility.getAst().getCDDefinition().getCDClassesList().get(5) diff --git a/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCasesExtractSuperclass.java b/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCasesExtractSuperclass.java index ace1bde00..8d530578a 100644 --- a/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCasesExtractSuperclass.java +++ b/trafo-library/src/test/java/de/monticore/cdlib/evaluationTests/TestCasesExtractSuperclass.java @@ -13,6 +13,8 @@ import de.monticore.generating.templateengine.reporting.reporter.TransformationReporter; import de.se_rwth.commons.logging.Log; import java.io.IOException; +import java.util.List; + import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -113,23 +115,28 @@ public void testCase1() throws IOException { .getCDAttributeList().size()); assertEquals("attributeA", utility.getAst().getCDDefinition().getCDClassesList().get(2) .getCDAttributeList().get(0).getName()); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(2) - .printSuperclasses()); + + // allow all permutations of the three classes [ClassB, ClassC, ClassD] + // as the actual order depends on the pattern matching + List allowedSuperClassNames = List.of("ClassBClassCClassD", "ClassBClassDClassC", + "ClassCClassBClassD", "ClassCClassDClassB", "ClassDClassBClassC", "ClassDClassCClassB"); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(2).printSuperclasses())); assertEquals("ClassC", utility.getAst().getCDDefinition().getCDClassesList().get(3).getName()); assertEquals(0, utility.getAst().getCDDefinition().getCDClassesList().get(3) .getCDAttributeList().size()); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(3) - .printSuperclasses()); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(3).printSuperclasses())); assertEquals("ClassD", utility.getAst().getCDDefinition().getCDClassesList().get(4).getName()); assertEquals(0, utility.getAst().getCDDefinition().getCDClassesList().get(4) .getCDAttributeList().size()); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(4) - .printSuperclasses()); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(4).printSuperclasses())); - assertEquals("ClassBClassDClassC", utility.getAst().getCDDefinition().getCDClassesList().get(5) - .getName()); + assertTrue(allowedSuperClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList() + .get(5).getName())); assertEquals(1, utility.getAst().getCDDefinition().getCDClassesList().get(5) .getCDAttributeList().size()); assertEquals("attributeB", utility.getAst().getCDDefinition().getCDClassesList().get(5) diff --git a/trafo-library/src/test/java/de/monticore/cdlib/refactoringTests/ExtractIntermediateClassTest.java b/trafo-library/src/test/java/de/monticore/cdlib/refactoringTests/ExtractIntermediateClassTest.java index 9046e5709..0bbed3d13 100644 --- a/trafo-library/src/test/java/de/monticore/cdlib/refactoringTests/ExtractIntermediateClassTest.java +++ b/trafo-library/src/test/java/de/monticore/cdlib/refactoringTests/ExtractIntermediateClassTest.java @@ -13,7 +13,10 @@ import de.monticore.generating.templateengine.reporting.commons.ReportingRepository; import de.monticore.generating.templateengine.reporting.reporter.TransformationReporter; import de.se_rwth.commons.logging.Log; + import java.io.IOException; +import java.util.List; + import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -109,8 +112,14 @@ public void testExtractSuperclasses3ClassesAutoName() throws IOException { assertEquals("ClassB2", utility.getAst().getCDDefinition().getCDClassesList().get(5).getName()); assertEquals(0, utility.getAst().getCDDefinition().getCDClassesList().get(5) .getCDAttributeList().size()); - assertEquals("ClassA1ClassA3ClassA2", utility.getAst().getCDDefinition().getCDClassesList().get( - 6).getName()); + + // allow all permutations of the three A-class names + // as the actual order depends on the pattern matching + List allowedClassNames = List.of("ClassA1ClassA2ClassA3", "ClassA1ClassA3ClassA2", + "ClassA2ClassA1ClassA3", "ClassA2ClassA3ClassA1", "ClassA3ClassA1ClassA2", + "ClassA3ClassA2ClassA1"); + assertTrue(allowedClassNames.contains(utility.getAst().getCDDefinition().getCDClassesList().get( + 6).getName())); assertEquals(1, utility.getAst().getCDDefinition().getCDClassesList().get(6) .getCDAttributeList().size()); assertEquals("attribute1", utility.getAst().getCDDefinition().getCDClassesList().get(6)