X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FConfigurationLoaderTest.java;h=41bc593730c318eb105b9297bb59eee39a67f646;hb=b282ae4881da1f8329fded3369bc08d6aaee6e7b;hp=55b66eec5a8b437796e5a2f9ed6911ff02db3de2;hpb=723de3522aa5c04634932f05bf4075304979c7a9;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/database/memory/ConfigurationLoaderTest.java b/src/test/java/net/pterodactylus/sone/database/memory/ConfigurationLoaderTest.java index 55b66ee..41bc593 100644 --- a/src/test/java/net/pterodactylus/sone/database/memory/ConfigurationLoaderTest.java +++ b/src/test/java/net/pterodactylus/sone/database/memory/ConfigurationLoaderTest.java @@ -3,18 +3,26 @@ package net.pterodactylus.sone.database.memory; import static java.util.Arrays.asList; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; +import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Map; import java.util.Set; import net.pterodactylus.sone.TestValue; import net.pterodactylus.util.config.Configuration; import net.pterodactylus.util.config.ConfigurationException; +import net.pterodactylus.util.config.Value; import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; /** * Unit test for {@link ConfigurationLoader}. @@ -30,23 +38,46 @@ public class ConfigurationLoaderTest { @Test public void loaderCanLoadKnownPosts() { when(configuration.getStringValue("KnownPosts/0/ID")) - .thenReturn(new TestValue("Post2")); + .thenReturn(TestValue.from("Post2")); when(configuration.getStringValue("KnownPosts/1/ID")) - .thenReturn(new TestValue("Post1")); + .thenReturn(TestValue.from("Post1")); when(configuration.getStringValue("KnownPosts/2/ID")) - .thenReturn(new TestValue(null)); + .thenReturn(TestValue.from(null)); Set knownPosts = configurationLoader.loadKnownPosts(); assertThat(knownPosts, containsInAnyOrder("Post1", "Post2")); } @Test + public void loaderCanSaveKnownPosts() throws ConfigurationException { + Map> configurationValues = prepareConfigurationValues(); + HashSet originalPosts = new LinkedHashSet(asList("Post1", "Post2")); + configurationLoader.saveKnownPosts(originalPosts); + assertThat(configurationValues.get("KnownPosts/0/ID").getValue(), is("Post1")); + assertThat(configurationValues.get("KnownPosts/1/ID").getValue(), is("Post2")); + assertThat(configurationValues.get("KnownPosts/2/ID").getValue(), nullValue()); + } + + private Map> prepareConfigurationValues() { + final Map> configurationValues = new HashMap>(); + when(configuration.getStringValue(anyString())).thenAnswer(new Answer>() { + @Override + public Value answer(InvocationOnMock invocation) throws Throwable { + Value stringValue = TestValue.from(null); + configurationValues.put((String) invocation.getArguments()[0], stringValue); + return stringValue; + } + }); + return configurationValues; + } + + @Test public void loaderCanLoadKnownPostReplies() { when(configuration.getStringValue("KnownReplies/0/ID")) - .thenReturn(new TestValue("PostReply2")); + .thenReturn(TestValue.from("PostReply2")); when(configuration.getStringValue("KnownReplies/1/ID")) - .thenReturn(new TestValue("PostReply1")); + .thenReturn(TestValue.from("PostReply1")); when(configuration.getStringValue("KnownReplies/2/ID")) - .thenReturn(new TestValue(null)); + .thenReturn(TestValue.from(null)); Set knownPosts = configurationLoader.loadKnownPostReplies(); assertThat(knownPosts, containsInAnyOrder("PostReply1", "PostReply2")); @@ -55,31 +86,27 @@ public class ConfigurationLoaderTest { @Test public void loaderCanLoadBookmarkedPosts() { when(configuration.getStringValue("Bookmarks/Post/0/ID")) - .thenReturn(new TestValue("Post2")); + .thenReturn(TestValue.from("Post2")); when(configuration.getStringValue("Bookmarks/Post/1/ID")) - .thenReturn(new TestValue("Post1")); + .thenReturn(TestValue.from("Post1")); when(configuration.getStringValue("Bookmarks/Post/2/ID")) - .thenReturn(new TestValue(null)); + .thenReturn(TestValue.from(null)); Set knownPosts = configurationLoader.loadBookmarkedPosts(); assertThat(knownPosts, containsInAnyOrder("Post1", "Post2")); } @Test public void loaderCanSaveBookmarkedPosts() throws ConfigurationException { - final TestValue post1 = new TestValue(null); - final TestValue post2 = new TestValue(null); - final TestValue post3 = new TestValue(null); - when(configuration.getStringValue("Bookmarks/Post/0/ID")) - .thenReturn(post1); - when(configuration.getStringValue("Bookmarks/Post/1/ID")) - .thenReturn(post2); - when(configuration.getStringValue("Bookmarks/Post/2/ID")) - .thenReturn(post3); - HashSet originalPosts = - new HashSet(asList("Post1", "Post2")); + final Value post1 = TestValue.from(null); + final Value post2 = TestValue.from(null); + final Value post3 = TestValue.from(null); + when(configuration.getStringValue("Bookmarks/Post/0/ID")).thenReturn(post1); + when(configuration.getStringValue("Bookmarks/Post/1/ID")).thenReturn(post2); + when(configuration.getStringValue("Bookmarks/Post/2/ID")).thenReturn(post3); + HashSet originalPosts = new HashSet(asList("Post1", "Post2")); configurationLoader.saveBookmarkedPosts(originalPosts); - HashSet extractedPosts = new HashSet( - asList(post1.getValue(), post2.getValue())); + HashSet extractedPosts = + new HashSet(asList(post1.getValue(), post2.getValue())); assertThat(extractedPosts, containsInAnyOrder("Post1", "Post2")); assertThat(post3.getValue(), nullValue()); }