public void Dispose_Enumerator_When_Stream_Disposed()
        {
            var sequence = new TracingSequence <string>(new[] { "Dog", "Cat", "Sparrow" });
            var stream   = fixture.Create(
                output => new StreamWriter(output, Encoding.UTF8),
                sequence,
                (output, animal) =>
            {
                output.Write(animal);
                output.WriteLine();
            }
                );

            stream.Dispose();

            (!sequence.EnumeratorRequested || sequence.Enumerator.Disposed).Should().BeTrue();
        }
        public void Dispose_Enumerator_When_Read_To_End()
        {
            var sequence = new TracingSequence <string>(new[] { "Dog", "Cat", "Sparrow" });

            using var stream = fixture.Create(
                      output => new StreamWriter(output, Encoding.UTF8),
                      sequence,
                      (output, animal) =>
            {
                output.Write(animal);
                output.WriteLine();
            }
                      );
            using var reader = new StreamReader(stream, Encoding.UTF8);
            reader.ReadToEnd();

            sequence.Enumerator.Disposed.Should().BeTrue();
        }