コード例 #1
0
        public void TestRetunsDataFromCache()
        {
            var now      = DateTime.Now;
            var htmlRepo = new Mock <IRemoteHtmlRepository>();

            htmlRepo.Setup(r => r.GetLastUpdatedDate(Cinema.ForumCinemas)).Returns(now).Verifiable();
            htmlRepo.Setup(r => r.Get(Cinema.ForumCinemas)).Returns(new RemoteWebsiteData {
                Id      = 0,
                Source  = Cinema.ForumCinemas,
                Updated = now,
                Data    = TestData.Text
            }).Verifiable();
            htmlRepo.Setup(r => r.Store(It.IsAny <RemoteWebsiteData>())).Verifiable();

            var expirationTime = 60; // minutes

            var websiteDataCache = new WebsiteDataCache(htmlRepo.Object, expirationTime);

            websiteDataCache.UpdateData(Cinema.ForumCinemas, TestData);

            Assert.IsFalse(websiteDataCache.IsExpired(Cinema.ForumCinemas));

            var data = websiteDataCache.GetData(Cinema.ForumCinemas);

            Assert.AreEqual(data.Text, TestData.Text);

            htmlRepo.Verify(r => r.GetLastUpdatedDate(Cinema.ForumCinemas), Times.Once);
            htmlRepo.Verify(r => r.Get(Cinema.ForumCinemas), Times.Once);
            htmlRepo.Verify(r => r.Store(It.IsAny <RemoteWebsiteData>()), Times.Once);
        }
コード例 #2
0
        public void TestCacheExpires()
        {
            var now      = DateTime.Now;
            var htmlRepo = new Mock <IRemoteHtmlRepository>();

            htmlRepo.Setup(r => r.GetLastUpdatedDate(Cinema.ForumCinemas)).Returns(now - TimeSpan.FromMinutes(61)).Verifiable();

            var expirationTime = 60; // minutes

            var websiteDataCache = new WebsiteDataCache(htmlRepo.Object, expirationTime);

            Assert.IsTrue(websiteDataCache.IsExpired(Cinema.ForumCinemas));

            htmlRepo.Verify(r => r.GetLastUpdatedDate(Cinema.ForumCinemas), Times.Once);
        }