Пример #1
0
        public async Task CanDownloadFeed()
        {
            // Setup
            var cacheMock = new Mock <ICache>();
            var rssFeed   = new RssFeed(cacheMock.Object);

            // Act
            await rssFeed.LoadFeed("http://feed.com/rss", XDocumentFactory.CreateSampleFeed());

            // Verify
            Assert.IsNotNull(rssFeed.FeedItems);
            Assert.AreEqual(10, rssFeed.FeedItems.Count);
            Assert.AreEqual("BBC News - UK", rssFeed.Title);
        }
Пример #2
0
        public void CanRemoveHtmlFromDescription()
        {
            // Setup
            var xDoc    = XDocumentFactory.CreateSampleFeed();
            var firstEl = xDoc.Descendants("item").First();

            firstEl.Element("description").Value = "some element <b>no html</b>";

            // Act
            var rssFeedItem = new RssFeedItem(firstEl);

            // Verify
            Assert.AreEqual("some element no html", rssFeedItem.Description);
        }
Пример #3
0
        public void RemovingHtmlCanHandleEmptyDescription()
        {
            // Setup
            var xDoc    = XDocumentFactory.CreateSampleFeed();
            var firstEl = xDoc.Descendants("item").First();

            firstEl.Element("description").Value = string.Empty;

            // Act
            var rssFeedItem = new RssFeedItem(firstEl);

            // Verify
            Assert.AreEqual(string.Empty, rssFeedItem.Description);
        }
        public async Task CanLoadFeedsSuccessfullyFromNetworkOnly()
        {
            // Setup
            var cacheMock     = new Mock <ICache>();
            var requestMock   = new Mock <IFeedRequest>();
            var feedViewModel = new FeedViewModel(requestMock.Object, cacheMock.Object);

            requestMock.Setup(x => x.MakeRequest(It.IsAny <string>()))
            .ReturnsAsync(XDocumentFactory.CreateSampleFeed());

            // Act
            await feedViewModel.LoadFeeds();

            // Verify
            Assert.IsNotNull(feedViewModel.Feeds);
            Assert.AreEqual(2, feedViewModel.Feeds.Count);
            Assert.AreEqual("BBC News - UK", feedViewModel.Feeds[0].Title);
            Assert.AreEqual(10, feedViewModel.Feeds[0].FeedItems.Count);
        }
Пример #5
0
        public async Task NoDuplicationsWhenUsingCache()
        {
            // Setup
            var cacheMock = new Mock <ICache>();
            var rssFeed   = new RssFeed(cacheMock.Object);

            var cachedFeed = new RssFeed()
            {
                Title = "BBC News - UK"
            };
            await rssFeed.LoadFeed("http://feed.com/rss", XDocumentFactory.CreateSampleFeed());

            cacheMock.Setup(x => x.Get <RssFeed>(It.IsAny <string>()))
            .ReturnsAsync(cachedFeed);

            // Act
            await rssFeed.LoadFeed("http://feed.com/rss", XDocumentFactory.CreateSampleFeed());

            // Verify
            Assert.IsNotNull(rssFeed.FeedItems);
            Assert.AreEqual(10, rssFeed.FeedItems.Count);
            Assert.AreEqual("BBC News - UK", rssFeed.Title);
        }