From: David ‘Bombe’ Roden Date: Mon, 6 Jan 2025 08:26:03 +0000 (+0100) Subject: ✨ Add SendText message X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=3095e7b25034a6404175854a193289eed526aac6;p=jFCPlib.git ✨ Add SendText message Apparently, this has been “SendText” since build 1236… oops. 😄 --- diff --git a/src/main/java/net/pterodactylus/fcp/SendText.java b/src/main/java/net/pterodactylus/fcp/SendText.java new file mode 100644 index 0000000..1edc761 --- /dev/null +++ b/src/main/java/net/pterodactylus/fcp/SendText.java @@ -0,0 +1,19 @@ +package net.pterodactylus.fcp; + +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; + +import static java.nio.charset.StandardCharsets.UTF_8; + +public class SendText extends FcpMessage { + + public SendText(String identifier, String nodeIdentifier, String text) { + super("SendText"); + setField("Identifier", identifier); + setField("NodeIdentifier", nodeIdentifier); + byte[] encodedText = text.getBytes(UTF_8); + setPayloadInputStream(new ByteArrayInputStream(encodedText)); + setField("DataLength", String.valueOf(encodedText.length)); + } + +} diff --git a/src/test/java/net/pterodactylus/fcp/SendTextTest.java b/src/test/java/net/pterodactylus/fcp/SendTextTest.java new file mode 100644 index 0000000..f0b4e97 --- /dev/null +++ b/src/test/java/net/pterodactylus/fcp/SendTextTest.java @@ -0,0 +1,36 @@ +package net.pterodactylus.fcp; + +import net.pterodactylus.fcp.test.InputStreamMatchers; +import org.junit.Test; + +import static java.nio.charset.StandardCharsets.UTF_8; +import static net.pterodactylus.fcp.test.InputStreamMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; + +public class SendTextTest { + + @Test + public void sendTextMessageHasCorrectName() { + assertThat(sendText.getName(), equalTo("SendText")); + } + + @Test + public void sendTextMessageSetsIdentifierField() { + assertThat(sendText.getField("Identifier"), equalTo("identifier")); + } + + @Test + public void sendTextMessageSetsNodeIdentifierField() { + assertThat(sendText.getField("NodeIdentifier"), equalTo("node-identifier")); + } + + @Test + public void sendTextMessageSetsTextAsPayload() { + assertThat(sendText.getField("DataLength"), equalTo("13")); + assertThat(sendText.getPayloadInputStream(), equalTo("Hällo Wőrld".getBytes(UTF_8))); + } + + private final SendText sendText = new SendText("identifier", "node-identifier", "Hällo Wőrld"); + +}