Add method to mock a remote Sone.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 27 Oct 2013 21:59:00 +0000 (22:59 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 28 Feb 2014 21:25:47 +0000 (22:25 +0100)
src/test/java/net/pterodactylus/sone/data/Mocks.java

index 10d40a1..ba029b4 100644 (file)
@@ -32,6 +32,7 @@ import net.pterodactylus.sone.database.PostReplyBuilder;
 
 import com.google.common.base.Optional;
 import org.mockito.ArgumentCaptor;
+import org.mockito.Matchers;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
@@ -74,6 +75,18 @@ public class Mocks {
                return sone;
        }
 
+       public static Sone mockRemoteSone(Core core, final String id) {
+               Sone sone = mock(Sone.class);
+               when(sone.getId()).thenReturn(id);
+               when(sone.isLocal()).thenReturn(false);
+               final Database database = core.getDatabase();
+               when(sone.newPostBuilder()).thenReturn(new DefaultPostBuilder(database, id));
+               when(sone.newPostReplyBuilder(Matchers.<String>anyObject())).thenThrow(IllegalStateException.class);
+               when(core.getSone(eq(id))).thenReturn(of(sone));
+               when(database.getSone(eq(id))).thenReturn(of(sone));
+               return sone;
+       }
+
        public static Post mockPost(Core core, Sone sone, String postId) {
                Post post = mock(Post.class);
                when(post.getId()).thenReturn(postId);