Increase test coverage.
[Sone.git] / src / test / java / net / pterodactylus / sone / core / SoneInserterTest.java
1 package net.pterodactylus.sone.core;
2
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.containsInAnyOrder;
5 import static org.hamcrest.Matchers.is;
6 import static org.mockito.Mockito.mock;
7 import static org.mockito.Mockito.when;
8
9 import java.util.HashMap;
10
11 import net.pterodactylus.sone.core.SoneInserter.InsertInformation;
12 import net.pterodactylus.sone.core.SoneInserter.SetInsertionDelay;
13 import net.pterodactylus.sone.data.Album;
14 import net.pterodactylus.sone.data.Sone;
15
16 import freenet.keys.FreenetURI;
17
18 import com.google.common.eventbus.EventBus;
19 import org.junit.Test;
20
21 /**
22  * Unit test for {@link SoneInserter} and its subclasses.
23  *
24  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
25  */
26 public class SoneInserterTest {
27
28         @Test
29         public void insertionDelayIsForwardedToSoneInserter() {
30                 SetInsertionDelay setInsertionDelay = new SetInsertionDelay();
31                 setInsertionDelay.optionChanged(null, null, 15);
32                 assertThat(SoneInserter.getInsertionDelay().get(), is(15));
33         }
34
35         @Test
36         /* this test is hilariously bad. */
37         public void manifestEntriesAreCreated() {
38                 FreenetURI insertUri = mock(FreenetURI.class);
39                 String fingerprint = "fingerprint";
40                 Sone sone = createSone(insertUri, fingerprint);
41                 Core core = mock(Core.class);
42                 UpdateChecker updateChecker = mock(UpdateChecker.class);
43                 when(core.getUpdateChecker()).thenReturn(updateChecker);
44                 EventBus eventBus = mock(EventBus.class);
45                 FreenetInterface freenetInterface = mock(FreenetInterface.class);
46                 SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone);
47                 InsertInformation insertInformation = soneInserter.new InsertInformation(sone);
48                 HashMap<String, Object> manifestEntries = insertInformation.generateManifestEntries();
49                 assertThat(manifestEntries.keySet(), containsInAnyOrder("index.html", "sone.xml"));
50                 assertThat(insertInformation.getInsertUri(), is(insertUri));
51                 assertThat(insertInformation.getFingerprint(), is(fingerprint));
52         }
53
54         private Sone createSone(FreenetURI insertUri, String fingerprint) {
55                 Sone sone = mock(Sone.class);
56                 when(sone.getInsertUri()).thenReturn(insertUri);
57                 when(sone.getFingerprint()).thenReturn(fingerprint);
58                 when(sone.getRootAlbum()).thenReturn(mock(Album.class));
59                 return sone;
60         }
61
62 }