public void TestStoriesRead() { int nStories = 5; string searchTerm = "hat"; Dictionary<string, object> conditions = new Dictionary<string, object>(); conditions.Add("searchTerm", searchTerm); conditions.Add("tailCount", nStories); RssStories stories = new RssStories("ABC-MOST-READ", conditions); List<IStoryContent> storiesContent = stories.read(); Assert.IsNotNull(storiesContent, "Did not expect return value for RssStories::read() to be null"); Assert.IsTrue(storiesContent.Count <= nStories, "Retrieved " + storiesContent.Count + " stories, but expected <= " + nStories); for (int i = 0; i < storiesContent.Count; i++) { string title = ((RssStoryContent)(storiesContent[i])).Title; Assert.IsTrue(title.Contains("hat"), "Story title does not contain '" + searchTerm + "'"); } }
public void TestStoriesConstructor() { string[] validTestFeedNames = new string[] {"BBC", "CNN"}; for (int i = 0; i < validTestFeedNames.Length; i++) { Dictionary<string, object> conditions = new Dictionary<string, object>(); RssStories stories = new RssStories(validTestFeedNames[i], conditions); Assert.IsNotNull(stories); } string[] invalidTestFeedNames = new string[] { "XYZ", "FOO", "BAR" }; for (int i = 0; i < invalidTestFeedNames.Length; i++) { bool failedOnInvalidRSSIdentifier = false; try { Dictionary<string, object> conditions = new Dictionary<string, object>(); RssStories stories = new RssStories(invalidTestFeedNames[i], conditions); } catch (Exception e) { failedOnInvalidRSSIdentifier = true; } Assert.IsTrue(failedOnInvalidRSSIdentifier); } // these just have to be valid http or https URI's, not necessarily RSS feeds string[] validUris = new string[] { "http://www.cnn.com", "https://gmail.com", "http://feeds.abcnews.com/abcnews/internationalheadlines", "http://feeds.bbci.co.uk/news/rss.xml", }; for (int i = 0; i < validUris.Length; i++) { Dictionary<string, object> conditions = new Dictionary<string, object>(); RssStories stories = new RssStories(validUris[i], conditions); Assert.IsNotNull(stories); } string[] invalidUris = new string[] { "http:///www.cnn.com", "https:/gmail.com", "ftp://feeds.abcnews.com/abcnews/internationalheadlines", "file://feeds.bbci.co.uk/news/rss.xml", }; for (int i = 0; i < invalidUris.Length; i++) { bool failedOnInvalidRSSIdentifier = false; try { Dictionary<string, object> conditions = new Dictionary<string, object>(); RssStories stories = new RssStories(invalidUris[i], conditions); } catch (Exception e) { failedOnInvalidRSSIdentifier = true; } Assert.IsTrue(failedOnInvalidRSSIdentifier); } }