From 66f9729b9de974e6210ae827026a55a0bf063cb8 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Mon, 25 Feb 2019 14:25:52 +0100 Subject: [PATCH] move multiple files test to junit/gradle --- .gitignore | 4 +- build.gradle | 34 +- .../test/jastadd/multiple/Part1.relast | 0 .../test/jastadd/multiple/Part2.relast | 0 .../test/jastadd/multiple/Part3.relast | 0 .../jastadd/relast/tests/MultipleFiles.java | 618 +++++++++++++++++ tests/multipleFiles/.gitignore | 5 - tests/multipleFiles/AbstractTests.java | 25 - tests/multipleFiles/All.ast | 3 - tests/multipleFiles/All.jadd | 560 ---------------- tests/multipleFiles/All.java | 629 ------------------ tests/multipleFiles/Makefile | 20 - tests/multipleFiles/Utils.jadd | 9 - 13 files changed, 652 insertions(+), 1255 deletions(-) rename tests/multipleFiles/Rules1.relast => src/test/jastadd/multiple/Part1.relast (100%) rename tests/multipleFiles/Rules2.relast => src/test/jastadd/multiple/Part2.relast (100%) rename tests/multipleFiles/Rules3.relast => src/test/jastadd/multiple/Part3.relast (100%) create mode 100644 src/test/java/org/jastadd/relast/tests/MultipleFiles.java delete mode 100644 tests/multipleFiles/.gitignore delete mode 100644 tests/multipleFiles/AbstractTests.java delete mode 100644 tests/multipleFiles/All.ast delete mode 100644 tests/multipleFiles/All.jadd delete mode 100644 tests/multipleFiles/All.java delete mode 100644 tests/multipleFiles/Makefile delete mode 100644 tests/multipleFiles/Utils.jadd diff --git a/.gitignore b/.gitignore index 991c176..457059f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ src/gen/ src/test/jastadd/relations/Relations.ast src/test/jastadd/relations/Relations.jadd src/test/jastadd/lowerbounds/LowerBounds.ast -src/test/jastadd/lowerbounds/LowerBounds.jadd \ No newline at end of file +src/test/jastadd/lowerbounds/LowerBounds.jadd +src/test/jastadd/multiple/Multiple.ast +src/test/jastadd/multiple/Multiple.jadd \ No newline at end of file diff --git a/build.gradle b/build.gradle index a8176e2..8d6b210 100644 --- a/build.gradle +++ b/build.gradle @@ -157,13 +157,41 @@ task compileLowerBoundsTest(type: JavaExec, group: 'verification') { args '--o=src/test/java-gen/', '--package=lowerbounds.ast', 'src/test/jastadd/lowerbounds/LowerBounds.ast', 'src/test/jastadd/lowerbounds/LowerBounds.jadd', 'src/test/jastadd/Utils.jadd' } +task preprocessMultipleTest(type: JavaExec, group: 'verification') { + + doFirst { + delete 'src/test/jastadd/multiple/Multiple.ast', 'src/test/jastadd/multiple/Multiple.jadd' + } + + classpath = sourceSets.main.runtimeClasspath + main = 'org.jastadd.relast.compiler.Compiler' + args 'src/test/jastadd/multiple/Part1.relast', 'src/test/jastadd/multiple/Part2.relast', 'src/test/jastadd/multiple/Part3.relast', '--file', '--grammarName=src/test/jastadd/multiple/Multiple' +} + +task compileMultipleTest(type: JavaExec, group: 'verification') { + + doFirst { + delete 'src/test/java-gen/multiple' + } + + classpath = sourceSets.main.runtimeClasspath + main = 'org.jastadd.JastAdd' + args '--o=src/test/java-gen/', '--package=multiple.ast', 'src/test/jastadd/multiple/Multiple.ast', 'src/test/jastadd/multiple/Multiple.jadd', 'src/test/jastadd/Utils.jadd' +} + + test { outputs.upToDateWhen { false } useJUnitPlatform() } + test.dependsOn compileRelationTest -test.dependsOn compileLowerBoundsTest -doublePreprocessRelationTest.dependsOn preprocessRelationTest compileRelationTest.dependsOn doublePreprocessRelationTest -compileLowerBoundsTest.dependsOn preprocessLowerBoundsTest \ No newline at end of file +doublePreprocessRelationTest.dependsOn preprocessRelationTest + +test.dependsOn compileLowerBoundsTest +compileLowerBoundsTest.dependsOn preprocessLowerBoundsTest + +test.dependsOn compileMultipleTest +compileMultipleTest.dependsOn preprocessMultipleTest \ No newline at end of file diff --git a/tests/multipleFiles/Rules1.relast b/src/test/jastadd/multiple/Part1.relast similarity index 100% rename from tests/multipleFiles/Rules1.relast rename to src/test/jastadd/multiple/Part1.relast diff --git a/tests/multipleFiles/Rules2.relast b/src/test/jastadd/multiple/Part2.relast similarity index 100% rename from tests/multipleFiles/Rules2.relast rename to src/test/jastadd/multiple/Part2.relast diff --git a/tests/multipleFiles/Rules3.relast b/src/test/jastadd/multiple/Part3.relast similarity index 100% rename from tests/multipleFiles/Rules3.relast rename to src/test/jastadd/multiple/Part3.relast diff --git a/src/test/java/org/jastadd/relast/tests/MultipleFiles.java b/src/test/java/org/jastadd/relast/tests/MultipleFiles.java new file mode 100644 index 0000000..607c019 --- /dev/null +++ b/src/test/java/org/jastadd/relast/tests/MultipleFiles.java @@ -0,0 +1,618 @@ +package org.jastadd.relast.tests; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import relations.ast.A; +import relations.ast.B; +import relations.ast.Root; + +import java.util.Arrays; + +import static org.junit.jupiter.api.Assertions.*; + + +@SuppressWarnings("ArraysAsListWithZeroOrOneArgument") +class MultipleFiles { + private Root r; + private A a1; + private A a2; + private A a3; + private B b1; + private B b2; + private B b3; + + /** + * rel A.Di1 -> B; + */ + @Test + void testDi1() { + setup(); + a1.setDi1(b2); + a2.setDi1(b1); + + assertSame(a1.getDi1(), b2); + assertSame(a2.getDi1(), b1); + + a2.setDi1(b2); + + assertSame(a1.getDi1(), b2); + assertSame(a2.getDi1(), b2); + + try { + a3.setDi1(null); + fail("should throw an exception"); + } catch (Exception e) { + // OK + } + } + + + /** + * rel A.Di2? -> B; + */ + @Test + void testDi2() { + setup(); + a1.setDi2(b2); + a2.setDi2(b1); + + assertSame(a1.getDi2(), b2); + assertSame(a2.getDi2(), b1); + + a2.setDi2(b2); + + assertSame(a1.getDi2(), b2); + assertSame(a2.getDi2(), b2); + + a2.clearDi2(); + + assertSame(a1.getDi2(), b2); + assertNull(a2.getDi2()); + + assertTrue(a1.hasDi2()); + assertFalse(a2.hasDi2()); + assertFalse(a3.hasDi2()); + } + + + /** + * rel A.Di3* -> B; + */ + @Test + void testDi3() { + setup(); + a1.addDi3(b1); + a1.addDi3(b2); + a1.addDi3(b3); + a2.addDi3(b2); + + assertEquals(a1.getDi3s(), Arrays.asList(b1, b2, b3)); + assertEquals(a1.getDi3List(), Arrays.asList(b1, b2, b3)); + assertEquals(a2.getDi3s(), Arrays.asList(b2)); + assertEquals(a2.getDi3List(), Arrays.asList(b2)); + assertEquals(a3.getDi3s(), Arrays.asList()); + assertEquals(a3.getDi3List(), Arrays.asList()); + + a1.addDi3(b1); + a2.addDi3(b1); + a2.addDi3(b2); + + assertEquals(a1.getDi3s(), Arrays.asList(b1, b2, b3, b1)); + assertEquals(a1.getDi3List(), Arrays.asList(b1, b2, b3, b1)); + assertEquals(a2.getDi3s(), Arrays.asList(b2, b1, b2)); + assertEquals(a2.getDi3List(), Arrays.asList(b2, b1, b2)); + assertEquals(a3.getDi3s(), Arrays.asList()); + assertEquals(a3.getDi3List(), Arrays.asList()); + + a1.removeDi3(b1); + a2.removeDi3(b2); + + assertEquals(a1.getDi3s(), Arrays.asList(b2, b3, b1)); + assertEquals(a1.getDi3List(), Arrays.asList(b2, b3, b1)); + assertEquals(a2.getDi3s(), Arrays.asList(b1, b2)); + assertEquals(a2.getDi3List(), Arrays.asList(b1, b2)); + assertEquals(a3.getDi3s(), Arrays.asList()); + assertEquals(a3.getDi3List(), Arrays.asList()); + } + + + /** + * rel A.Bi1 <-> B.Bi1; + */ + + + @Test + void testBi11() { + // Init + setup(); + a1.setBi1(b1); + a2.setBi1(b2); + + // Change + a2.setBi1(b1); + + assertNull(a1.getBi1()); + assertSame(a2.getBi1(), b1); + assertSame(b1.getBi1(), a2); + assertNull(b2.getBi1()); + } + + @Test + void testBi12() { + // Init + setup(); + a1.setBi1(b2); + + // Change + a2.setBi1(b2); + + assertNull(a1.getBi1()); + assertSame(a2.getBi1(), b2); + assertNull(b1.getBi1()); + assertSame(b2.getBi1(), a2); + } + + + /** + * rel A.Bi2 <-> B.Bi2?; + */ + + @Test + void testBi21() { + // Init + setup(); + a1.setBi2(b1); + a2.setBi2(b2); + + // Change + a2.setBi2(b1); + + assertNull(a1.getBi2()); + assertSame(a2.getBi2(), b1); + assertSame(b1.getBi2(), a2); + assertNull(b2.getBi2()); + } + + @Test + void testBi22() { + // Init + setup(); + a1.setBi2(b2); + + // Change + a2.setBi2(b2); + + assertNull(a1.getBi2()); + assertSame(a2.getBi2(), b2); + assertNull(b1.getBi2()); + assertSame(b2.getBi2(), a2); + } + + + /** + * rel A.Bi3 <-> B.Bi3*; + */ + @Test + void testBi3() { + setup(); + a2.setBi3(b2); + + assertNull(a1.getBi3()); + assertSame(a2.getBi3(), b2); + assertEquals(b1.getBi3s(), Arrays.asList()); + assertEquals(b1.getBi3List(), Arrays.asList()); + assertEquals(b2.getBi3s(), Arrays.asList(a2)); + assertEquals(b2.getBi3List(), Arrays.asList(a2)); + assertEquals(b3.getBi3s(), Arrays.asList()); + assertEquals(b3.getBi3List(), Arrays.asList()); + + a2.setBi3(b3); + + assertNull(a1.getBi3()); + assertSame(a2.getBi3(), b3); + assertEquals(b1.getBi3s(), Arrays.asList()); + assertEquals(b1.getBi3List(), Arrays.asList()); + assertEquals(b2.getBi3s(), Arrays.asList()); + assertEquals(b2.getBi3List(), Arrays.asList()); + assertEquals(b3.getBi3s(), Arrays.asList(a2)); + assertEquals(b3.getBi3List(), Arrays.asList(a2)); + + a1.setBi3(b3); + a3.setBi3(b3); + + assertSame(a1.getBi3(), b3); + assertSame(a2.getBi3(), b3); + assertSame(a3.getBi3(), b3); + assertEquals(b1.getBi3s(), Arrays.asList()); + assertEquals(b1.getBi3List(), Arrays.asList()); + assertEquals(b2.getBi3s(), Arrays.asList()); + assertEquals(b2.getBi3List(), Arrays.asList()); + assertEquals(b3.getBi3s(), Arrays.asList(a2, a1, a3)); + assertEquals(b3.getBi3List(), Arrays.asList(a2, a1, a3)); + + a2.setBi3(b1); + + assertSame(a1.getBi3(), b3); + assertSame(a2.getBi3(), b1); + assertSame(a3.getBi3(), b3); + assertEquals(b1.getBi3s(), Arrays.asList(a2)); + assertEquals(b1.getBi3List(), Arrays.asList(a2)); + assertEquals(b2.getBi3s(), Arrays.asList()); + assertEquals(b2.getBi3List(), Arrays.asList()); + assertEquals(b3.getBi3s(), Arrays.asList(a1, a3)); + assertEquals(b3.getBi3List(), Arrays.asList(a1, a3)); + + try { + a2.setBi3(null); + fail("should throw an exception"); + } catch (Exception e) { + // OK + } + } + + + /** + * rel A.Bi4? <-> B.Bi4; + */ + @Test + void testBi41() { + // Init + setup(); + a1.setBi4(b1); + a2.setBi4(b2); + + // Change + a2.setBi4(b1); + + assertNull(a1.getBi4()); + assertSame(a2.getBi4(), b1); + assertSame(b1.getBi4(), a2); + assertNull(b2.getBi4()); + } + + @Test + void testBi42() { + // Init + setup(); + a1.setBi4(b2); + + // Change + a2.setBi4(b2); + + assertNull(a1.getBi4()); + assertSame(a2.getBi4(), b2); + assertNull(b1.getBi4()); + assertSame(b2.getBi4(), a2); + } + + + /** + * rel A.Bi5? <-> B.Bi5?; + */ + @Test + void testBi51() { + // Init + setup(); + a1.setBi5(b1); + a2.setBi5(b2); + + // Change + a2.setBi5(b1); + + assertNull(a1.getBi5()); + assertSame(a2.getBi5(), b1); + assertSame(b1.getBi5(), a2); + assertNull(b2.getBi5()); + } + + @Test + void testBi52() { + // Init + setup(); + a1.setBi5(b2); + + // Change + a2.setBi5(b2); + + assertNull(a1.getBi5()); + assertSame(a2.getBi5(), b2); + assertNull(b1.getBi5()); + assertSame(b2.getBi5(), a2); + } + + + /** + * rel A.Bi6? <-> B.Bi6*; + */ + @Test + void testBi6() { + setup(); + a2.setBi6(b2); + + assertNull(a1.getBi6()); + assertSame(a2.getBi6(), b2); + assertEquals(b1.getBi6s(), Arrays.asList()); + assertEquals(b1.getBi6List(), Arrays.asList()); + assertEquals(b2.getBi6s(), Arrays.asList(a2)); + assertEquals(b2.getBi6List(), Arrays.asList(a2)); + assertEquals(b3.getBi6s(), Arrays.asList()); + assertEquals(b3.getBi6List(), Arrays.asList()); + + a2.setBi6(b3); + + assertNull(a1.getBi6()); + assertSame(a2.getBi6(), b3); + assertEquals(b1.getBi6s(), Arrays.asList()); + assertEquals(b1.getBi6List(), Arrays.asList()); + assertEquals(b2.getBi6s(), Arrays.asList()); + assertEquals(b2.getBi6List(), Arrays.asList()); + assertEquals(b3.getBi6s(), Arrays.asList(a2)); + assertEquals(b3.getBi6List(), Arrays.asList(a2)); + + a1.setBi6(b3); + a3.setBi6(b3); + + assertSame(a1.getBi6(), b3); + assertSame(a2.getBi6(), b3); + assertSame(a3.getBi6(), b3); + assertEquals(b1.getBi6s(), Arrays.asList()); + assertEquals(b1.getBi6List(), Arrays.asList()); + assertEquals(b2.getBi6s(), Arrays.asList()); + assertEquals(b2.getBi6List(), Arrays.asList()); + assertEquals(b3.getBi6s(), Arrays.asList(a2, a1, a3)); + assertEquals(b3.getBi6List(), Arrays.asList(a2, a1, a3)); + + a2.setBi6(b1); + + assertSame(a1.getBi6(), b3); + assertSame(a2.getBi6(), b1); + assertSame(a3.getBi6(), b3); + assertEquals(b1.getBi6s(), Arrays.asList(a2)); + assertEquals(b1.getBi6List(), Arrays.asList(a2)); + assertEquals(b2.getBi6s(), Arrays.asList()); + assertEquals(b2.getBi6List(), Arrays.asList()); + assertEquals(b3.getBi6s(), Arrays.asList(a1, a3)); + assertEquals(b3.getBi6List(), Arrays.asList(a1, a3)); + + a2.clearBi6(); + + assertSame(a1.getBi6(), b3); + assertNull(a2.getBi6()); + assertSame(a3.getBi6(), b3); + assertEquals(b1.getBi6s(), Arrays.asList()); + assertEquals(b1.getBi6List(), Arrays.asList()); + assertEquals(b2.getBi6s(), Arrays.asList()); + assertEquals(b2.getBi6List(), Arrays.asList()); + assertEquals(b3.getBi6s(), Arrays.asList(a1, a3)); + assertEquals(b3.getBi6List(), Arrays.asList(a1, a3)); + + assertTrue(a1.hasBi6()); + assertFalse(a2.hasBi6()); + assertTrue(a3.hasBi6()); + } + + + /** + * rel A.Bi7* <-> B.Bi7; + */ + @Test + void testBi7() { + setup(); + a2.addBi7(b2); + + assertEquals(a1.getBi7s(), Arrays.asList()); + assertEquals(a1.getBi7List(), Arrays.asList()); + assertEquals(a2.getBi7s(), Arrays.asList(b2)); + assertEquals(a2.getBi7List(), Arrays.asList(b2)); + assertNull(b1.getBi7()); + assertSame(b2.getBi7(), a2); + assertNull(b3.getBi7()); + + a2.addBi7(b3); + a1.addBi7(b2); + + assertEquals(a1.getBi7s(), Arrays.asList(b2)); + assertEquals(a1.getBi7List(), Arrays.asList(b2)); + assertEquals(a2.getBi7s(), Arrays.asList(b3)); + assertEquals(a2.getBi7List(), Arrays.asList(b3)); + assertNull(b1.getBi7()); + assertSame(b2.getBi7(), a1); + assertSame(b3.getBi7(), a2); + + a1.addBi7(b1); + + assertEquals(a1.getBi7s(), Arrays.asList(b2, b1)); + assertEquals(a1.getBi7List(), Arrays.asList(b2, b1)); + assertEquals(a2.getBi7s(), Arrays.asList(b3)); + assertEquals(a2.getBi7List(), Arrays.asList(b3)); + assertSame(b1.getBi7(), a1); + assertSame(b2.getBi7(), a1); + assertSame(b3.getBi7(), a2); + + a1.addBi7(b1); + + assertEquals(a1.getBi7s(), Arrays.asList(b2, b1)); + assertEquals(a1.getBi7List(), Arrays.asList(b2, b1)); + assertEquals(a2.getBi7s(), Arrays.asList(b3)); + assertEquals(a2.getBi7List(), Arrays.asList(b3)); + assertSame(b1.getBi7(), a1); + assertSame(b2.getBi7(), a1); + assertSame(b3.getBi7(), a2); + + a1.removeBi7(b1); + + assertEquals(a1.getBi7s(), Arrays.asList(b2)); + assertEquals(a1.getBi7List(), Arrays.asList(b2)); + assertEquals(a2.getBi7s(), Arrays.asList(b3)); + assertEquals(a2.getBi7List(), Arrays.asList(b3)); + assertNull(b1.getBi7()); + assertSame(b2.getBi7(), a1); + assertSame(b3.getBi7(), a2); + } + + + /** + * rel A.Bi8* <-> B.Bi8?; + */ + @Test + void testBi8() { + setup(); + a2.addBi8(b2); + + assertEquals(a1.getBi8s(), Arrays.asList()); + assertEquals(a1.getBi8List(), Arrays.asList()); + assertEquals(a2.getBi8s(), Arrays.asList(b2)); + assertEquals(a2.getBi8List(), Arrays.asList(b2)); + assertNull(b1.getBi8()); + assertSame(b2.getBi8(), a2); + assertNull(b3.getBi8()); + + a2.addBi8(b3); + a1.addBi8(b2); + + assertEquals(a1.getBi8s(), Arrays.asList(b2)); + assertEquals(a1.getBi8List(), Arrays.asList(b2)); + assertEquals(a2.getBi8s(), Arrays.asList(b3)); + assertEquals(a2.getBi8List(), Arrays.asList(b3)); + assertNull(b1.getBi8()); + assertSame(b2.getBi8(), a1); + assertSame(b3.getBi8(), a2); + + a1.addBi8(b1); + + assertEquals(a1.getBi8s(), Arrays.asList(b2, b1)); + assertEquals(a1.getBi8List(), Arrays.asList(b2, b1)); + assertEquals(a2.getBi8s(), Arrays.asList(b3)); + assertEquals(a2.getBi8List(), Arrays.asList(b3)); + assertSame(b1.getBi8(), a1); + assertSame(b2.getBi8(), a1); + assertSame(b3.getBi8(), a2); + + a1.addBi8(b1); + + assertEquals(a1.getBi8s(), Arrays.asList(b2, b1)); + assertEquals(a1.getBi8List(), Arrays.asList(b2, b1)); + assertEquals(a2.getBi8s(), Arrays.asList(b3)); + assertEquals(a2.getBi8List(), Arrays.asList(b3)); + assertSame(b1.getBi8(), a1); + assertSame(b2.getBi8(), a1); + assertSame(b3.getBi8(), a2); + + a1.removeBi8(b1); + + assertEquals(a1.getBi8s(), Arrays.asList(b2)); + assertEquals(a1.getBi8List(), Arrays.asList(b2)); + assertEquals(a2.getBi8s(), Arrays.asList(b3)); + assertEquals(a2.getBi8List(), Arrays.asList(b3)); + assertNull(b1.getBi8()); + assertSame(b2.getBi8(), a1); + assertSame(b3.getBi8(), a2); + } + + + /** + * rel A.Bi9* <-> B.Bi9*; + */ + @Test + void testBi9() { + setup(); + a1.addBi9(b1); + a1.addBi9(b2); + + assertEquals(a1.getBi9s(), Arrays.asList(b1, b2)); + assertEquals(a1.getBi9List(), Arrays.asList(b1, b2)); + assertEquals(a2.getBi9s(), Arrays.asList()); + assertEquals(a2.getBi9List(), Arrays.asList()); + assertEquals(a3.getBi9s(), Arrays.asList()); + assertEquals(a3.getBi9List(), Arrays.asList()); + assertEquals(b1.getBi9s(), Arrays.asList(a1)); + assertEquals(b1.getBi9List(), Arrays.asList(a1)); + assertEquals(b2.getBi9s(), Arrays.asList(a1)); + assertEquals(b2.getBi9List(), Arrays.asList(a1)); + assertEquals(b3.getBi9s(), Arrays.asList()); + assertEquals(b3.getBi9List(), Arrays.asList()); + + b3.addBi9(a1); + b3.addBi9(a3); + b3.addBi9(a1); + + assertEquals(a1.getBi9s(), Arrays.asList(b1, b2, b3, b3)); + assertEquals(a1.getBi9List(), Arrays.asList(b1, b2, b3, b3)); + assertEquals(a2.getBi9s(), Arrays.asList()); + assertEquals(a2.getBi9List(), Arrays.asList()); + assertEquals(a3.getBi9s(), Arrays.asList(b3)); + assertEquals(a3.getBi9List(), Arrays.asList(b3)); + assertEquals(b1.getBi9s(), Arrays.asList(a1)); + assertEquals(b1.getBi9List(), Arrays.asList(a1)); + assertEquals(b2.getBi9s(), Arrays.asList(a1)); + assertEquals(b2.getBi9List(), Arrays.asList(a1)); + assertEquals(b3.getBi9s(), Arrays.asList(a1, a3, a1)); + assertEquals(b3.getBi9List(), Arrays.asList(a1, a3, a1)); + + b3.removeBi9(a1); + + assertEquals(a1.getBi9s(), Arrays.asList(b1, b2, b3)); + assertEquals(a1.getBi9List(), Arrays.asList(b1, b2, b3)); + assertEquals(a2.getBi9s(), Arrays.asList()); + assertEquals(a2.getBi9List(), Arrays.asList()); + assertEquals(a3.getBi9s(), Arrays.asList(b3)); + assertEquals(a3.getBi9List(), Arrays.asList(b3)); + assertEquals(b1.getBi9s(), Arrays.asList(a1)); + assertEquals(b1.getBi9List(), Arrays.asList(a1)); + assertEquals(b2.getBi9s(), Arrays.asList(a1)); + assertEquals(b2.getBi9List(), Arrays.asList(a1)); + assertEquals(b3.getBi9s(), Arrays.asList(a3, a1)); + assertEquals(b3.getBi9List(), Arrays.asList(a3, a1)); + } + + + @Test + void testImmutableList() { + setup(); + + a1.addDi3(b1); + a1.addDi3(b2); + try { + a1.getDi3s().add(b3); + fail("should throw an exception"); + } catch (Exception e) { + // OK + } + + a1.addBi7(b1); + a1.addBi7(b2); + try { + a1.getBi7s().add(b3); + fail("should throw an exception"); + } catch (Exception e) { + // OK + } + + a1.addBi9(b1); + a1.addBi9(b2); + try { + a1.getBi9s().add(b3); + fail("should throw an exception"); + } catch (Exception e) { + // OK + } + } + + @BeforeEach + void setup() { + r = new Root(); + a1 = new A("a1"); + a2 = new A("a2"); + a3 = new A("a3"); + b1 = new B("b1"); + b2 = new B("b2"); + b3 = new B("b3"); + + r.addA(a1); + r.addA(a2); + r.addA(a3); + r.addB(b1); + r.addB(b2); + r.addB(b3); + } +} diff --git a/tests/multipleFiles/.gitignore b/tests/multipleFiles/.gitignore deleted file mode 100644 index bcf9cd3..0000000 --- a/tests/multipleFiles/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -AST/* -Relations.ast -Relations.jadd -AllGen.jadd -AllGen.ast \ No newline at end of file diff --git a/tests/multipleFiles/AbstractTests.java b/tests/multipleFiles/AbstractTests.java deleted file mode 100644 index 3b86096..0000000 --- a/tests/multipleFiles/AbstractTests.java +++ /dev/null @@ -1,25 +0,0 @@ -public class AbstractTests { - protected void assertException() { - check(false, "should throw exception"); - } - protected void assertTrue(boolean b) { - check(b, "value should be true (is false)"); - } - protected void assertFalse(boolean b) { - check(!b, "value should be flase (is true)"); - } - protected void assertNull(Object obj) { - check(obj == null, "Object not null: " + obj); - } - protected void assertSame(Object o1, Object o2) { - check(o1 == o2, "Objects not same: " + o1 + ", " + o2); - } - protected void assertEquals(Object o1, Object o2) { - check(o1.equals(o2), "Objects not equals: " + o1 + ", " + o2); - } - protected void check(boolean b, String message) { - if (!b) { - throw new RuntimeException(message); - } - } -} \ No newline at end of file diff --git a/tests/multipleFiles/All.ast b/tests/multipleFiles/All.ast deleted file mode 100644 index 6241574..0000000 --- a/tests/multipleFiles/All.ast +++ /dev/null @@ -1,3 +0,0 @@ -B ::= <Name:String> <_impl_Bi9:ArrayList<A>> <_impl_Bi4:A> <_impl_Bi5:A> <_impl_Bi1:A> <_impl_Bi8:A> <_impl_Bi7:A> <_impl_Bi2:A> <_impl_Bi3:ArrayList<A>> <_impl_Bi6:ArrayList<A>>; -Root ::= A* B*; -A ::= <Name:String> <_impl_Bi1:B> <_impl_Bi7:ArrayList<B>> <_impl_Bi5:B> <_impl_Di1:B> <_impl_Bi3:B> <_impl_Di3:ArrayList<B>> <_impl_Bi8:ArrayList<B>> <_impl_Di2:B> <_impl_Bi2:B> <_impl_Bi9:ArrayList<B>> <_impl_Bi6:B> <_impl_Bi4:B>; diff --git a/tests/multipleFiles/All.jadd b/tests/multipleFiles/All.jadd deleted file mode 100644 index f6e7bca..0000000 --- a/tests/multipleFiles/All.jadd +++ /dev/null @@ -1,560 +0,0 @@ -import java.util.ArrayList; -import java.util.Collections; -aspect RelAstAPI { - public B.B(String Name) { - setName(Name); - } - public A.A(String Name) { - setName(Name); - } - // rel A.Di1 -> B - public B A.getDi1() { - return get_impl_Di1(); - } - public void A.setDi1(B o) { - assertNotNull(o); - set_impl_Di1(o); - } - - // rel A.Di2? -> B - public B A.getDi2() { - return get_impl_Di2(); - } - public void A.setDi2(B o) { - set_impl_Di2(o); - } - public boolean A.hasDi2() { - return getDi2() != null; - } - public void A.clearDi2() { - setDi2(null); - } - - // rel A.Di3* -> B - public java.util.List<B> A.getDi3s() { - return getDi3List(); - } - public java.util.List<B> A.getDi3List() { - ArrayList<B> l = get_impl_Di3(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void A.addDi3(B o) { - assertNotNull(o); - ArrayList<B> list = get_impl_Di3(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(o); - set_impl_Di3(list); - } - public void A.removeDi3(B o) { - assertNotNull(o); - ArrayList<B> list = get_impl_Di3(); - if (list != null && list.remove(o)) { - set_impl_Di3(list); - } - } - - // rel A.Bi1 <-> B.Bi1 - public B A.getBi1() { - return get_impl_Bi1(); - } - public void A.setBi1(B o) { - assertNotNull(o); - if (get_impl_Bi1() != null) { - get_impl_Bi1().set_impl_Bi1(null); - } - if (o != null && o.get_impl_Bi1() != null) { - o.get_impl_Bi1().set_impl_Bi1(null); - } - set_impl_Bi1(o); - o.set_impl_Bi1(this); - } - public A B.getBi1() { - return get_impl_Bi1(); - } - public void B.setBi1(A o) { - assertNotNull(o); - if (get_impl_Bi1() != null) { - get_impl_Bi1().set_impl_Bi1(null); - } - if (o != null && o.get_impl_Bi1() != null) { - o.get_impl_Bi1().set_impl_Bi1(null); - } - set_impl_Bi1(o); - o.set_impl_Bi1(this); - } - - // rel A.Bi2 <-> B.Bi2? - public B A.getBi2() { - return get_impl_Bi2(); - } - public void A.setBi2(B o) { - assertNotNull(o); - if (get_impl_Bi2() != null) { - get_impl_Bi2().set_impl_Bi2(null); - } - if (o != null && o.get_impl_Bi2() != null) { - o.get_impl_Bi2().set_impl_Bi2(null); - } - set_impl_Bi2(o); - o.set_impl_Bi2(this); - } - public A B.getBi2() { - return get_impl_Bi2(); - } - public void B.setBi2(A o) { - if (get_impl_Bi2() != null) { - get_impl_Bi2().set_impl_Bi2(null); - } - if (o != null && o.get_impl_Bi2() != null) { - o.get_impl_Bi2().set_impl_Bi2(null); - } - set_impl_Bi2(o); - if (o != null) { - o.set_impl_Bi2(this); - } - } - public boolean B.hasBi2() { - return getBi2() != null; - } - public void B.clearBi2() { - setBi2(null); - } - - // rel A.Bi3 <-> B.Bi3* - public B A.getBi3() { - return get_impl_Bi3(); - } - public void A.setBi3(B o) { - assertNotNull(o); - if (get_impl_Bi3() != null) { - ArrayList<A> list2 = get_impl_Bi3().get_impl_Bi3(); - list2.remove(this); - get_impl_Bi3().set_impl_Bi3(list2); - } - set_impl_Bi3(o); - ArrayList<A> list = o.get_impl_Bi3(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(this); - o.set_impl_Bi3(list); - } - public java.util.List<A> B.getBi3s() { - return getBi3List(); - } - public java.util.List<A> B.getBi3List() { - ArrayList<A> l = get_impl_Bi3(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void B.addBi3(A o) { - assertNotNull(o); - if (o != null && o.get_impl_Bi3() != null) { - ArrayList<A> list2 = o.get_impl_Bi3().get_impl_Bi3(); - if (list2.remove(o)) - o.get_impl_Bi3().set_impl_Bi3(list2); - } - ArrayList<A> list = get_impl_Bi3(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(o); - set_impl_Bi3(list); - o.set_impl_Bi3(this); - } - public void B.removeBi3(A o) { - assertNotNull(o); - ArrayList<A> list = get_impl_Bi3(); - if (list != null && list.remove(o)) { - set_impl_Bi3(list); - if (o.get_impl_Bi3() == this) { - o.set_impl_Bi3(null); - } - } - } - - // rel A.Bi4? <-> B.Bi4 - public B A.getBi4() { - return get_impl_Bi4(); - } - public void A.setBi4(B o) { - if (get_impl_Bi4() != null) { - get_impl_Bi4().set_impl_Bi4(null); - } - if (o != null && o.get_impl_Bi4() != null) { - o.get_impl_Bi4().set_impl_Bi4(null); - } - set_impl_Bi4(o); - if (o != null) { - o.set_impl_Bi4(this); - } - } - public boolean A.hasBi4() { - return getBi4() != null; - } - public void A.clearBi4() { - setBi4(null); - } - public A B.getBi4() { - return get_impl_Bi4(); - } - public void B.setBi4(A o) { - assertNotNull(o); - if (get_impl_Bi4() != null) { - get_impl_Bi4().set_impl_Bi4(null); - } - if (o != null && o.get_impl_Bi4() != null) { - o.get_impl_Bi4().set_impl_Bi4(null); - } - set_impl_Bi4(o); - o.set_impl_Bi4(this); - } - - // rel A.Bi5? <-> B.Bi5? - public B A.getBi5() { - return get_impl_Bi5(); - } - public void A.setBi5(B o) { - if (get_impl_Bi5() != null) { - get_impl_Bi5().set_impl_Bi5(null); - } - if (o != null && o.get_impl_Bi5() != null) { - o.get_impl_Bi5().set_impl_Bi5(null); - } - set_impl_Bi5(o); - if (o != null) { - o.set_impl_Bi5(this); - } - } - public boolean A.hasBi5() { - return getBi5() != null; - } - public void A.clearBi5() { - setBi5(null); - } - public A B.getBi5() { - return get_impl_Bi5(); - } - public void B.setBi5(A o) { - if (get_impl_Bi5() != null) { - get_impl_Bi5().set_impl_Bi5(null); - } - if (o != null && o.get_impl_Bi5() != null) { - o.get_impl_Bi5().set_impl_Bi5(null); - } - set_impl_Bi5(o); - if (o != null) { - o.set_impl_Bi5(this); - } - } - public boolean B.hasBi5() { - return getBi5() != null; - } - public void B.clearBi5() { - setBi5(null); - } - - // rel A.Bi6? <-> B.Bi6* - public B A.getBi6() { - return get_impl_Bi6(); - } - public void A.setBi6(B o) { - if (get_impl_Bi6() != null) { - ArrayList<A> list2 = get_impl_Bi6().get_impl_Bi6(); - list2.remove(this); - get_impl_Bi6().set_impl_Bi6(list2); - } - set_impl_Bi6(o); - if (o != null) { - ArrayList<A> list = o.get_impl_Bi6(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(this); - o.set_impl_Bi6(list); - } - } - public boolean A.hasBi6() { - return getBi6() != null; - } - public void A.clearBi6() { - setBi6(null); - } - public java.util.List<A> B.getBi6s() { - return getBi6List(); - } - public java.util.List<A> B.getBi6List() { - ArrayList<A> l = get_impl_Bi6(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void B.addBi6(A o) { - assertNotNull(o); - if (o != null && o.get_impl_Bi6() != null) { - ArrayList<A> list2 = o.get_impl_Bi6().get_impl_Bi6(); - if (list2.remove(o)) - o.get_impl_Bi6().set_impl_Bi6(list2); - } - ArrayList<A> list = get_impl_Bi6(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(o); - set_impl_Bi6(list); - o.set_impl_Bi6(this); - } - public void B.removeBi6(A o) { - assertNotNull(o); - ArrayList<A> list = get_impl_Bi6(); - if (list != null && list.remove(o)) { - set_impl_Bi6(list); - if (o.get_impl_Bi6() == this) { - o.set_impl_Bi6(null); - } - } - } - - // rel A.Bi7* <-> B.Bi7 - public java.util.List<B> A.getBi7s() { - return getBi7List(); - } - public java.util.List<B> A.getBi7List() { - ArrayList<B> l = get_impl_Bi7(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void A.addBi7(B o) { - assertNotNull(o); - if (o != null && o.get_impl_Bi7() != null) { - ArrayList<B> list2 = o.get_impl_Bi7().get_impl_Bi7(); - if (list2.remove(o)) - o.get_impl_Bi7().set_impl_Bi7(list2); - } - ArrayList<B> list = get_impl_Bi7(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(o); - set_impl_Bi7(list); - o.set_impl_Bi7(this); - } - public void A.removeBi7(B o) { - assertNotNull(o); - ArrayList<B> list = get_impl_Bi7(); - if (list != null && list.remove(o)) { - set_impl_Bi7(list); - if (o.get_impl_Bi7() == this) { - o.set_impl_Bi7(null); - } - } - } - public A B.getBi7() { - return get_impl_Bi7(); - } - public void B.setBi7(A o) { - assertNotNull(o); - if (get_impl_Bi7() != null) { - ArrayList<B> list2 = get_impl_Bi7().get_impl_Bi7(); - list2.remove(this); - get_impl_Bi7().set_impl_Bi7(list2); - } - set_impl_Bi7(o); - ArrayList<B> list = o.get_impl_Bi7(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(this); - o.set_impl_Bi7(list); - } - - // rel A.Bi8* <-> B.Bi8? - public java.util.List<B> A.getBi8s() { - return getBi8List(); - } - public java.util.List<B> A.getBi8List() { - ArrayList<B> l = get_impl_Bi8(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void A.addBi8(B o) { - assertNotNull(o); - if (o != null && o.get_impl_Bi8() != null) { - ArrayList<B> list2 = o.get_impl_Bi8().get_impl_Bi8(); - if (list2.remove(o)) - o.get_impl_Bi8().set_impl_Bi8(list2); - } - ArrayList<B> list = get_impl_Bi8(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(o); - set_impl_Bi8(list); - o.set_impl_Bi8(this); - } - public void A.removeBi8(B o) { - assertNotNull(o); - ArrayList<B> list = get_impl_Bi8(); - if (list != null && list.remove(o)) { - set_impl_Bi8(list); - if (o.get_impl_Bi8() == this) { - o.set_impl_Bi8(null); - } - } - } - public A B.getBi8() { - return get_impl_Bi8(); - } - public void B.setBi8(A o) { - if (get_impl_Bi8() != null) { - ArrayList<B> list2 = get_impl_Bi8().get_impl_Bi8(); - list2.remove(this); - get_impl_Bi8().set_impl_Bi8(list2); - } - set_impl_Bi8(o); - if (o != null) { - ArrayList<B> list = o.get_impl_Bi8(); - if (list == null) { - list = new ArrayList<>(); - } - list.add(this); - o.set_impl_Bi8(list); - } - } - public boolean B.hasBi8() { - return getBi8() != null; - } - public void B.clearBi8() { - setBi8(null); - } - - // rel A.Bi9* <-> B.Bi9* - public java.util.List<B> A.getBi9s() { - return getBi9List(); - } - public java.util.List<B> A.getBi9List() { - ArrayList<B> l = get_impl_Bi9(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void A.addBi9(B o) { - assertNotNull(o); - ArrayList<B> list = get_impl_Bi9(); - if (list == null) { - list = new ArrayList<>(); - } - ArrayList<A> list2 = o.get_impl_Bi9(); - if (list2 == null) { - list2 = new ArrayList<>(); - } - list.add(o); - list2.add(this); - set_impl_Bi9(list); - o.set_impl_Bi9(list2); - } - public void A.removeBi9(B o) { - assertNotNull(o); - ArrayList<B> list = get_impl_Bi9(); - if (list != null && list.remove(o)) { - ArrayList<A> list2 = o.get_impl_Bi9(); - if (list2 != null) list2.remove(this); - set_impl_Bi9(list); - o.set_impl_Bi9(list2); - } - } - public java.util.List<A> B.getBi9s() { - return getBi9List(); - } - public java.util.List<A> B.getBi9List() { - ArrayList<A> l = get_impl_Bi9(); - return l != null ? Collections.unmodifiableList(l) : Collections.emptyList(); - } - public void B.addBi9(A o) { - assertNotNull(o); - ArrayList<A> list = get_impl_Bi9(); - if (list == null) { - list = new ArrayList<>(); - } - ArrayList<B> list2 = o.get_impl_Bi9(); - if (list2 == null) { - list2 = new ArrayList<>(); - } - list.add(o); - list2.add(this); - set_impl_Bi9(list); - o.set_impl_Bi9(list2); - } - public void B.removeBi9(A o) { - assertNotNull(o); - ArrayList<A> list = get_impl_Bi9(); - if (list != null && list.remove(o)) { - ArrayList<B> list2 = o.get_impl_Bi9(); - if (list2 != null) list2.remove(this); - set_impl_Bi9(list); - o.set_impl_Bi9(list2); - } - } - - public boolean ASTNode.violatesLowerBounds() { - return !getLowerBoundsViolations().isEmpty(); - } - public java.util.List<Pair<ASTNode, String>> ASTNode.getLowerBoundsViolations() { - ArrayList<Pair<ASTNode, String>> list = new ArrayList<>(); - computeLowerBoundsViolations(list); - return list; - } - public void ASTNode.computeLowerBoundsViolations(java.util.List<Pair<ASTNode, String>> list) { - for (int i = 0; i < getNumChildNoTransform(); i++) { - getChildNoTransform(i).computeLowerBoundsViolations(list); - } - } - public void B.computeLowerBoundsViolations(java.util.List<Pair<ASTNode, String>> list) { - if (getBi4() == null) { - list.add(new Pair<>(this, "Bi4")); - } - if (getBi1() == null) { - list.add(new Pair<>(this, "Bi1")); - } - if (getBi7() == null) { - list.add(new Pair<>(this, "Bi7")); - } - super.computeLowerBoundsViolations(list); - } - public void A.computeLowerBoundsViolations(java.util.List<Pair<ASTNode, String>> list) { - if (getBi1() == null) { - list.add(new Pair<>(this, "Bi1")); - } - if (getDi1() == null) { - list.add(new Pair<>(this, "Di1")); - } - if (getBi3() == null) { - list.add(new Pair<>(this, "Bi3")); - } - if (getBi2() == null) { - list.add(new Pair<>(this, "Bi2")); - } - super.computeLowerBoundsViolations(list); - } - public class Pair<T1, T2> { - public final T1 _1; - public final T2 _2; - public Pair(T1 _1, T2 _2) { - ASTNode.assertNotNull(_1); - ASTNode.assertNotNull(_2); - this._1 = _1; - this._2 = _2; - } - public boolean equals(Object other) { - if (other instanceof Pair) { - Pair<?,?> p = (Pair<?,?>) other; - return _1.equals(p._1) && _2.equals(p._2); - } else { - return false; - } - } - public int hashCode() { - return 31*_1.hashCode() + _2.hashCode(); - } - } - public static void ASTNode.assertNotNull(Object obj) { - if (obj == null) { - throw new NullPointerException(); - } - } -} diff --git a/tests/multipleFiles/All.java b/tests/multipleFiles/All.java deleted file mode 100644 index 404f3fc..0000000 --- a/tests/multipleFiles/All.java +++ /dev/null @@ -1,629 +0,0 @@ -import AST.*; -import java.util.*; - -@SuppressWarnings("ArraysAsListWithZeroOrOneArgument") -public class All extends AbstractTests { - private Root r; - private A a1; - private A a2; - private A a3; - private B b1; - private B b2; - private B b3; - - public static void main(String args[]) { - new All().test(); - } - - public void test() { - testDi1(); - testDi2(); - testDi3(); - - testBi1(); - testBi2(); - testBi3(); - testBi4(); - testBi5(); - testBi6(); - testBi7(); - testBi8(); - testBi9(); - - testImmutableList(); - } - - /** - * rel A.Di1 -> B; - */ - private void testDi1() { - setup(); - a1.setDi1(b2); - a2.setDi1(b1); - - assertSame(a1.getDi1(), b2); - assertSame(a2.getDi1(), b1); - - a2.setDi1(b2); - - assertSame(a1.getDi1(), b2); - assertSame(a2.getDi1(), b2); - - try { - a3.setDi1(null); - assertException(); - } catch (Exception e) { - // OK - } - } - - - /** - * rel A.Di2? -> B; - */ - private void testDi2() { - setup(); - a1.setDi2(b2); - a2.setDi2(b1); - - assertSame(a1.getDi2(), b2); - assertSame(a2.getDi2(), b1); - - a2.setDi2(b2); - - assertSame(a1.getDi2(), b2); - assertSame(a2.getDi2(), b2); - - a2.clearDi2(); - - assertSame(a1.getDi2(), b2); - assertNull(a2.getDi2()); - - assertTrue(a1.hasDi2()); - assertFalse(a2.hasDi2()); - assertFalse(a3.hasDi2()); - } - - - /** - * rel A.Di3* -> B; - */ - private void testDi3() { - setup(); - a1.addDi3(b1); - a1.addDi3(b2); - a1.addDi3(b3); - a2.addDi3(b2); - - assertEquals(a1.getDi3s(), Arrays.asList(b1, b2, b3)); - assertEquals(a1.getDi3List(), Arrays.asList(b1, b2, b3)); - assertEquals(a2.getDi3s(), Arrays.asList(b2)); - assertEquals(a2.getDi3List(), Arrays.asList(b2)); - assertEquals(a3.getDi3s(), Arrays.asList()); - assertEquals(a3.getDi3List(), Arrays.asList()); - - a1.addDi3(b1); - a2.addDi3(b1); - a2.addDi3(b2); - - assertEquals(a1.getDi3s(), Arrays.asList(b1, b2, b3, b1)); - assertEquals(a1.getDi3List(), Arrays.asList(b1, b2, b3, b1)); - assertEquals(a2.getDi3s(), Arrays.asList(b2, b1, b2)); - assertEquals(a2.getDi3List(), Arrays.asList(b2, b1, b2)); - assertEquals(a3.getDi3s(), Arrays.asList()); - assertEquals(a3.getDi3List(), Arrays.asList()); - - a1.removeDi3(b1); - a2.removeDi3(b2); - - assertEquals(a1.getDi3s(), Arrays.asList(b2, b3, b1)); - assertEquals(a1.getDi3List(), Arrays.asList(b2, b3, b1)); - assertEquals(a2.getDi3s(), Arrays.asList(b1, b2)); - assertEquals(a2.getDi3List(), Arrays.asList(b1, b2)); - assertEquals(a3.getDi3s(), Arrays.asList()); - assertEquals(a3.getDi3List(), Arrays.asList()); - } - - - /** - * rel A.Bi1 <-> B.Bi1; - */ - private void testBi1() { - testBi11(); - testBi12(); - } - private void testBi11() { - // Init - setup(); - a1.setBi1(b1); - a2.setBi1(b2); - - // Change - a2.setBi1(b1); - - assertNull(a1.getBi1()); - assertSame(a2.getBi1(), b1); - assertSame(b1.getBi1(), a2); - assertNull(b2.getBi1()); - } - private void testBi12() { - // Init - setup(); - a1.setBi1(b2); - - // Change - a2.setBi1(b2); - - assertNull(a1.getBi1()); - assertSame(a2.getBi1(), b2); - assertNull(b1.getBi1()); - assertSame(b2.getBi1(), a2); - } - - - - /** - * rel A.Bi2 <-> B.Bi2?; - */ - private void testBi2() { - testBi21(); - testBi22(); - } - private void testBi21() { - // Init - setup(); - a1.setBi2(b1); - a2.setBi2(b2); - - // Change - a2.setBi2(b1); - - assertNull(a1.getBi2()); - assertSame(a2.getBi2(), b1); - assertSame(b1.getBi2(), a2); - assertNull(b2.getBi2()); - } - private void testBi22() { - // Init - setup(); - a1.setBi2(b2); - - // Change - a2.setBi2(b2); - - assertNull(a1.getBi2()); - assertSame(a2.getBi2(), b2); - assertNull(b1.getBi2()); - assertSame(b2.getBi2(), a2); - } - - - - /** - * rel A.Bi3 <-> B.Bi3*; - */ - private void testBi3() { - setup(); - a2.setBi3(b2); - - assertNull(a1.getBi3()); - assertSame(a2.getBi3(), b2); - assertEquals(b1.getBi3s(), Arrays.asList()); - assertEquals(b1.getBi3List(), Arrays.asList()); - assertEquals(b2.getBi3s(), Arrays.asList(a2)); - assertEquals(b2.getBi3List(), Arrays.asList(a2)); - assertEquals(b3.getBi3s(), Arrays.asList()); - assertEquals(b3.getBi3List(), Arrays.asList()); - - a2.setBi3(b3); - - assertNull(a1.getBi3()); - assertSame(a2.getBi3(), b3); - assertEquals(b1.getBi3s(), Arrays.asList()); - assertEquals(b1.getBi3List(), Arrays.asList()); - assertEquals(b2.getBi3s(), Arrays.asList()); - assertEquals(b2.getBi3List(), Arrays.asList()); - assertEquals(b3.getBi3s(), Arrays.asList(a2)); - assertEquals(b3.getBi3List(), Arrays.asList(a2)); - - a1.setBi3(b3); - a3.setBi3(b3); - - assertSame(a1.getBi3(), b3); - assertSame(a2.getBi3(), b3); - assertSame(a3.getBi3(), b3); - assertEquals(b1.getBi3s(), Arrays.asList()); - assertEquals(b1.getBi3List(), Arrays.asList()); - assertEquals(b2.getBi3s(), Arrays.asList()); - assertEquals(b2.getBi3List(), Arrays.asList()); - assertEquals(b3.getBi3s(), Arrays.asList(a2, a1, a3)); - assertEquals(b3.getBi3List(), Arrays.asList(a2, a1, a3)); - - a2.setBi3(b1); - - assertSame(a1.getBi3(), b3); - assertSame(a2.getBi3(), b1); - assertSame(a3.getBi3(), b3); - assertEquals(b1.getBi3s(), Arrays.asList(a2)); - assertEquals(b1.getBi3List(), Arrays.asList(a2)); - assertEquals(b2.getBi3s(), Arrays.asList()); - assertEquals(b2.getBi3List(), Arrays.asList()); - assertEquals(b3.getBi3s(), Arrays.asList(a1, a3)); - assertEquals(b3.getBi3List(), Arrays.asList(a1, a3)); - - try { - a2.setBi3(null); - assertException(); - } catch (Exception e) { - // OK - } - } - - - - /** - * rel A.Bi4? <-> B.Bi4; - */ - private void testBi4() { - testBi41(); - testBi42(); - } - private void testBi41() { - // Init - setup(); - a1.setBi4(b1); - a2.setBi4(b2); - - // Change - a2.setBi4(b1); - - assertNull(a1.getBi4()); - assertSame(a2.getBi4(), b1); - assertSame(b1.getBi4(), a2); - assertNull(b2.getBi4()); - } - private void testBi42() { - // Init - setup(); - a1.setBi4(b2); - - // Change - a2.setBi4(b2); - - assertNull(a1.getBi4()); - assertSame(a2.getBi4(), b2); - assertNull(b1.getBi4()); - assertSame(b2.getBi4(), a2); - } - - - - /** - * rel A.Bi5? <-> B.Bi5?; - */ - private void testBi5() { - testBi51(); - testBi52(); - } - private void testBi51() { - // Init - setup(); - a1.setBi5(b1); - a2.setBi5(b2); - - // Change - a2.setBi5(b1); - - assertNull(a1.getBi5()); - assertSame(a2.getBi5(), b1); - assertSame(b1.getBi5(), a2); - assertNull(b2.getBi5()); - } - private void testBi52() { - // Init - setup(); - a1.setBi5(b2); - - // Change - a2.setBi5(b2); - - assertNull(a1.getBi5()); - assertSame(a2.getBi5(), b2); - assertNull(b1.getBi5()); - assertSame(b2.getBi5(), a2); - } - - - - /** - * rel A.Bi6? <-> B.Bi6*; - */ - private void testBi6() { - setup(); - a2.setBi6(b2); - - assertNull(a1.getBi6()); - assertSame(a2.getBi6(), b2); - assertEquals(b1.getBi6s(), Arrays.asList()); - assertEquals(b1.getBi6List(), Arrays.asList()); - assertEquals(b2.getBi6s(), Arrays.asList(a2)); - assertEquals(b2.getBi6List(), Arrays.asList(a2)); - assertEquals(b3.getBi6s(), Arrays.asList()); - assertEquals(b3.getBi6List(), Arrays.asList()); - - a2.setBi6(b3); - - assertNull(a1.getBi6()); - assertSame(a2.getBi6(), b3); - assertEquals(b1.getBi6s(), Arrays.asList()); - assertEquals(b1.getBi6List(), Arrays.asList()); - assertEquals(b2.getBi6s(), Arrays.asList()); - assertEquals(b2.getBi6List(), Arrays.asList()); - assertEquals(b3.getBi6s(), Arrays.asList(a2)); - assertEquals(b3.getBi6List(), Arrays.asList(a2)); - - a1.setBi6(b3); - a3.setBi6(b3); - - assertSame(a1.getBi6(), b3); - assertSame(a2.getBi6(), b3); - assertSame(a3.getBi6(), b3); - assertEquals(b1.getBi6s(), Arrays.asList()); - assertEquals(b1.getBi6List(), Arrays.asList()); - assertEquals(b2.getBi6s(), Arrays.asList()); - assertEquals(b2.getBi6List(), Arrays.asList()); - assertEquals(b3.getBi6s(), Arrays.asList(a2, a1, a3)); - assertEquals(b3.getBi6List(), Arrays.asList(a2, a1, a3)); - - a2.setBi6(b1); - - assertSame(a1.getBi6(), b3); - assertSame(a2.getBi6(), b1); - assertSame(a3.getBi6(), b3); - assertEquals(b1.getBi6s(), Arrays.asList(a2)); - assertEquals(b1.getBi6List(), Arrays.asList(a2)); - assertEquals(b2.getBi6s(), Arrays.asList()); - assertEquals(b2.getBi6List(), Arrays.asList()); - assertEquals(b3.getBi6s(), Arrays.asList(a1, a3)); - assertEquals(b3.getBi6List(), Arrays.asList(a1, a3)); - - a2.clearBi6(); - - assertSame(a1.getBi6(), b3); - assertNull(a2.getBi6()); - assertSame(a3.getBi6(), b3); - assertEquals(b1.getBi6s(), Arrays.asList()); - assertEquals(b1.getBi6List(), Arrays.asList()); - assertEquals(b2.getBi6s(), Arrays.asList()); - assertEquals(b2.getBi6List(), Arrays.asList()); - assertEquals(b3.getBi6s(), Arrays.asList(a1, a3)); - assertEquals(b3.getBi6List(), Arrays.asList(a1, a3)); - - assertTrue(a1.hasBi6()); - assertFalse(a2.hasBi6()); - assertTrue(a3.hasBi6()); - } - - - - /** - * rel A.Bi7* <-> B.Bi7; - */ - private void testBi7() { - setup(); - a2.addBi7(b2); - - assertEquals(a1.getBi7s(), Arrays.asList()); - assertEquals(a1.getBi7List(), Arrays.asList()); - assertEquals(a2.getBi7s(), Arrays.asList(b2)); - assertEquals(a2.getBi7List(), Arrays.asList(b2)); - assertNull(b1.getBi7()); - assertSame(b2.getBi7(), a2); - assertNull(b3.getBi7()); - - a2.addBi7(b3); - a1.addBi7(b2); - - assertEquals(a1.getBi7s(), Arrays.asList(b2)); - assertEquals(a1.getBi7List(), Arrays.asList(b2)); - assertEquals(a2.getBi7s(), Arrays.asList(b3)); - assertEquals(a2.getBi7List(), Arrays.asList(b3)); - assertNull(b1.getBi7()); - assertSame(b2.getBi7(), a1); - assertSame(b3.getBi7(), a2); - - a1.addBi7(b1); - - assertEquals(a1.getBi7s(), Arrays.asList(b2, b1)); - assertEquals(a1.getBi7List(), Arrays.asList(b2, b1)); - assertEquals(a2.getBi7s(), Arrays.asList(b3)); - assertEquals(a2.getBi7List(), Arrays.asList(b3)); - assertSame(b1.getBi7(), a1); - assertSame(b2.getBi7(), a1); - assertSame(b3.getBi7(), a2); - - a1.addBi7(b1); - - assertEquals(a1.getBi7s(), Arrays.asList(b2, b1)); - assertEquals(a1.getBi7List(), Arrays.asList(b2, b1)); - assertEquals(a2.getBi7s(), Arrays.asList(b3)); - assertEquals(a2.getBi7List(), Arrays.asList(b3)); - assertSame(b1.getBi7(), a1); - assertSame(b2.getBi7(), a1); - assertSame(b3.getBi7(), a2); - - a1.removeBi7(b1); - - assertEquals(a1.getBi7s(), Arrays.asList(b2)); - assertEquals(a1.getBi7List(), Arrays.asList(b2)); - assertEquals(a2.getBi7s(), Arrays.asList(b3)); - assertEquals(a2.getBi7List(), Arrays.asList(b3)); - assertNull(b1.getBi7()); - assertSame(b2.getBi7(), a1); - assertSame(b3.getBi7(), a2); - } - - - - /** - * rel A.Bi8* <-> B.Bi8?; - */ - private void testBi8() { - setup(); - a2.addBi8(b2); - - assertEquals(a1.getBi8s(), Arrays.asList()); - assertEquals(a1.getBi8List(), Arrays.asList()); - assertEquals(a2.getBi8s(), Arrays.asList(b2)); - assertEquals(a2.getBi8List(), Arrays.asList(b2)); - assertNull(b1.getBi8()); - assertSame(b2.getBi8(), a2); - assertNull(b3.getBi8()); - - a2.addBi8(b3); - a1.addBi8(b2); - - assertEquals(a1.getBi8s(), Arrays.asList(b2)); - assertEquals(a1.getBi8List(), Arrays.asList(b2)); - assertEquals(a2.getBi8s(), Arrays.asList(b3)); - assertEquals(a2.getBi8List(), Arrays.asList(b3)); - assertNull(b1.getBi8()); - assertSame(b2.getBi8(), a1); - assertSame(b3.getBi8(), a2); - - a1.addBi8(b1); - - assertEquals(a1.getBi8s(), Arrays.asList(b2, b1)); - assertEquals(a1.getBi8List(), Arrays.asList(b2, b1)); - assertEquals(a2.getBi8s(), Arrays.asList(b3)); - assertEquals(a2.getBi8List(), Arrays.asList(b3)); - assertSame(b1.getBi8(), a1); - assertSame(b2.getBi8(), a1); - assertSame(b3.getBi8(), a2); - - a1.addBi8(b1); - - assertEquals(a1.getBi8s(), Arrays.asList(b2, b1)); - assertEquals(a1.getBi8List(), Arrays.asList(b2, b1)); - assertEquals(a2.getBi8s(), Arrays.asList(b3)); - assertEquals(a2.getBi8List(), Arrays.asList(b3)); - assertSame(b1.getBi8(), a1); - assertSame(b2.getBi8(), a1); - assertSame(b3.getBi8(), a2); - - a1.removeBi8(b1); - - assertEquals(a1.getBi8s(), Arrays.asList(b2)); - assertEquals(a1.getBi8List(), Arrays.asList(b2)); - assertEquals(a2.getBi8s(), Arrays.asList(b3)); - assertEquals(a2.getBi8List(), Arrays.asList(b3)); - assertNull(b1.getBi8()); - assertSame(b2.getBi8(), a1); - assertSame(b3.getBi8(), a2); - } - - - - /** - * rel A.Bi9* <-> B.Bi9*; - */ - private void testBi9() { - setup(); - a1.addBi9(b1); - a1.addBi9(b2); - - assertEquals(a1.getBi9s(), Arrays.asList(b1, b2)); - assertEquals(a1.getBi9List(), Arrays.asList(b1, b2)); - assertEquals(a2.getBi9s(), Arrays.asList()); - assertEquals(a2.getBi9List(), Arrays.asList()); - assertEquals(a3.getBi9s(), Arrays.asList()); - assertEquals(a3.getBi9List(), Arrays.asList()); - assertEquals(b1.getBi9s(), Arrays.asList(a1)); - assertEquals(b1.getBi9List(), Arrays.asList(a1)); - assertEquals(b2.getBi9s(), Arrays.asList(a1)); - assertEquals(b2.getBi9List(), Arrays.asList(a1)); - assertEquals(b3.getBi9s(), Arrays.asList()); - assertEquals(b3.getBi9List(), Arrays.asList()); - - b3.addBi9(a1); - b3.addBi9(a3); - b3.addBi9(a1); - - assertEquals(a1.getBi9s(), Arrays.asList(b1, b2, b3, b3)); - assertEquals(a1.getBi9List(), Arrays.asList(b1, b2, b3, b3)); - assertEquals(a2.getBi9s(), Arrays.asList()); - assertEquals(a2.getBi9List(), Arrays.asList()); - assertEquals(a3.getBi9s(), Arrays.asList(b3)); - assertEquals(a3.getBi9List(), Arrays.asList(b3)); - assertEquals(b1.getBi9s(), Arrays.asList(a1)); - assertEquals(b1.getBi9List(), Arrays.asList(a1)); - assertEquals(b2.getBi9s(), Arrays.asList(a1)); - assertEquals(b2.getBi9List(), Arrays.asList(a1)); - assertEquals(b3.getBi9s(), Arrays.asList(a1, a3, a1)); - assertEquals(b3.getBi9List(), Arrays.asList(a1, a3, a1)); - - b3.removeBi9(a1); - - assertEquals(a1.getBi9s(), Arrays.asList(b1, b2, b3)); - assertEquals(a1.getBi9List(), Arrays.asList(b1, b2, b3)); - assertEquals(a2.getBi9s(), Arrays.asList()); - assertEquals(a2.getBi9List(), Arrays.asList()); - assertEquals(a3.getBi9s(), Arrays.asList(b3)); - assertEquals(a3.getBi9List(), Arrays.asList(b3)); - assertEquals(b1.getBi9s(), Arrays.asList(a1)); - assertEquals(b1.getBi9List(), Arrays.asList(a1)); - assertEquals(b2.getBi9s(), Arrays.asList(a1)); - assertEquals(b2.getBi9List(), Arrays.asList(a1)); - assertEquals(b3.getBi9s(), Arrays.asList(a3, a1)); - assertEquals(b3.getBi9List(), Arrays.asList(a3, a1)); - } - - - public void testImmutableList() { - setup(); - - a1.addDi3(b1); - a1.addDi3(b2); - try { - a1.getDi3s().add(b3); - assertException(); - } catch (Exception e) { - // OK - } - - a1.addBi7(b1); - a1.addBi7(b2); - try { - a1.getBi7s().add(b3); - assertException(); - } catch (Exception e) { - // OK - } - - a1.addBi9(b1); - a1.addBi9(b2); - try { - a1.getBi9s().add(b3); - assertException(); - } catch (Exception e) { - // OK - } - } - - private void setup() { - r = new Root(); - a1 = new A("a1"); - a2 = new A("a2"); - a3 = new A("a3"); - b1 = new B("b1"); - b2 = new B("b2"); - b3 = new B("b3"); - - r.addA(a1); - r.addA(a2); - r.addA(a3); - r.addB(b1); - r.addB(b2); - r.addB(b3); - } -} diff --git a/tests/multipleFiles/Makefile b/tests/multipleFiles/Makefile deleted file mode 100644 index 9a98a4a..0000000 --- a/tests/multipleFiles/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -all: build-jar test -test: clean test1 - @echo "#" - @echo "# MULTIPLE FILES TESTS OK" - @echo "#" - -build-jar: - (cd ../../ && ./gradlew jar) -test1: - java -jar ../../build/libs/relast.jar Rules1.relast Rules2.relast Rules3.relast --file --grammarName=Relations - java -jar ../../tools/jastadd2.jar --package=AST Relations.ast Relations.jadd Utils.jadd - javac AST/*.java Relations.java - java Relations - java -jar ../../build/libs/relast.jar Relations.ast --file --grammarName=AllGen - diff Relations.ast AllGen.ast - -clean: - rm -rf AST - rm -f *.class - rm -f *.ast \ No newline at end of file diff --git a/tests/multipleFiles/Utils.jadd b/tests/multipleFiles/Utils.jadd deleted file mode 100644 index d7acb1b..0000000 --- a/tests/multipleFiles/Utils.jadd +++ /dev/null @@ -1,9 +0,0 @@ -aspect Utils { - public String A.toString() { - return getName(); - } - - public String B.toString() { - return getName(); - } -} \ No newline at end of file -- GitLab