import static com.google.common.base.Optional.fromNullable;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.is;
+import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.HashMap;
public class MemoryBookmarkDatabaseTest {
private final MemoryDatabase memoryDatabase = mock(MemoryDatabase.class);
- private final ConfigurationLoader configurationLoader = mock(ConfigurationLoader.class);
+ private final ConfigurationLoader configurationLoader =
+ mock(ConfigurationLoader.class);
private final MemoryBookmarkDatabase bookmarkDatabase =
new MemoryBookmarkDatabase(memoryDatabase, configurationLoader);
private final Map<String, Post> posts = new HashMap<String, Post>();
}
@Test
+ public void bookmarkingAPostSavesTheDatabase() {
+ for (Post post : posts.values()) {
+ bookmarkDatabase.bookmarkPost(post);
+ }
+ verify(configurationLoader, times(posts.size()))
+ .saveBookmarkedPosts(any(Set.class));
+ }
+
+ @Test
public void removingABookmarkRemovesTheCorrectBookmark() {
Set<Post> allPosts = new HashSet<Post>(posts.values());
for (Post post : allPosts) {
}
@Test
- public void addingABookmarkByIdBookmarksTheCorrectPost() {
- Post randomPost = posts.values().iterator().next();
- bookmarkDatabase.bookmarkPost(randomPost.getId());
- assertThat(bookmarkDatabase.getBookmarkedPosts(),
- contains(randomPost));
+ public void startingTheDatabaseLoadsBookmarkedPosts() {
+ bookmarkDatabase.start();
+ verify(configurationLoader).loadBookmarkedPosts();
+ }
+
+ @Test
+ public void stoppingTheDatabaseSavesTheBookmarkedPosts() {
+ bookmarkDatabase.stop();
+ verify(configurationLoader).saveBookmarkedPosts(any(Set.class));
}
}