public void testFlatNewsEvents() throws Exception {
NewsListener newsListener = null;
try {
/* Add */
final IFeed feed = fDao.saveFeed(fFactory.createFeed(null, new URL("http://www.feed.com")));
INews news = fFactory.createNews(null, feed, new Date());
news.setTitle("News");
final boolean newsEvents[] = new boolean[3];
final NewsReference newsReference[] = new NewsReference[1];
newsListener = new NewsListener() {
public void newsAdded(Set<NewsEvent> events) {
for (NewsEvent event : events) {
assertTrue("Expected this Event to be Root Event", event.isRoot());
assertEquals(feed.getLink(), event.getEntity().getFeedReference().getLink());
newsEvents[0] = true;
}
}
public void newsDeleted(Set<NewsEvent> events) {
for (NewsEvent event : events) {
assertTrue("Expected this Event to be Root Event", event.isRoot());
assertEquals(feed.getLink(), event.getEntity().getFeedReference().getLink());
if (newsReference[0].references(event.getEntity()))
newsEvents[1] = true;
}
}
public void newsUpdated(Set<NewsEvent> events) {
for (NewsEvent event : events) {
assertTrue("Expected this Event to be Root Event", event.isRoot());
assertEquals(feed.getLink(), event.getEntity().getFeedReference().getLink());
if (newsReference[0].references(event.getEntity()))
newsEvents[2] = true;
}
}
};
fModel.addNewsListener(newsListener);
newsReference[0] = new NewsReference(fDao.saveNews(news).getId());
/* Update */
news = newsReference[0].resolve();
news.setTitle("News Updated");
fDao.saveNews(news);
/* Delete */
fDao.deleteNews(newsReference[0]);