From: David ‘Bombe’ Roden Date: Mon, 28 Oct 2013 20:52:19 +0000 (+0100) Subject: Store mocked posts and return them from the Sone. X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=140725a28299b73441999d53d8fac6fbebfdab78;p=Sone.git Store mocked posts and return them from the Sone. --- diff --git a/src/test/java/net/pterodactylus/sone/data/Mocks.java b/src/test/java/net/pterodactylus/sone/data/Mocks.java index 7927822..0315365 100644 --- a/src/test/java/net/pterodactylus/sone/data/Mocks.java +++ b/src/test/java/net/pterodactylus/sone/data/Mocks.java @@ -18,11 +18,16 @@ package net.pterodactylus.sone.data; import static com.google.common.base.Optional.of; +import static com.google.common.collect.ArrayListMultimap.create; +import static com.google.common.collect.Ordering.from; +import static net.pterodactylus.sone.data.Post.TIME_COMPARATOR; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.util.List; + import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.data.impl.DefaultPostBuilder; import net.pterodactylus.sone.data.impl.DefaultPostReplyBuilder; @@ -30,6 +35,7 @@ import net.pterodactylus.sone.database.Database; import net.pterodactylus.sone.database.PostReplyBuilder; import com.google.common.base.Optional; +import com.google.common.collect.Multimap; import org.mockito.Matchers; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -41,6 +47,8 @@ import org.mockito.stubbing.Answer; */ public class Mocks { + private static final Multimap sonePosts = create(); + public static Core mockCore(Database database) { Core core = mock(Core.class); when(core.getDatabase()).thenReturn(database); @@ -71,7 +79,7 @@ public class Mocks { } public static Sone mockRemoteSone(Core core, final String id) { - Sone sone = mock(Sone.class); + final Sone sone = mock(Sone.class); when(sone.getId()).thenReturn(id); when(sone.isLocal()).thenReturn(false); when(sone.getProfile()).thenReturn(new Profile(sone)); @@ -80,6 +88,12 @@ public class Mocks { when(sone.newPostReplyBuilder(Matchers.anyObject())).thenThrow(IllegalStateException.class); when(core.getSone(eq(id))).thenReturn(of(sone)); when(database.getSone(eq(id))).thenReturn(of(sone)); + when(sone.getPosts()).then(new Answer>() { + @Override + public List answer(InvocationOnMock invocationOnMock) throws Throwable { + return from(TIME_COMPARATOR).sortedCopy(sonePosts.get(sone)); + } + }); return sone; } @@ -89,6 +103,7 @@ public class Mocks { when(post.getSone()).thenReturn(sone); Database database = core.getDatabase(); when(database.getPost(eq(postId))).thenReturn(of(post)); + sonePosts.put(sone, post); return post; }