public async Task Should_write_JSON_array_with_correct_elements() { // Arrange var faker = new Faker(); var elements = faker.Random.WordsArray(10); var asyncEnumerableElements = new AsyncEnumerableList <string>(); asyncEnumerableElements.AddRange(elements); var expected = JsonConvert.SerializeObject(elements); var sut = new ConverterImplementation <string>(typeof(AsyncEnumerableList <string>)); // Act var buffer = new StringWriter(); await sut.WriteJsonAsync(new JsonTextWriter(buffer), asyncEnumerableElements); var actual = buffer.ToString(); // Assert actual.Should().Be(expected); }
public async Task Should_enumerate_added_elements_with_IAsyncEnumerable() { // Arrange var faker = new Faker(); var sequence = faker.Random.WordsArray(10); var sut = new AsyncEnumerableList <string>(); foreach (var element in sequence) { sut.Add(element); } // Act var result = new List <string>(); await foreach (var element in sut) { result.Add(element); } // Assert result.Should().BeEquivalentTo(sequence); }
public void Should_read_JSON_array_into_existing_ICollection_object() { // Arrange var faker = new Faker(); var elements = faker.Random.WordsArray(10); var serializer = new JsonSerializer(); var jsonBuffer = new StringWriter(); serializer.Serialize(new JsonTextWriter(jsonBuffer), elements); var json = jsonBuffer.ToString(); var sut = new ConverterImplementation <string>(typeof(AsyncEnumerableList <string>)); var reader = new JsonTextReader(new StringReader(json)); reader.Read().Should().BeTrue(); reader.TokenType.Should().Be(JsonToken.StartArray); var existingValue = new AsyncEnumerableList <string>(); // Act var result = sut.ReadJson(reader, existingValue, serializer); // Assert result.Should().BeSameAs(existingValue); existingValue.Should().BeEquivalentTo(elements); }
public void Should_be_IAsyncEnumerable_T() { // Arrange var sut_int = new AsyncEnumerableList <int>(); var sut_string = new AsyncEnumerableList <string>(); // Assert sut_int.Should().BeAssignableTo <IAsyncEnumerable <int> >(); sut_string.Should().BeAssignableTo <IAsyncEnumerable <string> >(); }