From 3095e7b25034a6404175854a193289eed526aac6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Mon, 6 Jan 2025 09:26:03 +0100 Subject: [PATCH] =?utf8?q?=E2=9C=A8=20Add=20SendText=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Apparently, this has been “SendText” since build 1236… oops. 😄 --- src/main/java/net/pterodactylus/fcp/SendText.java | 19 ++++++++++++ .../java/net/pterodactylus/fcp/SendTextTest.java | 36 ++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/main/java/net/pterodactylus/fcp/SendText.java create mode 100644 src/test/java/net/pterodactylus/fcp/SendTextTest.java 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"); + +} -- 2.7.4