Ejemplo n.º 1
0
        public void TestFailedFetchRequestProvider_MultiplePages()
        {
            // Our set of CacheFetchFailures
            var failuresPage1 = new List <ICacheFetchFailure>
            {
                Mock.Of <ICacheFetchFailure>(),
                Mock.Of <ICacheFetchFailure>()
            };

            var failuresPage2 = new List <ICacheFetchFailure>
            {
                Mock.Of <ICacheFetchFailure>()
            };

            // Stub this so the 'repository' will return the first page, second page then empty page
            var cacheProgress = new Mock <ICacheProgress>();

            cacheProgress.SetupSequence <IEnumerable <ICacheFetchFailure> >(c => c.FetchPage(It.IsAny <int>(), It.IsAny <int>()))
            .Returns(failuresPage1)
            .Returns(failuresPage2)
            .Returns(new List <ICacheFetchFailure>())
            .Throws <InvalidOperationException>();


            var provider = new FailedCacheFetchRequestProvider(cacheProgress.Object, 2);

            // We should get three ICacheFetchRequests in total, followed by a null to signify that there are no more ICacheFetchRequests
            Assert.IsNotNull(provider.GetNext(new ThrowImmediatelyDataLoadEventListener()));
            Assert.IsNotNull(provider.GetNext(new ThrowImmediatelyDataLoadEventListener()));
            Assert.IsNotNull(provider.GetNext(new ThrowImmediatelyDataLoadEventListener()));
            Assert.IsNull(provider.GetNext(new ThrowImmediatelyDataLoadEventListener()));
        }
Ejemplo n.º 2
0
        public void TestFailedFetchRequestProvider_CreationOfFetchRequest()
        {
            var failure = Mock.Of <ICacheFetchFailure>();

            failure.FetchRequestStart = new DateTime(2009, 8, 5, 8, 0, 0);
            failure.FetchRequestEnd   = new DateTime(2009, 8, 5, 16, 0, 0);
            failure.LastAttempt       = new DateTime(2016, 1, 1, 12, 0, 0);
            failure.ResolvedOn        = null;

            var failures = new List <ICacheFetchFailure>
            {
                failure
            };

            var cacheProgress = new Mock <ICacheProgress>();

            cacheProgress.Setup(c => c.FetchPage(It.IsAny <int>(), It.IsAny <int>())).Returns(failures);

            var provider     = new FailedCacheFetchRequestProvider(cacheProgress.Object, 2);
            var fetchRequest = provider.GetNext(new ThrowImmediatelyDataLoadEventListener());

            Assert.IsNotNull(fetchRequest);
            Assert.AreEqual(fetchRequest.ChunkPeriod, new TimeSpan(8, 0, 0));
            Assert.AreEqual(fetchRequest.Start, failure.FetchRequestStart);
            Assert.IsTrue(fetchRequest.IsRetry);
            cacheProgress.Verify();
        }