com.gnizr.core.robot.rss.TestCrawlRssFeed.java Source code

Java tutorial

Introduction

Here is the source code for com.gnizr.core.robot.rss.TestCrawlRssFeed.java

Source

/*
 * gnizr is a trademark of Image Matters LLC in the United States.
 * 
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 * 
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License
 * for the specific language governing rights and limitations under the License.
 * 
 * The Initial Contributor of the Original Code is Image Matters LLC.
 * Portions created by the Initial Contributor are Copyright (C) 2007
 * Image Matters LLC. All Rights Reserved.
 */
package com.gnizr.core.robot.rss;

import java.util.List;
import java.util.Timer;
import java.util.concurrent.TimeUnit;

import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import com.gnizr.core.bookmark.BookmarkManager;
import com.gnizr.core.bookmark.FolderTagListener;
import com.gnizr.core.bookmark.ForUserListener;
import com.gnizr.core.feed.FeedSubscriptionManager;
import com.gnizr.core.folder.FolderManager;
import com.gnizr.core.foruser.ForUserManager;
import com.gnizr.core.user.UserManager;
import com.gnizr.core.web.junit.GnizrWebappTestBase;
import com.gnizr.db.dao.Bookmark;
import com.gnizr.db.dao.DaoResult;
import com.gnizr.db.dao.Folder;
import com.gnizr.db.dao.PointMarker;
import com.gnizr.db.dao.User;

public class TestCrawlRssFeed extends GnizrWebappTestBase {

    private BookmarkManager bookmarkManager;
    private FeedSubscriptionManager feedManager;
    private ThreadPoolTaskExecutor executor;
    private CrawlRssFeed crawlRssFeed;
    private FolderManager folderManager;
    private ForUserManager forUserManager;
    private UserManager userManager;

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

        executor = new ThreadPoolTaskExecutor();
        executor.initialize();

        userManager = new UserManager(getGnizrDao());
        forUserManager = new ForUserManager(getGnizrDao());
        folderManager = new FolderManager(getGnizrDao());

        bookmarkManager = new BookmarkManager(getGnizrDao());
        bookmarkManager.addBookmarkListener(new ForUserListener(userManager, forUserManager));
        bookmarkManager.addBookmarkListener(new FolderTagListener(folderManager));
        feedManager = new FeedSubscriptionManager(getGnizrDao());
        crawlRssFeed = new CrawlRssFeed();
        crawlRssFeed.setServiceEnabled(true);
        crawlRssFeed.setBookmarkManager(bookmarkManager);
        crawlRssFeed.setFeedSubscriptionManager(feedManager);
        crawlRssFeed.setThreadPoolTaskExecutor(executor);
    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }

    @Override
    protected IDataSet getDataSet() throws Exception {
        return new FlatXmlDataSet(TestCrawlRssFeed.class.getResourceAsStream("/TestCrawlRssFeed-input.xml"));
    }

    public void testRun() throws Exception {
        Timer timer = new Timer();
        timer.schedule(crawlRssFeed, 0);
        crawlRssFeed.awaitAndShutdown(60, TimeUnit.SECONDS);

        Folder folder66 = folderManager.getUserFolder(new User(2), "latest news");
        Folder folder67 = folderManager.getUserFolder(new User(2), "news2");
        assertTrue(folder66.getSize() > 0);
        assertEquals(folder66.getSize(), folder67.getSize());

        Folder importFolder = folderManager.getUserFolder(new User(2), FolderManager.IMPORTED_BOOKMARKS_LABEL);
        assertTrue(importFolder.getSize() > 0);

        Folder folder69 = folderManager.getUserFolder(new User(2), "georss data");
        assertTrue(folder69.getSize() > 0);
        DaoResult<Bookmark> result2 = folderManager.pageFolderContent(new User(2), "georss data", 0, 1);
        Bookmark bm = result2.getResult().get(0);
        List<PointMarker> markers = bookmarkManager.getPointMarkers(bm);
        assertTrue(markers.size() > 0);
    }
}