/**
* Tests {@link IApplicationLayer#setNewsState(List, State, boolean, boolean)}.
*/
@Test
public void testNewsManagerSetStateWithGuidNull() {
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);
initialNews.setGuid(null);
INews newsItem = null;
NewsReference newsRef = null;
try {
newsItem = fModelDAO.saveNews(initialNews);
newsRef = new NewsReference(newsItem.getId());
} catch (PersistenceException e) {
fail(e.getMessage());
return;
}
try {
List<INews> newsList = new ArrayList<INews>();
newsList.add(newsItem);
fAppLayer.setNewsState(newsList, State.UPDATED, true, false);
INews news = newsRef.resolve();
assertEquals(State.UPDATED, news.getState());
fAppLayer.setNewsState(newsList, State.DELETED, true, false);
news = newsRef.resolve();
assertEquals(State.DELETED, news.getState());
fAppLayer.setNewsState(newsList, State.HIDDEN, true, false);
news = newsRef.resolve();
assertEquals(State.HIDDEN, news.getState());
fAppLayer.setNewsState(newsList, State.READ, true, false);
news = newsRef.resolve();
assertEquals(State.READ, news.getState());
fAppLayer.setNewsState(newsList, State.UNREAD, true, false);
news = newsRef.resolve();
assertEquals(State.UNREAD, news.getState());
fAppLayer.setNewsState(newsList, State.NEW, true, false);
news = newsRef.resolve();
assertEquals(State.NEW, news.getState());
// Make sure it doesn't change when we set it to the same
fAppLayer.setNewsState(newsList, State.NEW, true, false);
news = newsRef.resolve();
assertEquals(State.NEW, news.getState());
fModelDAO.deleteNews(newsRef);
fModelDAO.deleteFeed(new FeedReference(feed.getId()));
} catch (PersistenceException e) {
fail(e.getMessage());
}
}