public void MoveNextReturnsExpectedResult(
            ConnectedProjectionHandlerEnumerator <object> sut, bool expected)
        {
            var result = sut.MoveNext();

            Assert.That(result, Is.EqualTo(expected));
        }
        private static IEnumerable <TestCaseData> CurrentCompletedCases()
        {
            //No handlers
            var enumerator1 = new ConnectedProjectionHandlerEnumerator <object>(new ConnectedProjectionHandler <object> [0]);

            while (enumerator1.MoveNext())
            {
            }
            yield return(new TestCaseData(enumerator1));

            //1 handler
            var enumerator2 = new ConnectedProjectionHandlerEnumerator <object>(new[]
            {
                HandlerFactory(TaskFactory())
            });

            while (enumerator2.MoveNext())
            {
            }
            yield return(new TestCaseData(enumerator2));

            //2 handlers
            var enumerator3 = new ConnectedProjectionHandlerEnumerator <object>(new[]
            {
                HandlerFactory(TaskFactory()),
                HandlerFactory(TaskFactory())
            });

            while (enumerator3.MoveNext())
            {
            }
            yield return(new TestCaseData(enumerator3));
        }
        public void CurrentReturnsExpectedResultWhenStarted(
            ConnectedProjectionHandlerEnumerator <object> sut, Task expected)
        {
            sut.MoveNext();

            var result = sut.Current.Handler(null, null, CancellationToken.None);

            Assert.That(result, Is.EqualTo(expected));
        }