X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FMocks.java;h=36158283dad5296bbb699db317b05bc15a4c7ddc;hb=57054fd650db40dbf3ceba5fa5b094ef8629bef0;hp=72a4e75e1d7d5bf48f2b5f704cfce954ca5559d3;hpb=b30df9db8b6400e00e431ce2a92370cda91615c7;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/data/Mocks.java b/src/test/java/net/pterodactylus/sone/data/Mocks.java index 72a4e75..3615828 100644 --- a/src/test/java/net/pterodactylus/sone/data/Mocks.java +++ b/src/test/java/net/pterodactylus/sone/data/Mocks.java @@ -47,6 +47,7 @@ import net.pterodactylus.sone.core.SoneInserter; import net.pterodactylus.sone.data.impl.DefaultPostBuilder; import net.pterodactylus.sone.data.impl.DefaultPostReplyBuilder; import net.pterodactylus.sone.database.Database; +import net.pterodactylus.sone.database.PostBuilder.PostCreated; import net.pterodactylus.sone.database.PostReplyBuilder; import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired; import net.pterodactylus.sone.utils.IntegerRangePredicate; @@ -77,6 +78,7 @@ public class Mocks { private final Multimap sonePosts = create(); private final Map sones = newHashMap(); + private final Map posts = newHashMap(); private final Multimap postReplies = create(); private final Multimap directedPosts = create(); private final SetMultimap postLikingSones = HashMultimap.create(); @@ -101,12 +103,26 @@ public class Mocks { return sones.values(); } }); + when(core.getLocalSone(anyString())).then(new Answer>() { + @Override + public Optional answer(InvocationOnMock invocation) throws Throwable { + Sone localSone = sones.get(invocation.getArguments()[0]); + return ((localSone == null) || (!localSone.isLocal())) ? Optional.absent() : of(localSone); + } + }); when(core.getLocalSones()).then(new Answer>() { @Override public Collection answer(InvocationOnMock invocation) throws Throwable { return FluentIterable.from(sones.values()).filter(Sone.LOCAL_SONE_FILTER).toList(); } }); + when(core.postCreated()).thenReturn(Optional.of(new PostCreated() { + @Override + public void postCreated(Post post) { + posts.put(post.getId(), post); + sonePosts.put(post.getSone(), post); + } + })); Options options = createOptions(); when(core.getPreferences()).thenReturn(new Preferences(options)); when(database.getDirectedPosts(anyString())).then(new Answer>() { @@ -140,10 +156,15 @@ public class Mocks { return core; } - private static Database mockDatabase() { + private Database mockDatabase() { Database database = mock(Database.class); when(database.getSone(anyString())).thenReturn(Optional.absent()); - when(database.getPost(anyString())).thenReturn(Optional.absent()); + when(database.getPost(anyString())).then(new Answer>() { + @Override + public Optional answer(InvocationOnMock invocation) throws Throwable { + return fromNullable(posts.get(invocation.getArguments()[0])); + } + }); when(database.getPostReply(anyString())).thenReturn(Optional.absent()); return database; }