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); }
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); }
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 ); }
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)); } }
public void NamedEnumCommaCaseInsensitiveTest() { EnumContainer <NamedEnumWithComma> c2 = JsonConvert.DeserializeObject < EnumContainer <NamedEnumWithComma> >(@"{""Enum"":"",THIRD""}", new StringEnumConverter()); Assert.AreEqual(NamedEnumWithComma.Third, c2.Enum); }
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); }
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}"); }
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\":[]}"); }
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); }
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); }
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); }
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); }
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); }
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); } }
public void AddEnum(string key, EnumContainer enumContainer) { Enums.SafeAdd <string, EnumContainer>(key, enumContainer); }
public void Read_EnumContainer () { var obj = new EnumContainer () { EnumProperty = EnumValueType.Two }; var xr = new XamlObjectReader (obj); Read_EnumContainer (xr); }