✅ Add test for GetConfig command
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Wed, 1 Jan 2025 19:22:33 +0000 (20:22 +0100)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Wed, 1 Jan 2025 19:22:33 +0000 (20:22 +0100)
src/test/java/net/pterodactylus/fcp/GetConfigTest.java [new file with mode: 0644]

diff --git a/src/test/java/net/pterodactylus/fcp/GetConfigTest.java b/src/test/java/net/pterodactylus/fcp/GetConfigTest.java
new file mode 100644 (file)
index 0000000..0ece93a
--- /dev/null
@@ -0,0 +1,165 @@
+package net.pterodactylus.fcp;
+
+import org.junit.Test;
+
+import java.util.function.BiConsumer;
+import java.util.function.BiFunction;
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.nullValue;
+
+public class GetConfigTest {
+
+       @Test
+       public void getConfigWithoutIdentifierCreatesMessageWithCorrectName() {
+               assertThat(getConfig.getName(), equalTo("GetConfig"));
+       }
+
+       @Test
+       public void getConfigWithoutIdentifierCreatesMessageWithoutIdentifier() {
+               assertThat(getConfig.getField("Identifier"), nullValue());
+       }
+
+       @Test
+       public void getConfigWithIdentifierCreatesMessageWithCorrectName() {
+               GetConfig getConfig = new GetConfig("test-identifier");
+               assertThat(getConfig.getName(), equalTo("GetConfig"));
+       }
+
+       @Test
+       public void getConfigWithIdentifierCreatesMessageWithIdentifier() {
+               GetConfig getConfig = new GetConfig("test-identifier");
+               assertThat(getConfig.getField("Identifier"), equalTo("test-identifier"));
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithCurrentField() {
+               assertThat(getConfig.getField("WithCurrent"), nullValue());
+       }
+
+       @Test
+       public void settingWithCurrentToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithCurrent, "WithCurrent", true);
+       }
+
+       @Test
+       public void settingWithCurrentToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithCurrent, "WithCurrent", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithDefaultsField() {
+               assertThat(getConfig.getField("WithDefaults"), nullValue());
+       }
+
+       @Test
+       public void settingWithDefaultsToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithDefaults, "WithDefaults", true);
+       }
+
+       @Test
+       public void settingWithDefaultsToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithDefaults, "WithDefaults", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithSortOrderField() {
+               assertThat(getConfig.getField("WithSortOrder"), nullValue());
+       }
+
+       @Test
+       public void settingWithSortOrderToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithSortOrder, "WithSortOrder", true);
+       }
+
+       @Test
+       public void settingWithSortOrderToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithSortOrder, "WithSortOrder", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithExpertFlagField() {
+               assertThat(getConfig.getField("WithExpertFlag"), nullValue());
+       }
+
+       @Test
+       public void settingWithExpertFlagToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithExpertFlag, "WithExpertFlag", true);
+       }
+
+       @Test
+       public void settingWithExpertFlagToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithExpertFlag, "WithExpertFlag", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithForceWriteFlagField() {
+               assertThat(getConfig.getField("WithForceWriteFlag"), nullValue());
+       }
+
+       @Test
+       public void settingWithForceWriteFlagToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithForceWriteFlag, "WithForceWriteFlag", true);
+       }
+
+       @Test
+       public void settingWithForceWriteFlagToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithForceWriteFlag, "WithForceWriteFlag", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithShortDescriptionField() {
+               assertThat(getConfig.getField("WithShortDescription"), nullValue());
+       }
+
+       @Test
+       public void settingWithShortDescriptionToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithShortDescription, "WithShortDescription", true);
+       }
+
+       @Test
+       public void settingWithShortDescriptionToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithShortDescription, "WithShortDescription", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithLongDescriptionField() {
+               assertThat(getConfig.getField("WithLongDescription"), nullValue());
+       }
+
+       @Test
+       public void settingWithLongDescriptionToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithLongDescription, "WithLongDescription", true);
+       }
+
+       @Test
+       public void settingWithLongDescriptionToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithLongDescription, "WithLongDescription", false);
+       }
+
+       @Test
+       public void newGetConfigDoesNotHaveWithDataTypesField() {
+               assertThat(getConfig.getField("WithDataTypes"), nullValue());
+       }
+
+       @Test
+       public void settingWithDataTypesToTrueResultsInFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithDataTypes, "WithDataTypes", true);
+       }
+
+       @Test
+       public void settingWithDataTypesToFalseResultsInFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(GetConfig::setWithDataTypes, "WithDataTypes", false);
+       }
+
+       private void verifyFieldValueAfterSettingFlag(BiConsumer<GetConfig, Boolean> setter, String fieldName, boolean flag) {
+               setter.accept(getConfig, flag);
+               assertThat(getConfig.getField(fieldName), equalTo(String.valueOf(flag)));
+       }
+
+       private final GetConfig getConfig = new GetConfig();
+
+}