diff --git a/capnpc-csharp.tests/Properties/Resources.Designer.cs b/capnpc-csharp.tests/Properties/Resources.Designer.cs
index d7a8a0c..a67166c 100644
--- a/capnpc-csharp.tests/Properties/Resources.Designer.cs
+++ b/capnpc-csharp.tests/Properties/Resources.Designer.cs
@@ -59,5 +59,15 @@ namespace capnpc_csharp.Tests.Properties {
resourceCulture = value;
}
}
+
+ ///
+ /// Looks up a localized resource of type System.Byte[].
+ ///
+ internal static byte[] UnitTest1_capnp {
+ get {
+ object obj = ResourceManager.GetObject("UnitTest1_capnp", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
}
}
diff --git a/capnpc-csharp.tests/Properties/Resources.resx b/capnpc-csharp.tests/Properties/Resources.resx
index 2f96abe..bc2d6ee 100644
--- a/capnpc-csharp.tests/Properties/Resources.resx
+++ b/capnpc-csharp.tests/Properties/Resources.resx
@@ -118,4 +118,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ ..\Resources\UnitTest1.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/capnpc-csharp.tests/Resources/UnitTest1.capnp.bin b/capnpc-csharp.tests/Resources/UnitTest1.capnp.bin
new file mode 100644
index 0000000..b6ecdf8
Binary files /dev/null and b/capnpc-csharp.tests/Resources/UnitTest1.capnp.bin differ
diff --git a/capnpc-csharp.tests/UnitTest1.capnp b/capnpc-csharp.tests/UnitTest1.capnp
new file mode 100644
index 0000000..125190e
--- /dev/null
+++ b/capnpc-csharp.tests/UnitTest1.capnp
@@ -0,0 +1,5 @@
+@0x93d3c4d19cd84a4c;
+
+enum Enumerant {
+ byte @0;
+}
\ No newline at end of file
diff --git a/capnpc-csharp.tests/UnitTests.cs b/capnpc-csharp.tests/UnitTests.cs
new file mode 100644
index 0000000..0d10a48
--- /dev/null
+++ b/capnpc-csharp.tests/UnitTests.cs
@@ -0,0 +1,55 @@
+using capnpc_csharp.Tests.Properties;
+using Capnp;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace CapnpC
+{
+ [TestClass]
+ public class UnitTests
+ {
+
+ [TestMethod]
+ public void Test00Enumerant()
+ {
+ var model = Load(Resources.UnitTest1_capnp);
+ Assert.AreEqual("@byte", GetTypeDef(0xc8461867c409f5d4, model).Enumerants[0].Literal);
+ }
+
+ static Model.TypeDefinition GetTypeDef(ulong id, Model.SchemaModel model)
+ {
+ foreach (var defs in model.FilesToGenerate.Select(f => f.NestedTypes))
+ {
+ if (GetTypeDef(id, defs) is Model.TypeDefinition def) return def;
+ }
+ return null;
+ }
+
+ static Model.TypeDefinition GetTypeDef(ulong id, IEnumerable defs)
+ {
+ foreach (var def in defs)
+ {
+ if (def.Id == id) return def;
+ var sub = GetTypeDef(id, def.NestedTypes);
+ if (sub != null) return sub;
+ }
+ return null;
+ }
+
+ static Model.SchemaModel Load(byte[] data)
+ {
+ WireFrame segments;
+ var input = new MemoryStream(data);
+ using (input)
+ {
+ segments = Framing.ReadSegments(input);
+ }
+ var dec = DeserializerState.CreateRoot(segments);
+ var reader = Schema.CodeGeneratorRequest.Reader.Create(dec);
+ var model = Model.SchemaModel.Create(reader);
+ return model;
+ }
+ }
+}
diff --git a/capnpc-csharp.tests/capnpc-csharp.tests.csproj b/capnpc-csharp.tests/capnpc-csharp.tests.csproj
index a8047be..3be689f 100644
--- a/capnpc-csharp.tests/capnpc-csharp.tests.csproj
+++ b/capnpc-csharp.tests/capnpc-csharp.tests.csproj
@@ -19,6 +19,7 @@
+