✅ Add tests for LoadPlugin
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Fri, 3 Jan 2025 12:30:41 +0000 (13:30 +0100)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Fri, 3 Jan 2025 12:30:41 +0000 (13:30 +0100)
src/test/java/net/pterodactylus/fcp/LoadPluginTest.java [new file with mode: 0644]
src/test/java/net/pterodactylus/fcp/test/MessageTests.java

diff --git a/src/test/java/net/pterodactylus/fcp/LoadPluginTest.java b/src/test/java/net/pterodactylus/fcp/LoadPluginTest.java
new file mode 100644 (file)
index 0000000..512869a
--- /dev/null
@@ -0,0 +1,65 @@
+package net.pterodactylus.fcp;
+
+import org.junit.Test;
+
+import static net.pterodactylus.fcp.test.MessageTests.verifyFieldValueAfterSettingFlag;
+import static net.pterodactylus.fcp.test.MessageTests.verifyFieldValueAfterSettingProperty;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.equalToIgnoringCase;
+
+public class LoadPluginTest {
+
+       @Test
+       public void loadPluginSetsIdentifier() {
+               assertThat(loadPlugin.getField("Identifier"), equalTo("identifier"));
+       }
+
+       @Test
+       public void settingPluginUrlWillSetField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setPluginUrl, "PluginURL", "plugin-url");
+       }
+
+       @Test
+       public void settingUrlTypeToOfficialSetsCorrectField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setUrlType, "URLType", LoadPlugin.UrlType.OFFICIAL, equalToIgnoringCase("official"));
+       }
+
+       @Test
+       public void settingUrlTypeToFileSetsCorrectField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setUrlType, "URLType", LoadPlugin.UrlType.FILE, equalToIgnoringCase("file"));
+       }
+
+       @Test
+       public void settingUrlTypeToFreenetSetsCorrectField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setUrlType, "URLType", LoadPlugin.UrlType.FREENET, equalToIgnoringCase("freenet"));
+       }
+
+       @Test
+       public void settingUrlTypeToUrlSetsCorrectField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setUrlType, "URLType", LoadPlugin.UrlType.URL, equalToIgnoringCase("url"));
+       }
+
+       @Test
+       public void settingStoreToFalseSetsStoreFieldToFalse() {
+               verifyFieldValueAfterSettingFlag(loadPlugin, LoadPlugin::setStore, "Store", false);
+       }
+
+       @Test
+       public void settingStoreToTrueSetsStoreFieldToTrue() {
+               verifyFieldValueAfterSettingFlag(loadPlugin, LoadPlugin::setStore, "Store", true);
+       }
+
+       @Test
+       public void settingOfficialSourceToFreenetSetsCorrectField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setOfficialSource, "OfficialSource", LoadPlugin.OfficialSource.FREENET, equalToIgnoringCase("freenet"));
+       }
+
+       @Test
+       public void settingOfficialSourceToHttpsSetsCorrectField() {
+               verifyFieldValueAfterSettingProperty(loadPlugin, LoadPlugin::setOfficialSource, "OfficialSource", LoadPlugin.OfficialSource.HTTPS, equalToIgnoringCase("https"));
+       }
+
+       private final LoadPlugin loadPlugin = new LoadPlugin("identifier");
+
+}
index 6249a84..77b16b5 100644 (file)
@@ -1,6 +1,7 @@
 package net.pterodactylus.fcp.test;
 
 import net.pterodactylus.fcp.FcpMessage;
+import org.hamcrest.Matcher;
 
 import java.util.function.BiConsumer;
 import java.util.function.Function;
@@ -19,4 +20,13 @@ public class MessageTests {
                verifyPropertyAfterSettingFlag(message, setter, m -> m.getField(fieldName), false);
        }
 
+       public static <M extends FcpMessage> void verifyFieldValueAfterSettingProperty(M message, BiConsumer<M, String> setter, String fieldName, String value) {
+               verifyFieldValueAfterSettingProperty(message, setter, fieldName, value, equalTo(value));
+       }
+
+       public static <M extends FcpMessage, V> void verifyFieldValueAfterSettingProperty(M message, BiConsumer<M, ? super V> setter, String fieldName, V value, Matcher<? super String> matcher) {
+               setter.accept(message, value);
+               assertThat(message.getField(fieldName), matcher);
+       }
+
 }