X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FPreferencesLoaderTest.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FPreferencesLoaderTest.java;h=91120fb0ed7a26714df45e88cfbb54870e9776db;hp=0000000000000000000000000000000000000000;hb=c5fff3247c8a680f816db28df64d6439779f5c82;hpb=38066c6dacd27be5d88cf54e99dfdb5d7b49e712 diff --git a/src/test/java/net/pterodactylus/sone/core/PreferencesLoaderTest.java b/src/test/java/net/pterodactylus/sone/core/PreferencesLoaderTest.java new file mode 100644 index 0000000..91120fb --- /dev/null +++ b/src/test/java/net/pterodactylus/sone/core/PreferencesLoaderTest.java @@ -0,0 +1,73 @@ +package net.pterodactylus.sone.core; + +import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.WRITING; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import net.pterodactylus.sone.TestValue; +import net.pterodactylus.util.config.Configuration; + +import com.google.common.eventbus.EventBus; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit test for {@link PreferencesLoader}. + * + * @author David ‘Bombe’ Roden + */ +public class PreferencesLoaderTest { + + private final EventBus eventBus = mock(EventBus.class); + private final Preferences preferences = new Preferences(eventBus); + private final Configuration configuration = mock(Configuration.class); + private final PreferencesLoader preferencesLoader = + new PreferencesLoader(preferences); + + @Before + public void setupConfiguration() { + setupIntValue("InsertionDelay", 15); + setupIntValue("PostsPerPage", 25); + setupIntValue("ImagesPerPage", 12); + setupIntValue("CharactersPerPost", 150); + setupIntValue("PostCutOffLength", 300); + setupBooleanValue("RequireFullAccess", true); + setupIntValue("PositiveTrust", 50); + setupIntValue("NegativeTrust", -50); + when(configuration.getStringValue("Option/TrustComment")).thenReturn( + new TestValue("Trusted")); + setupBooleanValue("ActivateFcpInterface", true); + setupIntValue("FcpFullAccessRequired", 1); + } + + private void setupIntValue(String optionName, int value) { + when(configuration.getIntValue("Option/" + optionName)).thenReturn( + new TestValue(value)); + } + + private void setupBooleanValue(String optionName, boolean value) { + when(configuration.getBooleanValue( + "Option/" + optionName)).thenReturn( + new TestValue(value)); + } + + @Test + public void configurationIsLoadedCorrectly() { + setupConfiguration(); + preferencesLoader.loadFrom(configuration); + assertThat(preferences.getInsertionDelay(), is(15)); + assertThat(preferences.getPostsPerPage(), is(25)); + assertThat(preferences.getImagesPerPage(), is(12)); + assertThat(preferences.getCharactersPerPost(), is(150)); + assertThat(preferences.getPostCutOffLength(), is(300)); + assertThat(preferences.isRequireFullAccess(), is(true)); + assertThat(preferences.getPositiveTrust(), is(50)); + assertThat(preferences.getNegativeTrust(), is(-50)); + assertThat(preferences.getTrustComment(), is("Trusted")); + assertThat(preferences.isFcpInterfaceActive(), is(true)); + assertThat(preferences.getFcpFullAccessRequired(), is(WRITING)); + } + +}