aboutsummaryrefslogtreecommitdiff
path: root/test/org/traccar
diff options
context:
space:
mode:
Diffstat (limited to 'test/org/traccar')
-rw-r--r--test/org/traccar/helper/ChecksumTest.java7
-rw-r--r--test/org/traccar/protocol/Arnavi4FrameDecoderTest.java50
-rw-r--r--test/org/traccar/protocol/Arnavi4ProtocolDecoderTest.java40
3 files changed, 97 insertions, 0 deletions
diff --git a/test/org/traccar/helper/ChecksumTest.java b/test/org/traccar/helper/ChecksumTest.java
index c37eda88d..c7c5031df 100644
--- a/test/org/traccar/helper/ChecksumTest.java
+++ b/test/org/traccar/helper/ChecksumTest.java
@@ -28,4 +28,11 @@ public class ChecksumTest {
Assert.assertEquals(0, Checksum.luhn(63070019470771L));
}
+ @Test
+ public void testModulo256() {
+ Assert.assertEquals(0x00, Checksum.modulo256(new byte[] {0x00}));
+ Assert.assertEquals(0x00, Checksum.modulo256(new byte[] {0x00, 0x00, 0x00}));
+ Assert.assertEquals(0x06, Checksum.modulo256(new byte[] {0x01, 0x02, 0x03}));
+ }
+
}
diff --git a/test/org/traccar/protocol/Arnavi4FrameDecoderTest.java b/test/org/traccar/protocol/Arnavi4FrameDecoderTest.java
new file mode 100644
index 000000000..b634f0cdc
--- /dev/null
+++ b/test/org/traccar/protocol/Arnavi4FrameDecoderTest.java
@@ -0,0 +1,50 @@
+package org.traccar.protocol;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.traccar.ProtocolTest;
+
+import java.nio.ByteOrder;
+
+public class Arnavi4FrameDecoderTest extends ProtocolTest {
+
+ @Test
+ public void testDecodeValidPackets() throws Exception {
+
+ Arnavi4FrameDecoder decoder = new Arnavi4FrameDecoder();
+
+ Assert.assertEquals( // Valid HEADER v1 packet with IMEI
+ binary(ByteOrder.LITTLE_ENDIAN, "ff22f30c45f5c90f0300"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "ff22f30c45f5c90f0300")));
+
+ Assert.assertEquals( // Valid PACKAGE with one DATA packet
+ binary(ByteOrder.LITTLE_ENDIAN, "5b01012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa37010000295d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5b01012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa37010000295d")));
+
+ Assert.assertEquals( // Valid PACKAGE with two DATA packet
+ binary(ByteOrder.LITTLE_ENDIAN, "5b01012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa3701000029012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa37010000295d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5b01012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa3701000029012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa37010000295d")));
+
+ Assert.assertEquals( // Valid PACKAGE with one TEXT packet.
+ binary(ByteOrder.LITTLE_ENDIAN, "5b01030700e3f16b50747261636361721b5d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5b01030700e3f16b50747261636361721b5d")));
+
+ Assert.assertEquals( // Valid PACKAGE with two TEXT packet.
+ binary(ByteOrder.LITTLE_ENDIAN, "5b01030700e3f16b50747261636361721b030700e3f16b50747261636361721b5d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5b01030700e3f16b50747261636361721b030700e3f16b50747261636361721b5d")));
+
+ Assert.assertEquals( // Valid PACKAGE with one BINARY packet.
+ binary(ByteOrder.LITTLE_ENDIAN, "5b01061400e3f16b5003298b5e4204cbd514420500191000080400ff021b5d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5b01061400e3f16b5003298b5e4204cbd514420500191000080400ff021b5d")));
+
+ Assert.assertEquals( // Valid PACKAGE with two BINARY packet.
+ binary(ByteOrder.LITTLE_ENDIAN, "5b01061400e3f16b5003298b5e4204cbd514420500191000080400ff021b061400e3f16b5003298b5e4204cbd514420500191000080400ff021b5d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5b01061400e3f16b5003298b5e4204cbd514420500191000080400ff021b061400e3f16b5003298b5e4204cbd514420500191000080400ff021b5d")));
+
+ Assert.assertEquals( // Valid PACKAGE with answer to server on file transfer
+ binary(ByteOrder.LITTLE_ENDIAN, "5bfd005d"),
+ decoder.decode(null, null, binary(ByteOrder.LITTLE_ENDIAN, "5bfd005d")));
+
+ }
+
+} \ No newline at end of file
diff --git a/test/org/traccar/protocol/Arnavi4ProtocolDecoderTest.java b/test/org/traccar/protocol/Arnavi4ProtocolDecoderTest.java
new file mode 100644
index 000000000..d789b1c9c
--- /dev/null
+++ b/test/org/traccar/protocol/Arnavi4ProtocolDecoderTest.java
@@ -0,0 +1,40 @@
+package org.traccar.protocol;
+
+import org.junit.Test;
+import org.traccar.ProtocolTest;
+
+import java.nio.ByteOrder;
+
+public class Arnavi4ProtocolDecoderTest extends ProtocolTest {
+
+ @Test
+ public void testHeader1Decode() throws Exception {
+
+ Arnavi4ProtocolDecoder decoder;
+
+ decoder = new Arnavi4ProtocolDecoder(new Arnavi4Protocol());
+
+ verifyNull(decoder, binary(ByteOrder.LITTLE_ENDIAN, // Valid HEADER v1 packet with IMEI
+ "ff22f30c45f5c90f0300"));
+
+ verifyPositions(decoder, binary(ByteOrder.LITTLE_ENDIAN, // Valid PACKAGE packet with one DATA packet
+ "5b01012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa37010000295d"),
+ position("2017-07-07 05:09:55.000", true, 45.05597, 39.03347));
+ }
+
+ @Test
+ public void testHeader2Decode() throws Exception {
+
+ Arnavi4ProtocolDecoder decoder;
+
+ decoder = new Arnavi4ProtocolDecoder(new Arnavi4Protocol());
+
+ verifyNull(decoder, binary(ByteOrder.LITTLE_ENDIAN, // Valid HEADER v2 packet with IMEI
+ "ff23f30c45f5c90f0300"));
+
+ verifyPositions(decoder, binary(ByteOrder.LITTLE_ENDIAN, // Valid PACKAGE packet with two DATA packet
+ "5b01012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa3701000029012800a3175f5903513934420447221c42055402781E0900f0c5215b4e0084005c00007c005d0000a300fa37010000295d"),
+ position("2017-07-07 05:09:55.000", true, 45.05597, 39.03347));
+ }
+
+}