public void DataMap_IntAndString() { UnionTest u; Dictionary <string, object> data = new Dictionary <string, object>() { { "unionEmpty", new Dictionary <string, object>() }, { "unionWithoutNull", new Dictionary <string, object>() { { "int", 20 } } }, { "unionWithInline", new Dictionary <string, object>() { { "string", "hello, world!" } } } }; u = new UnionTest(data); Assert.IsInstanceOfType(u.unionEmpty, typeof(UnionTest.UnionEmpty)); Assert.IsInstanceOfType(u.unionWithoutNull, typeof(UnionTest.UnionWithoutNull)); Assert.IsInstanceOfType(u.unionWithInline, typeof(UnionTest.UnionWithInline)); Assert.AreEqual(UnionTest.UnionWithoutNull.Member.Int, u.unionWithoutNull.member); Assert.AreEqual(20, u.unionWithoutNull.asInt); Assert.AreEqual(UnionTest.UnionWithInline.Member.String, u.unionWithInline.member); Assert.AreEqual("hello, world!", u.unionWithInline.asString); }
public void DataMap_BytesAndMap() { UnionTest u; Dictionary <string, object> data = new Dictionary <string, object>() { { "unionEmpty", new Dictionary <string, object>() }, { "unionWithoutNull", new Dictionary <string, object>() { { "bytes", "\u0000\u0001\u0002\u0003" } } }, { "unionWithInline", new Dictionary <string, object>() { { "map", new Dictionary <string, object>() { { "key", 9999 } } } } } }; u = new UnionTest(data); Assert.IsInstanceOfType(u.unionEmpty, typeof(UnionTest.UnionEmpty)); Assert.IsInstanceOfType(u.unionWithoutNull, typeof(UnionTest.UnionWithoutNull)); Assert.IsInstanceOfType(u.unionWithInline, typeof(UnionTest.UnionWithInline)); byte[] expectedBytes = new byte[] { 0, 1, 2, 3 }; Assert.AreEqual(UnionTest.UnionWithoutNull.Member.Bytes, u.unionWithoutNull.member); CollectionAssert.AreEqual(expectedBytes, u.unionWithoutNull.asBytes.GetBytes()); Assert.AreEqual(UnionTest.UnionWithInline.Member.Map, u.unionWithInline.member); Assert.AreEqual(9999, u.unionWithInline.asMap["key"]); }
public void FullCycle() { UnionTest u; Dictionary <string, object> data = new Dictionary <string, object>() { { "unionEmpty", new Dictionary <string, object>() }, { "unionWithoutNull", new Dictionary <string, object>() { { "bytes", "\u0000\u0001\u0002\u0003" } } }, { "unionWithInline", new Dictionary <string, object>() { { "map", new Dictionary <string, object>() { { "key", 9999 } } } } } }; u = new UnionTest(data); UnionTest reclaimed = new UnionTest(u.Data()); Assert.AreNotSame(u, reclaimed); Assert.AreEqual(u.hasUnionWithInline, reclaimed.hasUnionWithInline); Assert.AreEqual(u.unionWithInline.asMap["key"], reclaimed.unionWithInline.asMap["key"]); }
static void Main(string[] args) { UnionTest u = new UnionTest(); // Set via Int and get through Char u.intVal = 65; Console.WriteLine("chVal:{0}",u.chVal ); // Set via Char and get through Int u.chVal = 'B'; Console.WriteLine("intVal:{0}",u.intVal ); }
public static T Match <T>(this UnionTest unionTest, Func <FunicularSwitch.Generators.Consumer.UnionTest.Ons_, T> ons, Func <FunicularSwitch.Generators.Consumer.UnionTest.Zwo_, T> zwo, Func <FunicularSwitch.Generators.Consumer.UnionTest.Droi_, T> droi) => unionTest switch {