Ejemplo n.º 1
0
        public void NamedEnumCommaTest2()
        {
            EnumContainer <NamedEnumWithComma> c = new EnumContainer <NamedEnumWithComma>
            {
                Enum = NamedEnumWithComma.JustComma
            };

            string json = JsonConvert.SerializeObject(
                c,
                Formatting.Indented,
                new StringEnumConverter()
                );

            StringAssert.AreEqual(
                @"{
  ""Enum"": "",""
}",
                json
                );

            EnumContainer <NamedEnumWithComma> c2 = JsonConvert.DeserializeObject <
                EnumContainer <NamedEnumWithComma>
                >(json, new StringEnumConverter());

            Assert.AreEqual(NamedEnumWithComma.JustComma, c2.Enum);
        }
Ejemplo n.º 2
0
        public void DeserializeNameEnumTest()
        {
            string json =
                @"{
  ""Enum"": ""@first""
}";

            EnumContainer <NamedEnum> c = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >(
                json,
                new StringEnumConverter()
                );

            Assert.AreEqual(NamedEnum.First, c.Enum);

            json =
                @"{
  ""Enum"": ""Third""
}";

            c = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >(
                json,
                new StringEnumConverter()
                );
            Assert.AreEqual(NamedEnum.Third, c.Enum);
        }
Ejemplo n.º 3
0
        public void SerializeNameEnumTest()
        {
            EnumContainer <NamedEnum> c = new EnumContainer <NamedEnum> {
                Enum = NamedEnum.First
            };

            string json = JsonConvert.SerializeObject(
                c,
                Formatting.Indented,
                new StringEnumConverter()
                );

            StringAssert.AreEqual(
                @"{
  ""Enum"": ""@first""
}",
                json
                );

            c = new EnumContainer <NamedEnum> {
                Enum = NamedEnum.Third
            };

            json = JsonConvert.SerializeObject(c, Formatting.Indented, new StringEnumConverter());
            StringAssert.AreEqual(
                @"{
  ""Enum"": ""Third""
}",
                json
                );
        }
Ejemplo n.º 4
0
        public void JsonSerialization_Serialize_Enums()
        {
            var src = new EnumContainer
            {
                BasicEnum    = BasicEnum.A,
                EnumToByte   = EnumToByte.B,
                EnumToInt    = EnumToInt.C,
                EnumToLong   = EnumToLong.A,
                EnumToShort  = EnumToShort.B,
                EnumToUint   = EnumToUint.C,
                EnumToSByte  = EnumToSByte.A,
                EnumToULong  = EnumToULong.B,
                EnumToUShort = EnumToUShort.C
            };
            var dst = new EnumContainer();

            var json = JsonSerialization.Serialize(src);

            using (JsonSerialization.DeserializeFromString(json, ref dst))
            {
                Assert.That(dst.BasicEnum, Is.EqualTo(src.BasicEnum));
                Assert.That(dst.EnumToByte, Is.EqualTo(src.EnumToByte));
                Assert.That(dst.EnumToInt, Is.EqualTo(src.EnumToInt));
                Assert.That(dst.EnumToLong, Is.EqualTo(src.EnumToLong));
                Assert.That(dst.EnumToShort, Is.EqualTo(src.EnumToShort));
                Assert.That(dst.EnumToUint, Is.EqualTo(src.EnumToUint));
                Assert.That(dst.EnumToSByte, Is.EqualTo(src.EnumToSByte));
                Assert.That(dst.EnumToULong, Is.EqualTo(src.EnumToULong));
                Assert.That(dst.EnumToUShort, Is.EqualTo(src.EnumToUShort));
            }
        }
Ejemplo n.º 5
0
        public void NamedEnumCommaCaseInsensitiveTest()
        {
            EnumContainer <NamedEnumWithComma> c2 = JsonConvert.DeserializeObject <
                EnumContainer <NamedEnumWithComma>
                >(@"{""Enum"":"",THIRD""}", new StringEnumConverter());

            Assert.AreEqual(NamedEnumWithComma.Third, c2.Enum);
        }
Ejemplo n.º 6
0
        public void NamedEnumDuplicateTest()
        {
            EnumContainer <NamedEnumDuplicate> c = new EnumContainer <NamedEnumDuplicate>
            {
                Enum = NamedEnumDuplicate.First
            };

            JsonConvert.SerializeObject(c, Formatting.Indented, new StringEnumConverter());
        }
        public void CamelCaseTextFlagEnumDeserialization()
        {
            string json = @"{
  ""Enum"": ""first, second""
}";

            EnumContainer<FlagsTestEnum> c = JsonConvert.DeserializeObject<EnumContainer<FlagsTestEnum>>(json, new StringEnumConverter { CamelCaseText = true });
            Assert.AreEqual(FlagsTestEnum.First | FlagsTestEnum.Second, c.Enum);
        }
Ejemplo n.º 8
0
            public void GivenNullToSerialize_WritesNull()
            {
                var c = new EnumContainer <NamedEnum> {
                    Enum = null
                };

                var json = JsonConvert.SerializeObject(c, Formatting.Indented, _sut);

                json.Should().Be("{\r\n  \"Enum\": null\r\n}");
            }
Ejemplo n.º 9
0
            public void GivenNullToDeserialize_ReadsNull()
            {
                var expected = new EnumContainer <NamedEnum> {
                    Enum = null
                };

                var actual = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >("{\r\n  \"Enum\": null\r\n}", _settings);

                actual.Should().BeEquivalentTo(expected);
            }
            public void GivenEmptyArrayToDeserialize_ReadsEmptyArray()
            {
                var expected = new EnumContainer <NamedEnum> {
                    Enums = new NamedEnum?[0]
                };

                var actual = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >("{\r\n  \"Enums\": []\r\n}", _settings);

                actual.Should().BeEquivalentTo(expected);
            }
            public void GivenEmptyArrayToSerialize_WritesEmptyArray()
            {
                var c = new EnumContainer <NamedEnum> {
                    Enums = new NamedEnum?[0]
                };

                var json = JsonConvert.SerializeObject(c, Formatting.None, _sut);

                json.Should().Be("{\"Enums\":[]}");
            }
Ejemplo n.º 12
0
            public void GivenValidNameWithDifferentCasing_ReadsCorrectEnumValue(string valueToDeserialize)
            {
                var expected = new EnumContainer <NamedEnum> {
                    Enum = NamedEnum.Second
                };

                var actual = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >($"{{\r\n  \"Enum\": \"{valueToDeserialize}\"\r\n}}", _settings);

                actual.Should().BeEquivalentTo(expected);
            }
Ejemplo n.º 13
0
            public void GivenInvalidName_ReadsNull()
            {
                var expected = new EnumContainer <NamedEnum> {
                    Enum = null
                };

                // ReSharper disable once RedundantStringInterpolation
                var actual = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >($"{{\r\n  \"Enum\": \"banana\"\r\n}}", _settings);

                actual.Should().BeEquivalentTo(expected);
            }
            public void GivenInvalidValue_ReadsNull()
            {
                var expected = new EnumContainer <ValuedEnum> {
                    Enums = new ValuedEnum?[] { null }
                };

                // ReSharper disable once RedundantStringInterpolation
                var actual = JsonConvert.DeserializeObject <EnumContainer <ValuedEnum> >($"{{\r\n  \"Enums\": [564]\r\n}}", _settings);

                actual.Should().BeEquivalentTo(expected);
            }
        public void CamelCaseTextFlagEnumSerialization()
        {
            EnumContainer<FlagsTestEnum> c = new EnumContainer<FlagsTestEnum>
            {
                Enum = FlagsTestEnum.First | FlagsTestEnum.Second
            };

            string json = JsonConvert.SerializeObject(c, Formatting.Indented, new StringEnumConverter { CamelCaseText = true });
            StringAssert.AreEqual(@"{
  ""Enum"": ""first, second""
}", json);
        }
Ejemplo n.º 16
0
        public void EnumSerialize()
        {
            var enumContainer = new EnumContainer
            {
                Hello = TestEnum.Test
            };

            string enm      = XMLFormat.To(enumContainer);
            var    restored = XMLFormat.From <EnumContainer>(enm);

            Assert.Equal(restored.Hello, TestEnum.Test);
        }
        public void NamedEnumDuplicateTest()
        {
            ExceptionAssert.Throws <Exception>(() =>
            {
                EnumContainer <NamedEnumDuplicate> c = new EnumContainer <NamedEnumDuplicate>
                {
                    Enum = NamedEnumDuplicate.First
                };

                JsonConvert.SerializeObject(c, Formatting.Indented, new StringEnumConverter());
            }, "Enum name 'Third' already exists on enum 'NamedEnumDuplicate'.");
        }
        public void CamelCaseTextFlagEnumDeserialization()
        {
            string json = @"{
  ""Enum"": ""first, second""
}";

#pragma warning disable CS0618 // Type or member is obsolete
            EnumContainer <FlagsTestEnum> c = JsonConvert.DeserializeObject <EnumContainer <FlagsTestEnum> >(json, new StringEnumConverter {
                CamelCaseText = true
            });
#pragma warning restore CS0618 // Type or member is obsolete
            Assert.AreEqual(FlagsTestEnum.First | FlagsTestEnum.Second, c.Enum);
        }
        public void CamelCaseTextFlagEnumSerialization()
        {
            EnumContainer <FlagsTestEnum> c = new EnumContainer <FlagsTestEnum>
            {
                Enum = FlagsTestEnum.First | FlagsTestEnum.Second
            };

#pragma warning disable CS0618 // Type or member is obsolete
            string json = JsonConvert.SerializeObject(c, Formatting.Indented, new StringEnumConverter {
                CamelCaseText = true
            });
#pragma warning restore CS0618 // Type or member is obsolete
            StringAssert.AreEqual(@"{
  ""Enum"": ""first, second""
}", json);
        }
            public void GivenValidNamesToDeserialize_ReadsCorrectEnumValue()
            {
                var expected = new EnumContainer <NamedEnum> {
                    Enums = new NamedEnum?[] { NamedEnum.First }
                };

                var actual = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >("{\r\n  \"Enums\": [\"First\"]\r\n}", _settings);

                actual.Should().BeEquivalentTo(expected);

                expected = new EnumContainer <NamedEnum> {
                    Enums = new NamedEnum?[] { NamedEnum.First, NamedEnum.Second }
                };

                actual = JsonConvert.DeserializeObject <EnumContainer <NamedEnum> >("{\r\n  \"Enums\": [\"First\",\"Second\"]\r\n}", _settings);
                actual.Should().BeEquivalentTo(expected);
            }
Ejemplo n.º 21
0
            public void GivenValidValueToDeserialize_ReadsCorrectEnumValue()
            {
                var expected = new EnumContainer <ValuedEnum> {
                    Enum = ValuedEnum.First
                };

                var actual = JsonConvert.DeserializeObject <EnumContainer <ValuedEnum> >("{\r\n  \"Enum\": 1\r\n}", _settings);

                actual.Should().BeEquivalentTo(expected);

                expected = new EnumContainer <ValuedEnum> {
                    Enum = ValuedEnum.Second
                };

                actual = JsonConvert.DeserializeObject <EnumContainer <ValuedEnum> >("{\r\n  \"Enum\": 2\r\n}", _settings);
                actual.Should().BeEquivalentTo(expected);
            }
            public void GivenValuedEnumToSerialize_WritesTheName()
            {
                var c = new EnumContainer <ValuedEnum> {
                    Enums = new ValuedEnum?[] { ValuedEnum.First }
                };

                var json = JsonConvert.SerializeObject(c, Formatting.None, _sut);

                json.Should().Be("{\"Enums\":[\"First\"]}");

                c = new EnumContainer <ValuedEnum> {
                    Enums = new ValuedEnum?[] { ValuedEnum.First, ValuedEnum.Second }
                };

                json = JsonConvert.SerializeObject(c, Formatting.None, _sut);
                json.Should().Be("{\"Enums\":[\"First\",\"Second\"]}", json);
            }
Ejemplo n.º 23
0
            public void GivenValuedEnumToSerialize_WritesTheName()
            {
                var c = new EnumContainer <ValuedEnum> {
                    Enum = ValuedEnum.First
                };

                var json = JsonConvert.SerializeObject(c, Formatting.Indented, _sut);

                json.Should().Be("{\r\n  \"Enum\": \"First\"\r\n}");

                c = new EnumContainer <ValuedEnum> {
                    Enum = ValuedEnum.Second
                };

                json = JsonConvert.SerializeObject(c, Formatting.Indented, _sut);
                json.Should().Be("{\r\n  \"Enum\": \"Second\"\r\n}", json);
            }
Ejemplo n.º 24
0
        public static void GenerateEnums(JToken entity, string rootFilePath, string group, string entityName, Compilation compilationContainer)
        {
            var enums = entity["fields"].Where(f => f["enum_reference"] != null);

            // namespace will be common to all enums
            var enumNamespace = UsingKeys.ENUMS;

            foreach (var anEnum in enums)
            {
                var values = new List <EnumItem>()
                {
                    new EnumItem
                    {
                        EnumValue = "UNKNOWN_ENUM_VALUE_RECEIVED",
                    },
                };

                var name = anEnum["enum_reference"].GetStringValue().ToPascal().Replace("Enum", "");
                anEnum["enum"].Values <string>().ToList().ForEach(v =>
                {
                    values.Add(new EnumItem
                    {
                        EnumValue = v.ToUpper().Replace("-", "_"),
                        ApiValue  = v,
                    });
                });

                var filePath = $"{rootFilePath}/{group}/{entityName}/{name}.cs";

                var enumContainer = new EnumContainer
                {
                    Name      = name,
                    Namespace = enumNamespace,
                    Values    = values,
                    FilePath  = filePath,
                };

                enumContainer.AddModifier(nameof(Modifiers.PUBLIC), Modifiers.PUBLIC);

                compilationContainer.AddEnum(name, enumContainer);
            }
        }
Ejemplo n.º 25
0
 public void AddEnum(string key, EnumContainer enumContainer)
 {
     Enums.SafeAdd <string, EnumContainer>(key, enumContainer);
 }
Ejemplo n.º 26
0
		public void Read_EnumContainer ()
		{
			var obj = new EnumContainer () { EnumProperty = EnumValueType.Two };
			var xr = new XamlObjectReader (obj);
			Read_EnumContainer (xr);
		}