* Tests that no event is sent when NewsManager#setState() is called and
* the new state is the same as the old state.
*/
@Test
public void testNewsManagerSetSameStateWithQuery() {
final IFeed feed;
try {
feed = fModelDAO.saveFeed(createFeed());
} catch (PersistenceException e) {
fail(e.getMessage());
return;
}
final News initialNews = (News) createNews(feed);
initialNews.setState(State.NEW);
INews news = null;
try {
news = fModelDAO.saveNews(initialNews);
} catch (PersistenceException e) {
fail(e.getMessage());
return;
}
NewsListener newsListener = null;
try {
newsListener = new NewsListener() {
public void newsAdded(Set<NewsEvent> events) {
fail("No events should have been fired, but NewsListener#newsAdded() was called");
}
public void newsDeleted(Set<NewsEvent> events) {
fail("No events should have been fired, but NewsListener#newsDeleted() was called.");
}
public void newsUpdated(Set<NewsEvent> events) {
fail("No events should have been fired, but NewsListener#newsUpdated() was called.");
}
};
NewsModel.getDefault().addNewsListener(newsListener);
List<INews> newsList = new ArrayList<INews>();
newsList.add(news);
fAppLayer.setNewsState(newsList, State.NEW, true, false);
NewsModel.getDefault().removeNewsListener(newsListener);
fModelDAO.deleteNews(new NewsReference(news.getId()));
fModelDAO.deleteFeed(new FeedReference(feed.getId()));
} catch (PersistenceException e) {
fail(e.getMessage());
} finally {
if (newsListener != null) {
NewsModel.getDefault().removeNewsListener(newsListener);