From f94cd73fa7ff42e3896cc849960463d2960be6cf Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 2 Jun 2026 05:47:35 -0700 Subject: [PATCH] Add Suntech encoder test --- src/test/java/org/traccar/ProtocolTest.java | 6 ++--- .../protocol/Jt808ProtocolEncoderTest.java | 4 ++- .../protocol/SuntechProtocolEncoderTest.java | 27 +++++++++++++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 src/test/java/org/traccar/protocol/SuntechProtocolEncoderTest.java diff --git a/src/test/java/org/traccar/ProtocolTest.java b/src/test/java/org/traccar/ProtocolTest.java index 3f7772393..1b7ae5904 100644 --- a/src/test/java/org/traccar/ProtocolTest.java +++ b/src/test/java/org/traccar/ProtocolTest.java @@ -353,14 +353,14 @@ public class ProtocolTest extends BaseTest { verifyFrame(expected, encoder.encodeCommand(command)); } - protected void verifyCommand( - BaseProtocolEncoder encoder, BaseProtocolDecoder decoder, Command command, ByteBuf expected) { + protected Object encodeCommand( + BaseProtocolEncoder encoder, BaseProtocolDecoder decoder, Command command) { var pipeline = mock(ChannelPipeline.class); when(pipeline.iterator()).thenReturn( List.>of(Map.entry("decoder", decoder)).iterator()); var channel = mock(Channel.class); when(channel.pipeline()).thenReturn(pipeline); - verifyFrame(expected, encoder.encodeCommand(channel, command)); + return encoder.encodeCommand(channel, command); } protected void verifyFrame(ByteBuf expected, Object object) { diff --git a/src/test/java/org/traccar/protocol/Jt808ProtocolEncoderTest.java b/src/test/java/org/traccar/protocol/Jt808ProtocolEncoderTest.java index 6022879ad..f7e2cd21f 100644 --- a/src/test/java/org/traccar/protocol/Jt808ProtocolEncoderTest.java +++ b/src/test/java/org/traccar/protocol/Jt808ProtocolEncoderTest.java @@ -16,7 +16,9 @@ public class Jt808ProtocolEncoderTest extends ProtocolTest { command.setDeviceId(1); command.setType(Command.TYPE_ENGINE_STOP); - verifyCommand(encoder, decoder, command, binary("7e810500010b3a73ce2ff20000f0247e")); + verifyFrame( + binary("7e810500010b3a73ce2ff20000f0247e"), + encodeCommand(encoder, decoder, command)); } diff --git a/src/test/java/org/traccar/protocol/SuntechProtocolEncoderTest.java b/src/test/java/org/traccar/protocol/SuntechProtocolEncoderTest.java new file mode 100644 index 000000000..025e6525f --- /dev/null +++ b/src/test/java/org/traccar/protocol/SuntechProtocolEncoderTest.java @@ -0,0 +1,27 @@ +package org.traccar.protocol; + +import org.junit.jupiter.api.Test; +import org.traccar.ProtocolTest; +import org.traccar.model.Command; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SuntechProtocolEncoderTest extends ProtocolTest { + + @Test + public void testEncode() throws Exception { + + var decoder = inject(new SuntechProtocolDecoder(null)); + var encoder = inject(new SuntechProtocolEncoder(null)); + + Command command = new Command(); + command.setDeviceId(1); + command.setType(Command.TYPE_REBOOT_DEVICE); + + assertEquals( + "SA200CMD;123456789012345;02;Reboot\r", + encodeCommand(encoder, decoder, command)); + + } + +}