From 03b1771a95faf7c5805db5e5281e23990f502c3c Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Sun, 8 Dec 2024 12:00:44 +0100
Subject: [PATCH] add test for constructor reordering with relations.

---
 src/test/jastadd/constructors/Constructors.relast     |  7 +++++++
 .../org/jastadd/relast/tests/ConstructorsTest.java    | 11 +++++++++++
 2 files changed, 18 insertions(+)

diff --git a/src/test/jastadd/constructors/Constructors.relast b/src/test/jastadd/constructors/Constructors.relast
index 23f473b..e419d93 100644
--- a/src/test/jastadd/constructors/Constructors.relast
+++ b/src/test/jastadd/constructors/Constructors.relast
@@ -8,3 +8,10 @@ C : B ::= /<B8:long>/ /<B7>/ /[B6:A]/ /B5:A*/ /B4:A/ [B3:A] B2:A* B1:A;
 rel A.r1 -> X;
 rel S.r2* <-> Y.r2;
 rel B.r3? -> X;
+
+// testing reordering of children
+Super ::= <Name>;
+Order : Super ::= X MyY:Y;
+ReOrder : Order ::= MyY:Y X;
+
+rel Super.x -> X;
\ No newline at end of file
diff --git a/src/test/java/org/jastadd/relast/tests/ConstructorsTest.java b/src/test/java/org/jastadd/relast/tests/ConstructorsTest.java
index ba22042..26fb00a 100644
--- a/src/test/java/org/jastadd/relast/tests/ConstructorsTest.java
+++ b/src/test/java/org/jastadd/relast/tests/ConstructorsTest.java
@@ -70,6 +70,17 @@ public class ConstructorsTest {
     Assertions.assertEquals(3, numberOfConstructors(B.class));
   }
 
+  @Test
+  public void testReordering() {
+    String name = "";
+    X x = new X();
+    Y y = new Y();
+    Order o = new Order(name, x, y);
+    Assertions.assertEquals(3, numberOfConstructors(Order.class));
+    ReOrder ro = new ReOrder(name, y, x);
+    Assertions.assertEquals(3, numberOfConstructors(ReOrder.class));
+  }
+
   private int numberOfConstructors(Class<?> clazz) {
     return clazz.getConstructors().length;
   }
-- 
GitLab