Пример #1
0
 public static IAssertionResult <T, TSource> Assert <T, TSource>(this IValueProvider <T, TSource> valueProvider, IAssertion <T> assertion, IAssertionConfiguration configuration)
 {
     return(Wait.Assertion(valueProvider, new AssertionConfiguration <T>
     {
         Timeout = configuration.Timeout,
         Interval = configuration.Interval,
         ExceptionMatcher = configuration.ExceptionMatcher,
         Assertion = assertion
     }));
 }
        public void ZeroTimeoutAndAssertionSatisfied_AssertionCalledOnce()
        {
            var configuration = Substitute.For <IAssertionConfiguration <int> >();

            configuration.Timeout.Returns(0);

            Wait.Assertion(ValueProvider.Create(() => 1), configuration);

            configuration.Assertion.ReceivedWithAnyArgs().Assert(default(int));
            configuration.ExceptionMatcher.DidNotReceiveWithAnyArgs().RetryOnException(default(Exception));
        }
        public void AssertionSatisfiedFirstTime_RetryUntillAssertionSatisfied()
        {
            var configuration = Substitute.For <IAssertionConfiguration <int> >();

            configuration.Timeout.Returns(100);
            configuration.Interval.Returns(10);

            Wait.Assertion(ValueProvider.Create(() => 1), configuration);

            configuration.Assertion.ReceivedWithAnyArgs().Assert(default(int));
            configuration.ExceptionMatcher.DidNotReceiveWithAnyArgs().RetryOnException(default(Exception));
        }
        public void ZeroTimeoutAndAssertionFailed_AssertionCalledOnce()
        {
            var configuration = Substitute.For <IAssertionConfiguration <int> >();

            configuration.Timeout.Returns(0);
            configuration.ExceptionMatcher.RetryOnException(default(Exception)).ReturnsForAnyArgs(true);
            configuration.Assertion.WhenForAnyArgs(x => x.Assert(default(int))).Do(x => throw new Exception());

            Assert.Throws <Exception>(() => Wait.Assertion(ValueProvider.Create(() => 1), configuration));

            configuration.Assertion.ReceivedWithAnyArgs().Assert(default(int));
        }
        public void AssertionAlwaysFailed_RetryUntillException()
        {
            var times         = 3;
            var configuration = Substitute.For <IAssertionConfiguration <int> >();

            configuration.Timeout.Returns(100);
            configuration.Interval.Returns(10);
            configuration.ExceptionMatcher.RetryOnException(null).ReturnsForAnyArgs(x => -- times != 0);
            configuration.Assertion.WhenForAnyArgs(x => x.Assert(default(int))).Do(x => throw new Exception());

            Assert.Throws <Exception>(() => Wait.Assertion(ValueProvider.Create(() => 1), configuration));

            configuration.Assertion.ReceivedWithAnyArgs(3).Assert(default(int));
        }
        public void AssertionAlwaysFailed_RetryUntillTimeout()
        {
            var configuration = Substitute.For <IAssertionConfiguration <int> >();

            configuration.Timeout.Returns(100);
            configuration.Interval.Returns(10);
            configuration.ExceptionMatcher.RetryOnException(null).ReturnsForAnyArgs(true);
            configuration.Assertion.WhenForAnyArgs(x => x.Assert(default(int)))
            .Do(x => throw new Exception());

            Assert.Throws <Exception>(() => Wait.Assertion(ValueProvider.Create(() => 1), configuration));

            Assert.That(configuration.Assertion.ReceivedCalls().Count(), Is.GreaterThan(5).And.LessThan(15));
        }
        public void AssertionReceivesActualValue()
        {
            var configuration = Substitute.For <IAssertionConfiguration <string> >();

            configuration.Timeout.Returns(0);

            var valueProvider = Substitute.For <IValueProvider <string, int> >();

            valueProvider.GetValue().Returns("zzz");

            Wait.Assertion(valueProvider, configuration);

            configuration.Assertion.Received().Assert("zzz");
        }
        public void AssertionSatisfiedDeferred_RetryUntillAssertionSatisfied()
        {
            var times = 3;

            var configuration = Substitute.For <IAssertionConfiguration <int> >();

            configuration.Timeout.Returns(100);
            configuration.Interval.Returns(10);
            configuration.ExceptionMatcher.RetryOnException(null).ReturnsForAnyArgs(true);
            configuration.Assertion.WhenForAnyArgs(x => x.Assert(default(int)))
            .Do(x =>
            {
                if (--times != 0)
                {
                    throw new Exception();
                }
            });

            Wait.Assertion(ValueProvider.Create(() => 1), configuration);

            configuration.Assertion.ReceivedWithAnyArgs(3).Assert(default(int));
        }
Пример #9
0
 public static IAssertionResult <T, TSource> Assert <T, TSource>(this IValueProvider <T, TSource> valueProvider, IAssertionConfiguration <T> configuration)
 {
     return(Wait.Assertion(valueProvider, configuration));
 }