Package org.rssowl.core.tests.importer

Source Code of org.rssowl.core.tests.importer.ImporterTest

/*   **********************************************************************  **
**   Copyright notice                                                       **
**                                                                          **
**   (c) 2005-2009 RSSOwl Development Team                                  **
**   http://www.rssowl.org/                                                 **
**                                                                          **
**   All rights reserved                                                    **
**                                                                          **
**   This program and the accompanying materials are made available under   **
**   the terms of the Eclipse Public License v1.0 which accompanies this    **
**   distribution, and is available at:                                     **
**   http://www.rssowl.org/legal/epl-v10.html                               **
**                                                                          **
**   A copy is found in the file epl-v10.html and important notices to the  **
**   license from the team is found in the textfile LICENSE.txt distributed **
**   in this package.                                                       **
**                                                                          **
**   This copyright notice MUST APPEAR in all copies of the file!           **
**                                                                          **
**   Contributors:                                                          **
**     RSSOwl Development Team - initial API and implementation             **
**                                                                          **
**  **********************************************************************  */

package org.rssowl.core.tests.importer;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import org.junit.Before;
import org.junit.Test;
import org.rssowl.core.Owl;
import org.rssowl.core.interpreter.ITypeImporter;
import org.rssowl.core.persist.IBookMark;
import org.rssowl.core.persist.IEntity;
import org.rssowl.core.persist.IFeed;
import org.rssowl.core.persist.IFolder;

import java.io.InputStream;
import java.net.URI;
import java.util.List;

/**
* This TestCase covers use-cases for the Interpreter Plugin in terms of
* Importing Data.
*
* @author bpasero
*/
public class ImporterTest {

  /**
   * @throws Exception
   */
  @Before
  public void setUp() throws Exception {
    Owl.getPersistenceService().recreateSchema();
  }

  /**
   * Test importing an OPML as new Category with BookMarks.
   *
   * @throws Exception
   */
  @Test
  @SuppressWarnings("nls")
  public void testImportOPML() throws Exception {
    InputStream inS = getClass().getResourceAsStream("/data/interpreter/import_opml.xml");
    List<? extends IEntity> types = Owl.getInterpreter().importFrom(inS);
    assertEquals(1, types.size());
    assertTrue(types.get(0) instanceof IFolder);

    /* Root */
    IFolder root = (IFolder) types.get(0);
    assertEquals(2, root.getFolders().size());
    assertEquals(0, root.getMarks().size());

    /* Category 1 */
    IFolder category1 = root.getFolders().get(0);
    assertEquals("category_1", category1.getName());
    assertEquals(3, category1.getMarks().size());

    /* Category 1 Marks */
    IBookMark category1_mark1 = (IBookMark) category1.getMarks().get(0);
    assertEquals("category_1_feed_1_title", category1_mark1.getName());
    assertEquals("http://www.category_1_feed_1_url.com", category1_mark1.getFeedLinkReference().getLink().toString());
    assertEquals("category_1_feed_1_website", category1_mark1.getProperty(ITypeImporter.HOMEPAGE_KEY));
    assertEquals("category_1_feed_1_description", category1_mark1.getProperty(ITypeImporter.DESCRIPTION_KEY));

    IBookMark category1_mark2 = (IBookMark) category1.getMarks().get(1);
    assertEquals("category_1_feed_2_text", category1_mark2.getName());
    assertEquals("http://www.category_1_feed_2_url.com", category1_mark2.getFeedLinkReference().getLink().toString());
    assertEquals("category_1_feed_2_website", category1_mark2.getProperty(ITypeImporter.HOMEPAGE_KEY));
    assertEquals("category_1_feed_2_description", category1_mark2.getProperty(ITypeImporter.DESCRIPTION_KEY));

    IBookMark category1_mark3 = (IBookMark) category1.getMarks().get(2);
    assertEquals("category_1_feed_3_title", category1_mark3.getName());

    /* Category 2 */
    IFolder category2 = root.getFolders().get(1);
    assertEquals("category_2", category2.getName());
    assertEquals(1, category2.getFolders().size());
    assertEquals(0, category2.getMarks().size());

    /* Sub Category 1 */
    IFolder subcategory_1 = category2.getFolders().get(0);
    assertEquals("sub_category_1", subcategory_1.getName());
    assertEquals(1, subcategory_1.getFolders().size());
    assertEquals(2, subcategory_1.getMarks().size());

    /* Sub Category 1 Marks */
    IBookMark subcategory_1_mark_1 = (IBookMark) subcategory_1.getMarks().get(0);
    assertEquals("sub_category_1_feed_1_title", subcategory_1_mark_1.getName());

    IBookMark subcategory_1_mark_2 = (IBookMark) subcategory_1.getMarks().get(1);
    assertEquals("http://www.sub_category_1_feed_2_url.com", subcategory_1_mark_2.getName());

    /* Sub Sub Category 1 */
    IFolder sub_subcategory_1 = subcategory_1.getFolders().get(0);
    assertEquals("sub_sub_category_1", sub_subcategory_1.getName());
    assertEquals(1, sub_subcategory_1.getMarks().size());

    IBookMark sub_subcategory_1_mark = (IBookMark) sub_subcategory_1.getMarks().get(0);
    assertEquals("sub_sub_category_1_feed_1_title", sub_subcategory_1_mark.getName());
  }

  /**
   * Test importing an OPML as new Category with BookMarks.
   *
   * @throws Exception
   */
  @Test
  @SuppressWarnings("nls")
  public void testImportMyImport() throws Exception {
    InputStream inS = getClass().getResourceAsStream("/data/interpreter/import_myimport.xml");
    List<? extends IEntity> types = Owl.getInterpreter().importFrom(inS);
    assertEquals(1, types.size());
    assertTrue(types.get(0) instanceof IFolder);

    /* Root */
    IFolder root = (IFolder) types.get(0);
    assertEquals(1, root.getFolders().size());
    assertEquals(0, root.getMarks().size());

    /* Category 1 */
    IFolder category1 = root.getFolders().get(0);
    assertEquals("category_1", category1.getName());
    assertEquals(3, category1.getMarks().size());

    /* Category 1 Marks */
    IBookMark category1_mark1 = (IBookMark) category1.getMarks().get(0);
    assertEquals("category_1_feed_1_title", category1_mark1.getName());
    assertNotNull(category1_mark1.getFeedLinkReference().resolve());

    IFeed category1_mark1_feed = category1_mark1.getFeedLinkReference().resolve();
    assertEquals(new URI("http://www.category_1_feed_1_url.com").toString(), category1_mark1_feed.getLink().toString());
    assertEquals(new URI("category_1_feed_1_website"), category1_mark1_feed.getHomepage());
    assertEquals("category_1_feed_1_description", category1_mark1_feed.getDescription());

    IBookMark category1_mark2 = (IBookMark) category1.getMarks().get(1);
    assertEquals("category_1_feed_2_text", category1_mark2.getName());
    assertNotNull(category1_mark2.getFeedLinkReference().resolve());

    IFeed category1_mark2_feed = category1_mark2.getFeedLinkReference().resolve();
    assertEquals(new URI("http://www.category_1_feed_2_url.com").toString(), category1_mark2_feed.getLink().toString());
    assertEquals(new URI("category_1_feed_2_website"), category1_mark2_feed.getHomepage());
    assertEquals("category_1_feed_2_description", category1_mark2_feed.getDescription());

    IBookMark category1_mark3 = (IBookMark) category1.getMarks().get(2);
    assertEquals("category_1_feed_3_title", category1_mark3.getName());
    assertNotNull(category1_mark3.getFeedLinkReference().resolve());

    IFeed category1_mark3_feed = category1_mark3.getFeedLinkReference().resolve();
    assertEquals(new URI("http://www.category_1_feed_3_url.com").toString(), category1_mark3_feed.getLink().toString());
  }
}
TOP

Related Classes of org.rssowl.core.tests.importer.ImporterTest

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.