Don’t store post replies sorted by post.
[Sone.git] / src / test / java / net / pterodactylus / sone / database / memory / MemoryDatabaseTest.java
index 73e63dd..db18cd2 100644 (file)
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.when;
 import net.pterodactylus.sone.data.Album;
 import net.pterodactylus.sone.data.AlbumImpl;
 import net.pterodactylus.sone.data.Post;
+import net.pterodactylus.sone.data.PostReply;
 import net.pterodactylus.sone.data.Sone;
 
 import com.google.common.base.Optional;
@@ -70,6 +71,34 @@ public class MemoryDatabaseTest {
        }
 
        @Test
+       public void postRepliesAreManagedCorrectly() {
+               Post firstPost = createPost(Optional.<String>absent());
+               PostReply firstPostFirstReply = createPostReply(firstPost, 1000L);
+               Post secondPost = createPost(Optional.<String>absent());
+               PostReply secondPostFirstReply = createPostReply(secondPost, 1000L);
+               PostReply secondPostSecondReply = createPostReply(secondPost, 2000L);
+               memoryDatabase.storePost(firstPost);
+               memoryDatabase.storePost(secondPost);
+               memoryDatabase.storePostReply(firstPostFirstReply);
+               memoryDatabase.storePostReply(secondPostFirstReply);
+               memoryDatabase.storePostReply(secondPostSecondReply);
+               assertThat(memoryDatabase.getReplies(firstPost.getId()),
+                               contains(firstPostFirstReply));
+               assertThat(memoryDatabase.getReplies(secondPost.getId()),
+                               contains(secondPostFirstReply, secondPostSecondReply));
+       }
+
+       private PostReply createPostReply(Post post, long time) {
+               PostReply postReply = mock(PostReply.class);
+               when(postReply.getId()).thenReturn(randomUUID().toString());
+               when(postReply.getTime()).thenReturn(time);
+               when(postReply.getPost()).thenReturn(of(post));
+               final String postId = post.getId();
+               when(postReply.getPostId()).thenReturn(postId);
+               return postReply;
+       }
+
+       @Test
        public void testBasicAlbumFunctionality() {
                Album newAlbum = new AlbumImpl(mock(Sone.class));
                assertThat(memoryDatabase.getAlbum(newAlbum.getId()), is(Optional.<Album>absent()));