import net.pterodactylus.sone.database.ImageBuilder;
import net.pterodactylus.sone.database.PostBuilder;
import net.pterodactylus.sone.database.PostReplyBuilder;
+import net.pterodactylus.sone.database.SoneBuilder;
+import net.pterodactylus.sone.database.memory.MemorySoneBuilder;
import net.pterodactylus.sone.freenet.wot.Identity;
import freenet.client.ClientMetadata;
private final FreenetInterface freenetInterface = mock(FreenetInterface.class);
private final SoneDownloaderImpl soneDownloader = new SoneDownloaderImpl(core, freenetInterface);
private final FreenetURI requestUri = mock(FreenetURI.class);
- private final Sone sone = mock(Sone.class);
+ private Sone sone = mock(Sone.class);
private final PostBuilder postBuilder = mock(PostBuilder.class);
private final List<Post> createdPosts = new ArrayList<Post>();
private Post post = mock(Post.class);
@Before
public void setupSone() {
+ Sone sone = SoneDownloaderTest.this.sone;
Identity identity = mock(Identity.class);
when(identity.getId()).thenReturn("identity");
when(sone.getId()).thenReturn("identity");
}
@Before
+ public void setupSoneBuilder() {
+ when(core.soneBuilder()).thenAnswer(new Answer<SoneBuilder>() {
+ @Override
+ public SoneBuilder answer(InvocationOnMock invocation) {
+ return new MemorySoneBuilder();
+ }
+ });
+ }
+
+ @Before
public void setupPost() {
when(post.getRecipientId()).thenReturn(Optional.<String>absent());
}
@Test
public void exceptionWhileFetchingSoneWillNotUpdateTheCore() throws IOException {
final Fetched fetchResult = createFetchResult(requestUri, getClass().getResourceAsStream("sone-parser-no-payload.xml"));
- when(sone.getId()).thenThrow(NullPointerException.class);
+ when(core.soneBuilder()).thenReturn(null);
when(freenetInterface.fetchUri(requestUri)).thenReturn(fetchResult);
soneDownloader.fetchSoneAction(sone).run();
verify(core, never()).updateSone(any(Sone.class));