From 574353e81c725c300c75dcf7892aae9b30808456 Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Mon, 25 Nov 2019 16:41:27 +0100
Subject: [PATCH] add test for state machine

---
 .../inf/st/e2j/TransformationTest.java        |  5 +++
 .../inf/st/e2j/parser/ParserTest.java         | 35 +++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java b/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java
index a0a9b71..f934124 100644
--- a/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java
+++ b/src/test/java/de/tudresden/inf/st/e2j/TransformationTest.java
@@ -110,6 +110,11 @@ class TransformationTest extends AbstractTest {
     }
   }
 
+  @Test
+  void transformStateMachine() {
+    transformFile("/ecore/statemachine.ecore", "src/gen/resources/grammar/statemachine.relast");
+  }
+
   @Test
   void transformTrain() {
     transformFile("/ecore/Train.ecore", "src/gen/resources/grammar/Train.relast");
diff --git a/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java b/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java
index 8d3b97f..08a6439 100644
--- a/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java
+++ b/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java
@@ -67,6 +67,41 @@ class ParserTest extends AbstractTest {
 
   }
 
+  @Test
+  void parseStateMachine() {
+
+    EObject ePackage = null;
+
+    final String fileName = "/ecore/statemachine.ecore";
+
+    EcoreParser parser = new EcoreParser();
+
+    try (InputStream stream = this.getClass().getResourceAsStream(fileName)) {
+      Assertions.assertNotNull(stream, "unable to load resource '" + fileName + "'");
+      ePackage = parser.parse(stream).get(0);
+    } catch (IOException | XMIParseException e) {
+      Assertions.fail(e);
+    }
+
+    Assertions.assertNotNull(ePackage);
+
+    Assertions.assertTrue(ePackage instanceof EPackage);
+
+    EPackage p = (EPackage) ePackage;
+
+    StringBuilder b = new StringBuilder();
+
+    p.writeXMI(b);
+
+    try (PrintWriter out = new PrintWriter("src/gen/resources/ecore/statemachine.ecore")) {
+      out.print(b.toString());
+    } catch (FileNotFoundException e) {
+      Assertions.fail("unable to write output file", e);
+    }
+
+    System.out.println(b.toString());
+  }
+
   @Test
   void parseBigraph() {
 
-- 
GitLab