public void FieldNameConventionsWithContextProperty()
        {
            var context = new FudgeContext();           // So we don't mess with other unit tests
            var obj1    = new FieldConventionClass {
                MyName = "Bobby", myAge = 6
            };
            FudgeMsg        msg;
            FudgeSerializer serializer;

            // Default is identity
            serializer = new FudgeSerializer(context);
            Assert.Equal(FudgeFieldNameConvention.Identity, serializer.TypeMap.FieldNameConvention);
            msg = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("MyName"));
            Assert.Equal(6, msg.GetInt("myAge"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.AllLowerCase);
            serializer = new FudgeSerializer(context);
            msg        = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("myname"));
            Assert.Equal(6, msg.GetInt("myage"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.AllUpperCase);
            serializer = new FudgeSerializer(context);
            msg        = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("MYNAME"));
            Assert.Equal(6, msg.GetInt("MYAGE"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.CamelCase);
            serializer = new FudgeSerializer(context);
            msg        = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("myName"));
            Assert.Equal(6, msg.GetInt("myAge"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.PascalCase);
            serializer = new FudgeSerializer(context);
            msg        = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("MyName"));
            Assert.Equal(6, msg.GetInt("MyAge"));
            Assert.Equal(obj1, serializer.Deserialize(msg));
        }
        public void FieldNameConventionsWithContextProperty()
        {
            var context = new FudgeContext();           // So we don't mess with other unit tests
            var obj1 = new FieldConventionClass {MyName = "Bobby", myAge = 6};
            FudgeMsg msg;
            FudgeSerializer serializer;

            // Default is identity
            serializer = new FudgeSerializer(context);
            Assert.Equal(FudgeFieldNameConvention.Identity, serializer.TypeMap.FieldNameConvention);
            msg = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("MyName"));
            Assert.Equal(6, msg.GetInt("myAge"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.AllLowerCase);
            serializer = new FudgeSerializer(context);
            msg = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("myname"));
            Assert.Equal(6, msg.GetInt("myage"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.AllUpperCase);
            serializer = new FudgeSerializer(context);
            msg = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("MYNAME"));
            Assert.Equal(6, msg.GetInt("MYAGE"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.CamelCase);
            serializer = new FudgeSerializer(context);
            msg = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("myName"));
            Assert.Equal(6, msg.GetInt("myAge"));
            Assert.Equal(obj1, serializer.Deserialize(msg));

            context.SetProperty(ContextProperties.FieldNameConventionProperty, FudgeFieldNameConvention.PascalCase);
            serializer = new FudgeSerializer(context);
            msg = serializer.SerializeToMsg(obj1);
            Assert.Equal("Bobby", msg.GetString("MyName"));
            Assert.Equal(6, msg.GetInt("MyAge"));
            Assert.Equal(obj1, serializer.Deserialize(msg));
        }