예제 #1
0
        public void Test_GetEuroToRuble()
        {
            var url      = _fixture.Create <string>();
            var expected = _fixture.Create <decimal>();

            _courseSource.Setup(x => x.GetEuroToRuble(url)).Returns(expected);

            var policy = new CourseSourceRetryPolicy(_courseSource.Object, 2, _log.Object, TimeSpan.FromMilliseconds(1));
            var actual = policy.GetEuroToRuble(url);

            actual.ShouldBeEquivalentTo(expected);
            _courseSource.Verify(x => x.GetEuroToRuble(url), Times.Once);
        }
예제 #2
0
        public void Test_OneAttempt()
        {
            var url = _fixture.Create <string>();

            _courseSource.Setup(x => x.GetEuroToRuble(url)).Throws(new TestException());

            var policy = new CourseSourceRetryPolicy(_courseSource.Object, 1, _log.Object, TimeSpan.FromMilliseconds(1));

            try
            {
                policy.GetEuroToRuble(url);
            }
            catch (TestException)
            {
                _courseSource.Verify(x => x.GetEuroToRuble(url), Times.Once);

                throw;
            }
        }