Package com.gnizr.core.util

Source Code of com.gnizr.core.util.TestSyndFeedFactory

package com.gnizr.core.util;

import java.io.StringReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;

import com.gnizr.core.GnizrCoreTestBase;
import com.gnizr.core.search.BookmarkDoc;
import com.gnizr.db.dao.Bookmark;
import com.gnizr.db.dao.DaoResult;
import com.gnizr.db.dao.User;
import com.gnizr.db.dao.bookmark.BookmarkDao;
import com.sun.syndication.feed.module.opensearch.OpenSearchModule;
import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.SyndFeedOutput;

public class TestSyndFeedFactory extends GnizrCoreTestBase {
 
  private List<Bookmark> bmarks = null;
  private String title = "TITLE STRING FOOBAR";
  private String link = "http://foo.com/gnizr";
  private Date pubDate = GnizrDaoUtil.getNow();
  private String feedUri = "urn:x-id-101";
  private String author = "gnizr";
  private int itemsPerPage = 10;
  private int startIndex = 0;
  private int totalResult = -1;
  private String searchDescriptionUrl = "http://foo.com/gnizr/search-description.xml";
 
  protected void setUp() throws Exception {
    super.setUp();
    BookmarkDao bmarkDao = getGnizrDao().getBookmarkDao();
    DaoResult<Bookmark> result = bmarkDao.pageBookmarks(new User(1),0,10);   
    bmarks = result.getResult();
    assertFalse(bmarks.isEmpty());
    totalResult = result.getSize();
  }

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

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

  @SuppressWarnings("unchecked")
  public void testGetFeed() throws Exception{       
    SyndFeed syndFeed = SyndFeedFactory.create(bmarks,author,title,link,pubDate,feedUri);
   
    assertEquals(author,syndFeed.getAuthor());
    assertEquals(title,syndFeed.getTitle());
    assertEquals(pubDate,syndFeed.getPublishedDate());
    assertEquals(feedUri,syndFeed.getUri());
    assertEquals(link,syndFeed.getLink());
   
    List<SyndEntry> entries = syndFeed.getEntries();
    assertEquals(1,entries.size());
   
    SyndEntry entry = entries.get(0);
    assertEquals("http://zirr.us/",entry.getLink());
    assertEquals("zirrus",entry.getTitle());
    assertEquals("gnizr",entry.getAuthor());
    SyndContent cont = entry.getDescription();
    assertNotNull(cont);
    assertEquals("website",cont.getValue());
    assertEquals("text/html",cont.getType());
   
    List<SyndCategory> cats = entry.getCategories();
    assertFalse(cats.isEmpty());
    SyndCategory cat = cats.get(0);
    assertEquals("cnn",cat.getName());
  }
 
  @SuppressWarnings("unchecked")
  public void testAddOpenSearchModule() throws Exception{
    SyndFeed syndFeed = SyndFeedFactory.create(bmarks,author,title,link,pubDate,feedUri);
    assertNotNull(syndFeed);
   
    syndFeed = SyndFeedFactory.addOpenSearchModule(syndFeed, itemsPerPage,
        startIndex, totalResult, searchDescriptionUrl);
 
    OpenSearchModule osm = (OpenSearchModule) syndFeed.getModule(OpenSearchModule.URI);
    assertEquals(itemsPerPage,osm.getItemsPerPage());
    assertEquals(totalResult,osm.getTotalResults());
    assertEquals(startIndex,osm.getStartIndex());
    assertEquals(searchDescriptionUrl,osm.getLink().getHref());
  }
 
  public void testCreateFromBookmarkDoc() throws Exception {
    List<BookmarkDoc> docs = new ArrayList<BookmarkDoc>();
    BookmarkDoc doc1 = new BookmarkDoc();
    doc1.setTitle("bookmark 1 title");
    doc1.setNotes("<p>some html description</p>");
    doc1.setBookmarkId(123);
    doc1.setUrl("http://foo.com/doc?id=102&p=334");
    doc1.setUsername("johna");
    doc1.setUrlHash("383774jd9383232");
    docs.add(doc1);
   
    String feedUrl = "http://foo.com/feed?id=1&p=3";
    Date pubDate = GregorianCalendar.getInstance().getTime();
    String title = "a feed of bookmark docs";
    String feedAuthor = "john s";
   
    SyndFeed syndFeed = SyndFeedFactory.createFromBookmarkDoc(docs,feedAuthor, title, feedUrl, pubDate, null);
    assertNotNull(syndFeed);
    assertEquals(1,syndFeed.getEntries().size());
 
    syndFeed.setFeedType("atom_1.0");
   
    SyndFeedOutput output = new SyndFeedOutput();
    String feedData = output.outputString(syndFeed);   
   
    StringReader sreader = new StringReader(feedData);
    SyndFeedInput input = new SyndFeedInput(true);
    SyndFeed copyFeed = input.build(sreader);
    assertNotNull(copyFeed);
  }
 

 
}
TOP

Related Classes of com.gnizr.core.util.TestSyndFeedFactory

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.