public async Task MoveNext_WhenEndOfEnumerator_ReturnsFalseIfMoved()
        {
            // Arrange
            var heroes     = new List <HeroEntity> {
            };
            var enumerator = new MockDbSetAsyncEnumerator <HeroEntity>(heroes.GetEnumerator()) as IAsyncEnumerator <HeroEntity>;

            // Act
            var result = await enumerator.MoveNext(CancellationToken.None);

            // Assert
            Assert.IsFalse(result);
        }
        public async Task Current_WhenCalled_ReturnsItem()
        {
            // Arrange
            var heroes     = HeroBuilder.CreateAListOfHeros();
            var enumerator = new MockDbSetAsyncEnumerator <HeroEntity>(heroes.GetEnumerator()) as IAsyncEnumerator <HeroEntity>;

            // Act
            while (await enumerator.MoveNext(CancellationToken.None))
            {
                var current = enumerator.Current;
                // Assert
                Assert.IsTrue(heroes.Any(h => h == current));
            }
        }
        public async Task MoveNext_WhenItemInEnumerator_ReturnsTrueIfMoved()
        {
            // Arrange
            var heroes = new List <HeroEntity> {
                new HeroEntity {
                    Id = 21, Name = "Nick Fury"
                }
            };
            var enumerator = new MockDbSetAsyncEnumerator <HeroEntity>(heroes.GetEnumerator()) as IAsyncEnumerator <HeroEntity>;

            // Act
            var result = await enumerator.MoveNext(CancellationToken.None);

            // Assert
            Assert.IsTrue(result);
        }
        public async Task MoveNext_WhenCalled_ReturnsFalseIfAtEnd()
        {
            // Arrange
            var heroes     = HeroBuilder.CreateAListOfHeros();
            var enumerator = new MockDbSetAsyncEnumerator <HeroEntity>(heroes.GetEnumerator()) as IAsyncEnumerator <HeroEntity>;

            var count = 0;

            // Act
            while (await enumerator.MoveNext(CancellationToken.None))
            {
                count++;
            }

            // Assert
            Assert.AreEqual(heroes.Count(), count);
        }