From 16d7aeb65457a0e55eda3a2b68c789d0c9910207 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sat, 23 Nov 2024 22:58:21 +0100 Subject: [PATCH] =?utf8?q?=E2=9C=85=20Add=20tests=20for=20FCPPluginMessage?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../pterodactylus/fcp/FCPPluginMessageTest.java | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/test/java/net/pterodactylus/fcp/FCPPluginMessageTest.java diff --git a/src/test/java/net/pterodactylus/fcp/FCPPluginMessageTest.java b/src/test/java/net/pterodactylus/fcp/FCPPluginMessageTest.java new file mode 100644 index 0000000..3f45edc --- /dev/null +++ b/src/test/java/net/pterodactylus/fcp/FCPPluginMessageTest.java @@ -0,0 +1,43 @@ +package net.pterodactylus.fcp; + +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import static java.nio.charset.StandardCharsets.UTF_8; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.endsWith; +import static org.hamcrest.Matchers.equalTo; + +public class FCPPluginMessageTest { + + @Test + public void messageCanBeCreatedWithIdentifierAndPluginClass() { + FcpMessage message = new FCPPluginMessage("identifier", "test.Plugin"); + assertThat(message.getField("Identifier"), equalTo("identifier")); + assertThat(message.getField("PluginName"), equalTo("test.Plugin")); + } + + @Test + public void parametersAreSetAsFieldsWithPrefix() { + FCPPluginMessage message = new FCPPluginMessage("identifier", "test.Plugin"); + message.setParameter("One", "1"); + assertThat(message.getField("Param.One"), equalTo("1")); + } + + @Test + public void settingDataLengthAndPayloadIncludesLengthAndDataInWrittenMessage() throws IOException { + FCPPluginMessage message = new FCPPluginMessage("identifier", "test.Plugin"); + message.setData(new ByteArrayInputStream("Hello World!".getBytes(UTF_8)), 12); + try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + message.write(outputStream); + String renderedMessage = new String(outputStream.toByteArray(), UTF_8); + assertThat(renderedMessage, containsString("\r\nDataLength=12\r\n")); + assertThat(renderedMessage, endsWith("\r\nData\r\nHello World!")); + } + } + +} -- 2.7.4