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); }
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); }
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); }
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); }