diff --git a/tests/MyGame/Example/StructOfStructsT.java b/tests/MyGame/Example/StructOfStructsT.java
new file mode 100644
index 0000000..47e337a
--- /dev/null
+++ b/tests/MyGame/Example/StructOfStructsT.java
@@ -0,0 +1,34 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+
+package MyGame.Example;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
+
+public class StructOfStructsT {
+  private MyGame.Example.AbilityT a;
+  private MyGame.Example.TestT b;
+  private MyGame.Example.AbilityT c;
+
+  public MyGame.Example.AbilityT getA() { return a; }
+
+  public void setA(MyGame.Example.AbilityT a) { this.a = a; }
+
+  public MyGame.Example.TestT getB() { return b; }
+
+  public void setB(MyGame.Example.TestT b) { this.b = b; }
+
+  public MyGame.Example.AbilityT getC() { return c; }
+
+  public void setC(MyGame.Example.AbilityT c) { this.c = c; }
+
+
+  public StructOfStructsT() {
+    this.a = new MyGame.Example.AbilityT();
+    this.b = new MyGame.Example.TestT();
+    this.c = new MyGame.Example.AbilityT();
+  }
+}
+
