Package com.salas.bb.domain

Source Code of com.salas.bb.domain.TestStandardGuideEvents

// 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: TestStandardGuideEvents.java,v 1.4 2006/07/07 14:58:29 spyromus Exp $
//

package com.salas.bb.domain;

import org.jmock.Mock;
import org.jmock.MockObjectTestCase;

import java.net.MalformedURLException;
import java.net.URL;

/**
* This suite contains tests for <code>StandardGuide</code> unit.
*/
public class TestStandardGuideEvents extends MockObjectTestCase
{
    private StandardGuide guide;
    private Mock listener;

    protected void setUp()
        throws Exception
    {
        super.setUp();

        listener = new Mock(IGuideListener.class);

        guide = new StandardGuide();
        guide.addListener((IGuideListener)listener.proxy());
    }

    /**
     * Adding a feed manually directly to the guide.
     */
    public void testAddFeedManual()
    {
        DirectFeed feed = new DirectFeed();
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));

        guide.add(feed);
        listener.verify();
    }

    /**
     * Adding a feed as part of a reading list.
     */
    public void testAddFeedReadingList()
    {
        DirectFeed feed = new DirectFeed();
        ReadingList list = new ReadingList(getTestURL());
        listener.expects(once()).method("readingListAdded").with(same(guide), same(list));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));

        list.add(feed);
        guide.add(list);
        listener.verify();
    }

    /**
     * Adding a feed after the reading list is added.
     */
    public void testAddFeedAfterReadingList()
    {
        DirectFeed feed = new DirectFeed();
        ReadingList list = new ReadingList(getTestURL());
        listener.expects(once()).method("readingListAdded").with(same(guide), same(list));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));

        guide.add(list);
        list.add(feed);
        listener.verify();
    }

    /**
     * Adding the feed to the guide directly when it's already present as part of the reading list.
     */
    public void testAddVisibleFeedDirectly()
    {
        DirectFeed feed = new DirectFeed();
        ReadingList list = new ReadingList(getTestURL());
        listener.expects(once()).method("readingListAdded").with(same(guide), same(list));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed));

        guide.add(list);
        list.add(feed);
        guide.add(feed);
        listener.verify();
    }

    /**
     * Removing a feed directly from the reading list.
     */
    public void testRemoveFeed()
    {
        DirectFeed feed = new DirectFeed();
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedLinkRemoved").with(same(guide), same(feed));
        listener.expects(once()).method("feedRemoved"); //.with(same(guide), same(feed));

        guide.add(feed);
        guide.remove(feed);
        listener.verify();
    }

    /**
     * Removing a feed as part of the reading list.
     */
    public void testRemoveFeedReadingList()
    {
        DirectFeed feed = new DirectFeed();
        ReadingList list = new ReadingList(getTestURL());
        listener.expects(once()).method("readingListAdded").with(same(guide), same(list));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedRemoved"); //.with(same(guide), same(feed));
        listener.expects(once()).method("readingListRemoved").with(same(guide), same(list));

        guide.add(list);
        list.add(feed);
        guide.remove(list, true);
        listener.verify();
    }

    /**
     * Removing the reading list with saving the feeds (adding them directly to the guide).
     */
    public void testRemoveReadingListSaveFeeds()
    {
        DirectFeed feed = new DirectFeed();
        ReadingList list = new ReadingList(getTestURL());
        listener.expects(once()).method("readingListAdded").with(same(guide), same(list));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed));
        listener.expects(once()).method("readingListRemoved").with(same(guide), same(list));

        guide.add(list);
        list.add(feed);
        guide.remove(list, false);
        listener.verify();
    }

    public void testCopyFeed()
    {
        StandardGuide guide2 = new StandardGuide();
        guide2.addListener((IGuideListener)listener.proxy());

        DirectFeed feed = new DirectFeed();
        ReadingList list = new ReadingList(getTestURL());
        listener.expects(once()).method("readingListAdded").with(same(guide), same(list));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));

        // Move (copy)
        listener.expects(once()).method("feedAdded").with(same(guide2), same(feed));
        listener.expects(once()).method("feedLinkAdded").with(same(guide2), same(feed));

        guide.add(list);
        list.add(feed);
        guide.moveFeed(feed, guide2, 0); // copy because of feed being locked by the reading list

        listener.verify();
    }

    public void testMoveFeed()
    {
        StandardGuide guide2 = new StandardGuide();
        guide2.addListener((IGuideListener)listener.proxy());

        DirectFeed feed = new DirectFeed();
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed));

        // Move
        listener.expects(once()).method("feedAdded").with(same(guide2), same(feed));
        listener.expects(once()).method("feedLinkAdded").with(same(guide2), same(feed));
        listener.expects(once()).method("feedLinkRemoved").with(same(guide), same(feed));
        listener.expects(once()).method("feedRemoved"); //.with(same(guide), same(feed));

        guide.add(feed);
        guide.moveFeed(feed, guide2, 0);

        listener.verify();
    }

    public void testRepositionFeed()
    {
        DirectFeed feed0 = new DirectFeed();
        DirectFeed feed1 = new DirectFeed();
        DirectFeed feed2 = new DirectFeed();

        listener.expects(once()).method("feedAdded").with(same(guide), same(feed0));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed0));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed1));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed1));
        listener.expects(once()).method("feedAdded").with(same(guide), same(feed2));
        listener.expects(once()).method("feedLinkAdded").with(same(guide), same(feed2));

        guide.add(feed0);
        guide.add(feed1);
        guide.add(feed2);

        listener.expects(once()).method("feedRepositioned").with(same(guide), same(feed0), eq(0), eq(2));
        listener.expects(once()).method("feedRepositioned").with(same(guide), same(feed0), eq(2), eq(0));

        // Move feed 0 after feed 2
        guide.moveFeed(feed0, guide, 2);

        // Move feed 0 back to top
        guide.moveFeed(feed0, guide, 0);

        // There should be no events
        listener.verify();
    }

    /**
     * Creates test URL.
     *
     * @return url.
     */
    private URL getTestURL()
    {
        URL url = null;
        try
        {
            url = new URL("file://test");
        } catch (MalformedURLException e)
        {
            e.printStackTrace();
            fail();
        }
        return url;
    }
}
TOP

Related Classes of com.salas.bb.domain.TestStandardGuideEvents

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.