コード例 #1
0
        public void Should_throw_when_reading_JSON_array_into_existing_instance_of_unsupported_collection_type(Type collectionType)
        {
            // Arrange
            var faker = new Faker();

            var input = faker.Random.WordsArray(10);

            var serializer = new JsonSerializer();

            var inputJSONBuffer = new StringWriter();

            serializer.Serialize(new JsonTextWriter(inputJSONBuffer), input);

            var inputJSON = inputJSONBuffer.ToString();

            var reader = new JsonTextReader(new StringReader(inputJSON));

            reader.Read().Should().BeTrue();
            reader.TokenType.Should().Be(JsonToken.StartArray);

            var sut = new JsonAsyncEnumerableConverter();

            var existingInstance = ConstructTestCollection(collectionType, Enumerable.Empty <string>());

            // Act & Assert
            Assert.Throws <JsonSerializationException>(
                () =>
            {
                sut.ReadJson(reader, collectionType, existingInstance, serializer);
            });
        }
コード例 #2
0
        public void Should_write_JSON_array_with_correct_elements(Type collectionType)
        {
            // Arrange
            var faker = new Faker();

            var sequence = faker.Random.WordsArray(10);

            var collection = ConstructTestCollection(collectionType, sequence);

            var serializer = new JsonSerializer();

            var expectedBuffer = new StringWriter();

            serializer.Serialize(new JsonTextWriter(expectedBuffer), sequence);

            var expected = expectedBuffer.ToString();

            var sut = new JsonAsyncEnumerableConverter();

            var actualBuffer = new StringWriter();
            var actualWriter = new JsonTextWriter(actualBuffer);

            // Act
            sut.WriteJson(actualWriter, collection, serializer);

            // Assert
            var actual = actualBuffer.ToString();

            actual.Should().Be(expected);
        }
コード例 #3
0
        public void Should_read_JSON_array_into_existing_instance_of_supported_collection_type(Type collectionType)
        {
            // Arrange
            var faker = new Faker();

            var expected = faker.Random.WordsArray(10);

            var serializer = new JsonSerializer();

            var expectedJSONBuffer = new StringWriter();

            serializer.Serialize(new JsonTextWriter(expectedJSONBuffer), expected);

            var expectedJSON = expectedJSONBuffer.ToString();

            var reader = new JsonTextReader(new StringReader(expectedJSON));

            reader.Read().Should().BeTrue();
            reader.TokenType.Should().Be(JsonToken.StartArray);

            var sut = new JsonAsyncEnumerableConverter();

            var existingInstance = ConstructTestCollection(collectionType, Enumerable.Empty <string>());

            // Act
            var result = sut.ReadJson(reader, collectionType, existingInstance, serializer);

            // Assert
            result.Should().BeSameAs(existingInstance);

            new AsyncEnumerableAdapter((IAsyncEnumerable <string>)existingInstance).Should().BeEquivalentTo(expected);
        }
コード例 #4
0
        public void Should_read_JSON_array_into_supported_collection_type(Type collectionType)
        {
            // Arrange
            var faker = new Faker();

            var expected = faker.Random.WordsArray(10);

            var serializer = new JsonSerializer();

            var expectedJSONBuffer = new StringWriter();

            serializer.Serialize(new JsonTextWriter(expectedJSONBuffer), expected);

            var expectedJSON = expectedJSONBuffer.ToString();

            var reader = new JsonTextReader(new StringReader(expectedJSON));

            reader.Read().Should().BeTrue();
            reader.TokenType.Should().Be(JsonToken.StartArray);

            var sut = new JsonAsyncEnumerableConverter();

            // Act
            var result = sut.ReadJson(reader, collectionType, null, serializer);

            // Assert
            result.Should().BeAssignableTo(collectionType);

            new AsyncEnumerableAdapter((IAsyncEnumerable <string>)result).Should().BeEquivalentTo(expected);
        }
コード例 #5
0
        public void Should_calculate_CanConvert_correctly(bool expected, Type objectType)
        {
            // Arrange
            var sut = new JsonAsyncEnumerableConverter();

            // Act
            var actual = sut.CanConvert(objectType);

            // Assert
            actual.Should().Be(expected);
        }
コード例 #6
0
        public void Should_read_null_array(Type collectionType)
        {
            // Arrange
            var serializer = new JsonSerializer();

            var reader = new JsonTextReader(new StringReader("null"));

            reader.Read().Should().BeTrue();
            reader.TokenType.Should().Be(JsonToken.Null);

            var sut = new JsonAsyncEnumerableConverter();

            // Act
            var result = sut.ReadJson(reader, collectionType, null, serializer);

            // Assert
            result.Should().BeNull();
        }
コード例 #7
0
        public void Should_write_null_JSON_array()
        {
            // Arrange
            var serializer = new JsonSerializer();

            var sut = new JsonAsyncEnumerableConverter();

            var actualBuffer = new StringWriter();
            var actualWriter = new JsonTextWriter(actualBuffer);

            // Act
            sut.WriteJson(actualWriter, null, serializer);

            // Assert
            var actual = actualBuffer.ToString();

            actual.Should().Be("null");
        }