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); }); }
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); }
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); }
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); }
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); }
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(); }
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"); }