Example #1
0
        public void SetUp()
        {
            _componentEvaluator1 = new MockComponentEvaluator(TimeSpan.FromMilliseconds(1000), null);

            _criteriaEvaluator1 = A.Fake <IExpectationCriteriaEvaluator>();
            A.CallTo(() => _criteriaEvaluator1.Met).Returns(true);

            _criteriaFactory1 = A.Fake <IExpectationCriteriaEvaluatorFactory>();
            A.CallTo(() => _criteriaFactory1.CreateInstance()).Returns(_criteriaEvaluator1);

            _expectation1 = new ExpectationEvaluator(
                TimeSpan.FromMilliseconds(500),
                _componentEvaluator1,
                new List <Func <IAsyncEnumerable <ConditionInstance>, IAsyncEnumerable <ConditionInstance> > >(),
                _criteriaFactory1);


            _componentEvaluator2 = new MockComponentEvaluator(TimeSpan.FromMilliseconds(1000), null);

            _criteriaEvaluator2 = A.Fake <IExpectationCriteriaEvaluator>();
            A.CallTo(() => _criteriaEvaluator2.Met).Returns(true);

            _criteriaFactory2 = A.Fake <IExpectationCriteriaEvaluatorFactory>();
            A.CallTo(() => _criteriaFactory2.CreateInstance()).Returns(_criteriaEvaluator2);

            _expectation2 = new ExpectationEvaluator(
                TimeSpan.FromMilliseconds(500),
                _componentEvaluator2,
                new List <Func <IAsyncEnumerable <ConditionInstance>, IAsyncEnumerable <ConditionInstance> > >(),
                _criteriaFactory2);
        }
 public void TearDown()
 {
     _componentEvaluator = null;
     _criteriaEvaluator  = null;
     _criteriaFactory    = null;
     _sut = null;
 }
        public async Task Given_Configured_When_Build_Then_EvaluatorBuilt()
        {
            // Arrange
            var verifierTimeout = TimeSpan.FromMilliseconds(500);

            var spec   = new ExpectationSpecification();
            var config = (IExpectationConfigurator)spec;

            async IAsyncEnumerable <ConditionInstance> FilterImp(IAsyncEnumerable <ConditionInstance> enumerable)
            {
                await foreach (var item in enumerable)
                {
                    if (item.When >= TimeSpan.FromMilliseconds(200))
                    {
                        continue;
                    }

                    yield return(item);
                }
            }

            var filterSpec = A.Fake <IExpectationFilterSpecification>();

            A.CallTo(() => filterSpec.Build()).Returns(FilterImp);

            bool failed   = false;
            var  criteria = A.Fake <IExpectationCriteriaEvaluator>();

            A.CallTo(() => criteria.Evaluate(A <ConditionInstance> ._)).Invokes((ConditionInstance c) =>
            {
                if (c.When >= TimeSpan.FromMilliseconds(200))
                {
                    failed = true;
                }
            });
            A.CallTo(() => criteria.Met).ReturnsLazily(() => !failed);

            var criteriaFactory = A.Fake <IExpectationCriteriaEvaluatorFactory>();

            A.CallTo(() => criteriaFactory.CreateInstance()).Returns(criteria);

            var criteriaSpec = A.Fake <IExpectationCriteriaSpecification>();

            A.CallTo(() => criteriaSpec.Build()).Returns(criteriaFactory);
            A.CallTo(() => criteriaSpec.Timeout).Returns(TimeSpan.FromMilliseconds(500));

            var componentEvaluator = new MockComponentEvaluator(TimeSpan.FromMilliseconds(50), 8);

            config.Where(c => c.AddSpecification(filterSpec))
            .Must(criteriaSpec);

            var evaluator = spec.Build(verifierTimeout, componentEvaluator, string.Empty);

            var result = await evaluator.EvaluateAsync();

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Met, Is.True);
            Assert.That(result.Completed, Is.True);
        }
        public void SetUp()
        {
            _componentEvaluator = new MockComponentEvaluator(TimeSpan.FromMilliseconds(50), 1);

            _criteriaEvaluator = A.Fake <IExpectationCriteriaEvaluator>();
            A.CallTo(() => _criteriaEvaluator.Met).Returns(true);

            _criteriaFactory = A.Fake <IExpectationCriteriaEvaluatorFactory>();
            A.CallTo(() => _criteriaFactory.CreateInstance()).Returns(_criteriaEvaluator);

            _sut = new ExpectationEvaluator(
                TimeSpan.FromMilliseconds(100),
                _componentEvaluator,
                new List <Func <IAsyncEnumerable <ConditionInstance>, IAsyncEnumerable <ConditionInstance> > >(),
                _criteriaFactory);
        }
        public void InitialSetup()
        {
            _verifierTimeout = TimeSpan.FromMilliseconds(500);

            _filterSpec = A.Fake <IExpectationFilterSpecification>();
            A.CallTo(() => _filterSpec.Description).Returns(FilterDescription);

            _criteria        = A.Fake <IExpectationCriteriaEvaluator>();
            _criteriaFactory = A.Fake <IExpectationCriteriaEvaluatorFactory>();
            A.CallTo(() => _criteriaFactory.CreateInstance()).Returns(_criteria);

            _criteriaSpec = A.Fake <IExpectationCriteriaSpecification>();
            A.CallTo(() => _criteriaSpec.Build()).Returns(_criteriaFactory);
            A.CallTo(() => _criteriaSpec.Timeout).Returns(TimeSpan.FromMilliseconds(500));
            A.CallTo(() => _criteriaSpec.Description).Returns(CriteriaDescription);

            _componentEvaluator = new MockComponentEvaluator(TimeSpan.FromMilliseconds(50), 8);
        }
        public async Task Given_CriteriaMetEarly_When_Evaluate_Then_StopCheckingInstances(int incompleteCount)
        {
            var results = new List <bool>();

            results.AddRange(Enumerable.Repeat(false, incompleteCount));
            results.Add(true);

            A.CallTo(() => _criteriaEvaluator.Evaluate(A <ConditionInstance> ._)).ReturnsNextFromSequence(results.ToArray());

            _componentEvaluator = new MockComponentEvaluator(TimeSpan.FromMilliseconds(10), 5);
            _sut = new ExpectationEvaluator(
                TimeSpan.FromMilliseconds(1000),
                _componentEvaluator,
                new List <Func <IAsyncEnumerable <ConditionInstance>, IAsyncEnumerable <ConditionInstance> > >(),
                _criteriaFactory);

            await _sut.EvaluateAsync();

            Assert.That(_componentEvaluator.InstanceCount, Is.EqualTo(incompleteCount + 1));
        }