Beispiel #1
0
        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);
        }
Beispiel #2
0
        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"]);
        }
Beispiel #3
0
        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"]);
        }
Beispiel #4
0
 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 );
     }
Beispiel #5
0
 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
 {