1 package net.pterodactylus.sone.database.memory;
3 import static java.util.Arrays.asList;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.hamcrest.Matchers.containsInAnyOrder;
6 import static org.hamcrest.Matchers.nullValue;
7 import static org.mockito.Mockito.mock;
8 import static org.mockito.Mockito.when;
10 import java.util.HashSet;
13 import net.pterodactylus.sone.TestValue;
14 import net.pterodactylus.util.config.Configuration;
15 import net.pterodactylus.util.config.ConfigurationException;
17 import org.junit.Test;
20 * Unit test for {@link ConfigurationLoader}.
22 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
24 public class ConfigurationLoaderTest {
26 private final Configuration configuration = mock(Configuration.class);
27 private final ConfigurationLoader configurationLoader =
28 new ConfigurationLoader(configuration);
31 public void loaderCanLoadKnownPosts() {
32 when(configuration.getStringValue("KnownPosts/0/ID"))
33 .thenReturn(new TestValue<String>("Post2"));
34 when(configuration.getStringValue("KnownPosts/1/ID"))
35 .thenReturn(new TestValue<String>("Post1"));
36 when(configuration.getStringValue("KnownPosts/2/ID"))
37 .thenReturn(new TestValue<String>(null));
38 Set<String> knownPosts = configurationLoader.loadKnownPosts();
39 assertThat(knownPosts, containsInAnyOrder("Post1", "Post2"));
43 public void loaderCanLoadKnownPostReplies() {
44 when(configuration.getStringValue("KnownReplies/0/ID"))
45 .thenReturn(new TestValue<String>("PostReply2"));
46 when(configuration.getStringValue("KnownReplies/1/ID"))
47 .thenReturn(new TestValue<String>("PostReply1"));
48 when(configuration.getStringValue("KnownReplies/2/ID"))
49 .thenReturn(new TestValue<String>(null));
50 Set<String> knownPosts = configurationLoader.loadKnownPostReplies();
51 assertThat(knownPosts,
52 containsInAnyOrder("PostReply1", "PostReply2"));
56 public void loaderCanLoadBookmarkedPosts() {
57 when(configuration.getStringValue("Bookmarks/Post/0/ID"))
58 .thenReturn(new TestValue<String>("Post2"));
59 when(configuration.getStringValue("Bookmarks/Post/1/ID"))
60 .thenReturn(new TestValue<String>("Post1"));
61 when(configuration.getStringValue("Bookmarks/Post/2/ID"))
62 .thenReturn(new TestValue<String>(null));
63 Set<String> knownPosts = configurationLoader.loadBookmarkedPosts();
64 assertThat(knownPosts, containsInAnyOrder("Post1", "Post2"));
68 public void loaderCanSaveBookmarkedPosts() throws ConfigurationException {
69 final TestValue<String> post1 = new TestValue<String>(null);
70 final TestValue<String> post2 = new TestValue<String>(null);
71 final TestValue<String> post3 = new TestValue<String>(null);
72 when(configuration.getStringValue("Bookmarks/Post/0/ID"))
74 when(configuration.getStringValue("Bookmarks/Post/1/ID"))
76 when(configuration.getStringValue("Bookmarks/Post/2/ID"))
78 HashSet<String> originalPosts =
79 new HashSet<String>(asList("Post1", "Post2"));
80 configurationLoader.saveBookmarkedPosts(originalPosts);
81 HashSet<String> extractedPosts = new HashSet<String>(
82 asList(post1.getValue(), post2.getValue()));
83 assertThat(extractedPosts, containsInAnyOrder("Post1", "Post2"));
84 assertThat(post3.getValue(), nullValue());