From b666981e1eb25571dab6531381b2dde3bcbcf8bc Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Mon, 29 Apr 2024 06:19:56 +0300 Subject: [PATCH] add unit test for MPVCommand --- .../com/mykola2312/mptv/TestMPVCommand.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/test/java/com/mykola2312/mptv/TestMPVCommand.java diff --git a/src/test/java/com/mykola2312/mptv/TestMPVCommand.java b/src/test/java/com/mykola2312/mptv/TestMPVCommand.java new file mode 100644 index 0000000..2588549 --- /dev/null +++ b/src/test/java/com/mykola2312/mptv/TestMPVCommand.java @@ -0,0 +1,48 @@ +package com.mykola2312.mptv; + +import static org.junit.jupiter.api.Assertions.*; + +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.mykola2312.mptv.mpv.MPVCommand; +import com.mykola2312.mptv.mpv.MPVCommandResult; + +public class TestMPVCommand { + private class TestCommand extends MPVCommand { + @Override + protected List serializeCommand() { + return Arrays.asList("name", "arg1", "arg2"); + } + + } + + private static final byte[] EXPECTED_BUF = + "{\"request_id\":0,\"command\":[\"name\",\"arg1\",\"arg2\"]}\n" + .getBytes(StandardCharsets.UTF_8); + + @Test() + public void testSerialize() throws JsonProcessingException { + TestCommand testCommand = new TestCommand(); + + assertDoesNotThrow(() -> testCommand.serialize()); + assertArrayEquals(EXPECTED_BUF, testCommand.serialize()); + } + + private static final String RESULT_LINE = "{\"data\":5.440000,\"request_id\":0,\"error\":\"success\"}\n"; + + @Test() + public void testDeserializeResult() throws JsonProcessingException { + assertDoesNotThrow(() -> MPVCommandResult.deserialize(RESULT_LINE)); + MPVCommandResult result = MPVCommandResult.deserialize(RESULT_LINE); + + assertNotNull(result); + assertNotNull(result.request_id); + assertNotNull(result.error); + assertEquals("5.440000", result.data); + } +}