Beispiel #1
0
        public void WriteTests()
        {
            // Arrange
            var inputs = new Dictionary <string, TestEnum>
            {
                { "\"with-enum-member\"", TestEnum.WithEnumMember },
                { "\"Plain\"", TestEnum.Plain }
            };

            var factory = new EnumStringConverter();
            var target  = (JsonConverter <TestEnum>)factory.CreateConverter(typeof(TestEnum), new JsonSerializerOptions());

            // Act & Assert
            foreach (var(expectedResult, input) in inputs)
            {
                using var memoryStream = new MemoryStream();
                var writer = new Utf8JsonWriter(memoryStream);
                target.Write(writer, input, new JsonSerializerOptions());
                writer.Flush();
                memoryStream.Position = 0;

                using var reader = new StreamReader(memoryStream);
                var result = reader.ReadToEnd();

                Assert.Equal(expectedResult, result);
            }
        }
Beispiel #2
0
        public void ReadKnownValuesTests()
        {
            // Arrange
            var inputs = new Dictionary <string, TestEnum>
            {
                { "\"with-enum-member\"", TestEnum.WithEnumMember },
                { "\"WITH-ENUM-MEMBER\"", TestEnum.WithEnumMember },
                { "\"With-Enum-Member\"", TestEnum.WithEnumMember },
                { "\"plain\"", TestEnum.Plain },
                { "\"PLAIN\"", TestEnum.Plain },
                { "\"Plain\"", TestEnum.Plain }
            };

            var factory = new EnumStringConverter();

            // Act & Assert
            foreach (var(json, expectedResult) in inputs)
            {
                var target = (JsonConverter <TestEnum>)factory.CreateConverter(typeof(TestEnum), new JsonSerializerOptions());

                TestEnum?result = null;

                var utf8JsonBytes = Encoding.UTF8.GetBytes(json);
                var reader        = new Utf8JsonReader(utf8JsonBytes, true, new JsonReaderState());
                while (reader.Read())
                {
                    result = target.Read(ref reader, typeof(TestEnum), new JsonSerializerOptions());
                }

                Assert.Equal(expectedResult, result);
            }
        }
Beispiel #3
0
        public void ReadUnknownValuesTests()
        {
            // Arrange
            var factory = new EnumStringConverter();
            var target  = (JsonConverter <TestEnum>)factory.CreateConverter(typeof(TestEnum), new JsonSerializerOptions());

            // Act & Assert
            Assert.Throws <JsonException>(() =>
            {
                var utf8JsonBytes = Encoding.UTF8.GetBytes("\"UNKNOWN_VALUE\"");
                var reader        = new Utf8JsonReader(utf8JsonBytes, true, new JsonReaderState());
                while (reader.Read())
                {
                    target.Read(ref reader, typeof(TestEnum), new JsonSerializerOptions());
                }
            });
        }