// BlogBridge -- RSS feed reader, manager, and web based service // Copyright (C) 2002-2006 by R. Pito Salas // // This program is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free Software Foundation; // either version 2 of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along with this program; // if not, write to the Free Software Foundation, Inc., 59 Temple Place, // Suite 330, Boston, MA 02111-1307 USA // // Contact: R. Pito Salas // mailto:pitosalas@users.sourceforge.net // More information: about BlogBridge // http://www.blogbridge.com // http://sourceforge.net/projects/blogbridge // // $Id: TestGotoNextGuideWithUnreadAction.java,v 1.7 2006/01/12 12:10:43 spyromus Exp $ // package com.salas.bb.core.actions.guide; import junit.framework.TestCase; import com.salas.bb.domain.GuidesSet; import com.salas.bb.domain.StandardGuide; import com.salas.bb.domain.IArticle; import com.salas.bb.domain.DataFeed; import com.salas.bb.utils.parser.Channel; /** * @see GotoNextGuideWithUnreadAction */ public class TestGotoNextGuideWithUnreadAction extends TestCase { private GuidesSet cgs; private StandardGuide cg1; private StandardGuide cg2; private StandardGuide cg3; protected void setUp() throws Exception { cgs = new GuidesSet(); cg1 = new StandardGuide(); cg1.setTitle("1"); cg2 = new StandardGuide(); cg2.setTitle("2"); cg3 = new StandardGuide(); cg3.setTitle("3"); cgs.add(cg1); cgs.add(cg2); cgs.add(cg3); } /** * [c] * [ ] * [ ] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread1() { assertNull(GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg1)); } /** * [ ] * [c] * [ ] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread2() { assertNull(GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg2)); } /** * [ ] * [ ] * [c] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread3() { assertNull(GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg3)); } /** * [c] * [u] * [ ] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread4() { cg2.add(new CustomFeed(true)); assertTrue(cg2 == GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg1)); } /** * [c] * [ ] * [u] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread5() { cg3.add(new CustomFeed(true)); assertTrue(cg3 == GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg1)); } /** * [u] * [c] * [ ] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread6() { cg1.add(new CustomFeed(true)); assertTrue(cg1 == GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg2)); } /** * [ ] * [c] * [u] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread7() { cg3.add(new CustomFeed(true)); assertTrue(cg3 == GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg2)); } /** * [u] * [ ] * [c] * @see GotoNextGuideWithUnreadAction#findNextGuideWithUnread */ public void testFindNextGuideWithUnread8() { cg1.add(new CustomFeed(true)); assertTrue(cg1 == GotoNextGuideWithUnreadAction.findNextGuideWithUnread(cgs, cg3)); } /** * CGE for reporting unread records. */ private static class CustomFeed extends DataFeed { private boolean hasUnread; /** * Constructs CGE. * * @param aHasUnread <code>true</code> to report unread records. */ public CustomFeed(boolean aHasUnread) { hasUnread = aHasUnread; } /** * Fetches the feed by some specific means. * * @return the feed or NULL if there was an error or no updates required. */ protected Channel fetchFeed() { return null; } /** * Returns title of feed. * * @return title. */ public String getTitle() { return null; } /** * Sets the flag of unread records. * * @param aHasUnread <code>true</code> to report unread records. */ public void setHasUnread(boolean aHasUnread) { hasUnread = aHasUnread; } /** * Returns unread articles count. * * @return count. */ public int getUnreadArticlesCount() { return hasUnread ? 1 : 0; } /** * Returns the Article at the specified index. * * @param index index of article in channel. * * @return article object. */ public IArticle getArticleAt(int index) { return null; } /** * Returns simple match key, which can be used to detect similarity of feeds. For example, it's * XML URL for the direct feeds, query type + parameter for the query feeds, serialized search * criteria for the search feeds. * * @return match key. */ public String getMatchKey() { return null; } } }