✅ Add test for GetRequestStatus
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Thu, 2 Jan 2025 11:38:45 +0000 (12:38 +0100)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Thu, 2 Jan 2025 11:38:45 +0000 (12:38 +0100)
src/test/java/net/pterodactylus/fcp/GetRequestStatusTest.java [new file with mode: 0644]
src/test/java/net/pterodactylus/fcp/test/MessageTests.java [new file with mode: 0644]

diff --git a/src/test/java/net/pterodactylus/fcp/GetRequestStatusTest.java b/src/test/java/net/pterodactylus/fcp/GetRequestStatusTest.java
new file mode 100644 (file)
index 0000000..343a169
--- /dev/null
@@ -0,0 +1,49 @@
+package net.pterodactylus.fcp;
+
+import org.junit.Test;
+
+import static net.pterodactylus.fcp.test.MessageTests.verifyFieldValueAfterSettingFlag;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.nullValue;
+
+public class GetRequestStatusTest {
+
+       @Test
+       public void getRequestStatusSetsIdentifierField() {
+               assertThat(getRequestStatus.getField("Identifier"), equalTo("test-identifier"));
+       }
+
+       @Test
+       public void newGetRequestStatusDoesNotIncludeGlobalField() {
+               assertThat(getRequestStatus.getField("Global"), nullValue());
+       }
+
+       @Test
+       public void getRequestStatusWithGlobalSetToTrueResultsInGlobalFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(getRequestStatus, GetRequestStatus::setGlobal, m -> m.getField("Global"), true);
+       }
+
+       @Test
+       public void getRequestStatusWithGlobalSetToFalseResultsInGlobalFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(getRequestStatus, GetRequestStatus::setGlobal, m -> m.getField("Global"), false);
+       }
+
+       @Test
+       public void newGetRequestStatusDoesNotIncludeOnlyDataField() {
+               assertThat(getRequestStatus.getField("OnlyData"), nullValue());
+       }
+
+       @Test
+       public void getRequestStatusWithOnlyDataSetToTrueResultsInOnlyDataFieldBeingSetToTrue() {
+               verifyFieldValueAfterSettingFlag(getRequestStatus, GetRequestStatus::setOnlyData, m -> m.getField("OnlyData"), true);
+       }
+
+       @Test
+       public void getRequestStatusWithOnlyDataSetToFalseResultsInOnlyDataFieldBeingSetToFalse() {
+               verifyFieldValueAfterSettingFlag(getRequestStatus, GetRequestStatus::setOnlyData, m -> m.getField("OnlyData"), false);
+       }
+
+       private final GetRequestStatus getRequestStatus = new GetRequestStatus("test-identifier");
+
+}
diff --git a/src/test/java/net/pterodactylus/fcp/test/MessageTests.java b/src/test/java/net/pterodactylus/fcp/test/MessageTests.java
new file mode 100644 (file)
index 0000000..ed2dd60
--- /dev/null
@@ -0,0 +1,18 @@
+package net.pterodactylus.fcp.test;
+
+import net.pterodactylus.fcp.FcpMessage;
+
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+
+public class MessageTests {
+
+       public static <M extends FcpMessage> void verifyFieldValueAfterSettingFlag(M message, BiConsumer<? super M, Boolean> setter, Function<? super M, String> getter, boolean flag) {
+               setter.accept(message, flag);
+               assertThat(getter.apply(message), equalTo(String.valueOf(flag)));
+       }
+
+}