Ejemplo n.º 1
0
        public void TestRecentlyViewed()
        {
            //Load feed list.
            CacheManager cache   = new FileCacheManager(CACHE_DIR, TimeSpan.MaxValue);
            RssParser    handler = new RssParser(APP_NAME, cache);

            handler.LoadFeedlist(BASE_URL + "LocalTestFeedList.xml", null);
            Assertion.Assert("Feeds should be valid!", handler.FeedsListOK);

            //Grab a feed.
            feedsFeed feed = handler.FeedsTable["http://localhost/RssHandlerTestFiles/LocalTestFeed.xml"];

            //TODO: FeedInfo feedInfo = handler.GetFeedInfo(feed.link);
            //Assertion.AssertNotNull(feedInfo);
            //cache.SaveFeed(feedInfo);

            Assertion.AssertEquals("Rss Bandit Unit Test Feed", feed.title);
            Assertion.AssertEquals(1, feed.storiesrecentlyviewed.Count);

            //Grab feed items
            ArrayList items = handler.GetItemsForFeed(feed);

            Assertion.AssertEquals(2, items.Count);

            //The first one should have been read. the second not.
            NewsItem item = (NewsItem)items[0];

            Assertion.Assert(item.BeenRead);
            item = (NewsItem)items[1];
            Assertion.Assert(!item.BeenRead);

            //So let's read the second item.
            handler.MarkAllCachedItemsAsRead(feed);
            handler.ApplyFeedModifications(feed.link);

            //Let's save this guy.
            using (FileStream newFeedStream = File.OpenWrite(Path.Combine(WEBROOT_PATH, @"RssParserTestFiles\LocalTestFeedList_NEW.xml")))
            {
                //TODO: Ask Dare about RssParser.SaveFeedList()
                //handler.SaveFeedList(newFeedStream, RssFeedListFormat.RssParser);
                newFeedStream.Close();
                Assertion.Assert(File.Exists(Path.Combine(WEBROOT_PATH, @"RssParserTestFiles\LocalTestFeedList_NEW.xml")));
            }

            //Let's reload and see what happens.
            handler = new RssParser(APP_NAME, cache);
            handler.LoadFeedlist(BASE_URL + "LocalTestFeedList_NEW.xml", null);
            feed = handler.FeedsTable["http://localhost/RssHandlerTestFiles/LocalTestFeed.xml"];
            Assertion.AssertEquals("Should be two now.", 2, feed.storiesrecentlyviewed.Count);
        }