package org.wiztools.commons.feed;
import org.wiztools.commons.feed.OpenSearchExtension;
import org.wiztools.commons.feed.Feed;
import org.wiztools.commons.feed.FeedExecuter;
import org.wiztools.commons.feed.AbderaFeedExecuter;
import org.wiztools.commons.feed.FeedEntry;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.List;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
public class AbderaFeedExecuterTest {
public AbderaFeedExecuterTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
private HttpServlet getServlet(final File f){
return new HttpServlet() {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
OutputStream os = response.getOutputStream();
InputStream is = new FileInputStream(f);
byte b[] = new byte[4096];
int len = -1;
while((len=is.read(b)) > 0){
os.write(b, 0, len);
}
is.close();
os.close();
}
};
}
/**
* Test of getFeed method, of class AbderaFeedExecuter.
*/
@Test
public void testGetFeed() throws Exception {
System.out.println("getFeed");
URL url = new File("src/test/resources/wiztools-atom.xml").toURI().toURL();
FeedExecuter instance = new AbderaFeedExecuter();
Feed result = instance.getFeed(url);
List<FeedEntry> outEntries = result.getEntries();
for(FeedEntry entry : outEntries){
System.out.println("\n\n\t title: "+ entry.getTitle());
}
assertEquals(result.getEntries().size(), 9);
}
/**
* Test of getFeed method, of class AbderaFeedExecuter.
*/
@Test
public void testGetFeedOpenSearch() throws Exception {
System.out.println("getFeed");
URL url = new File("src/test/resources/atom-opensearch.xml").toURI().toURL();
FeedExecuter instance = new AbderaFeedExecuter();
Feed result = instance.getFeed(url);
int totalResults = (Integer)result.getExtension(OpenSearchExtension.totalResults);
int itemsPerPage = (Integer)result.getExtension(OpenSearchExtension.itemsPerPage);
int startIndex = (Integer)result.getExtension(OpenSearchExtension.startIndex);
System.out.println(result);
assertEquals(totalResults, 12);
assertEquals(itemsPerPage, 10);
assertEquals(startIndex, 11);
}
@Test
public void testPebbleBlogAtom() throws Exception{
URL url = new File("src/test/resources/pebble-atom.xml").toURI().toURL();
FeedExecuter instance = new AbderaFeedExecuter();
Feed result = instance.getFeed(url);
FeedEntry entry = result.getEntries().get(0);
//final String expOut = "Parliamo di cloud computing...";
//final int startIndex = 15; // first 15 chars are junk
//assertEquals(expOut, entry.getDescription().substring(startIndex, expOut.length() + startIndex));
}
/**
* Test of getAggregateFeeds method, of class AbderaFeedExecuter.
*/
@Test
public void testGetAggregateFeeds() throws Exception {
/*System.out.println("getAggregateFeeds");
Feed feedMeta = null;
List<URL> urls = null;
boolean noCache = false;
AbderaFeedExecuter instance = new AbderaFeedExecuter();
Feed expResult = null;
Feed result = instance.getAggregateFeeds(feedMeta, urls, noCache);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail("The test case is a prototype.");*/
}
}