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 a0a9b713aaf24dd605c661d491eac53073f3e636..f934124eccd3233451df3d65f0ecbbccfd83bc45 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 8d3b97f18e64afc7d0c79fa438e7098bc94cfc0a..08a64391351f15fc36a848ff83ec4bfc43c87963 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() {