예제 #1
0
        public void ReduceLeftDisposesOfTheEnumerator()
        {
            var source        = new[] { 1, 2, 3 };
            var enumerableSpy = new EnumerableSpy <int>(source);

            enumerableSpy.ReduceLeft <int, int>((_, __) => _);
            Assert.That(enumerableSpy.NumCallsToDispose, Is.EqualTo(1));
        }
예제 #2
0
        public void IsEmptyDisposesOfTheEnumerator()
        {
            var source        = new[] { 1, 2, 3 };
            var enumerableSpy = new EnumerableSpy <int>(source);

            enumerableSpy.IsEmpty();
            Assert.That(enumerableSpy.NumCallsToDispose, Is.EqualTo(1));
        }
예제 #3
0
        public void PatchDisposesOfTheEnumerator()
        {
            var source        = Utils.EmptySequence <int>();
            var patch         = Utils.EmptySequence <int>();
            var enumerableSpy = new EnumerableSpy <int>(source);

            enumerableSpy.Patch(0, patch, 0).ToList();
            Assert.That(enumerableSpy.NumCallsToDispose, Is.EqualTo(1));
        }
예제 #4
0
        public void MapYields()
        {
            var enumerableSpy = new EnumerableSpy <int>(new[] { 1, 2, 3 });

            var actual = enumerableSpy.Map(i => i * i);

            Assert.That(enumerableSpy.NumCallsToMoveNext, Is.EqualTo(0));

            Assert.That(actual.ElementAt(1), Is.EqualTo(4));
            Assert.That(enumerableSpy.NumCallsToMoveNext, Is.EqualTo(2));
        }
예제 #5
0
 public EnumeratorSpy(EnumerableSpy <T> enumerableSpy)
 {
     _enumerableSpy = enumerableSpy;
 }