diff options
-rw-r--r-- | src/org/traccar/helper/DateBuilder.java | 1 | ||||
-rw-r--r-- | src/org/traccar/protocol/Gt06ProtocolDecoder.java | 2 | ||||
-rw-r--r-- | test/org/traccar/ProtocolDecoderTest.java | 8 | ||||
-rw-r--r-- | test/org/traccar/helper/DateBuilderTest.java | 26 | ||||
-rw-r--r-- | test/org/traccar/protocol/Gt06ProtocolDecoderTest.java | 31 |
5 files changed, 46 insertions, 22 deletions
diff --git a/src/org/traccar/helper/DateBuilder.java b/src/org/traccar/helper/DateBuilder.java index 5d2ee8e0a..094dfff16 100644 --- a/src/org/traccar/helper/DateBuilder.java +++ b/src/org/traccar/helper/DateBuilder.java @@ -31,6 +31,7 @@ public class DateBuilder { public DateBuilder(TimeZone timeZone) { calendar = Calendar.getInstance(timeZone); calendar.clear(); + calendar.setTimeInMillis(0); } public DateBuilder setYear(int year) { diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java index 50683d94e..632e71a8f 100644 --- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -193,7 +193,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { offset = -offset; } if (!forceTimeZone) { - timeZone.setRawOffset(offset); + timeZone.setRawOffset(offset * 1000); } } diff --git a/test/org/traccar/ProtocolDecoderTest.java b/test/org/traccar/ProtocolDecoderTest.java index f58de880a..03e8314d6 100644 --- a/test/org/traccar/ProtocolDecoderTest.java +++ b/test/org/traccar/ProtocolDecoderTest.java @@ -79,7 +79,8 @@ public class ProtocolDecoderTest { Position position = new Position(); if (time != null) { - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); position.setTime(dateFormat.parse(time)); } position.setValid(valid); @@ -136,10 +137,7 @@ public class ProtocolDecoderTest { Position position = (Position) decodedObject; if (expected.getFixTime() != null) { - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); - Assert.assertEquals("time", - dateFormat.format(expected.getFixTime()), dateFormat.format(position.getFixTime())); + Assert.assertEquals("time", expected.getFixTime(), position.getFixTime()); } Assert.assertEquals("valid", expected.getValid(), position.getValid()); Assert.assertEquals("latitude", expected.getLatitude(), position.getLatitude(), 0.00001); diff --git a/test/org/traccar/helper/DateBuilderTest.java b/test/org/traccar/helper/DateBuilderTest.java new file mode 100644 index 000000000..8e474e059 --- /dev/null +++ b/test/org/traccar/helper/DateBuilderTest.java @@ -0,0 +1,26 @@ +package org.traccar.helper; + +import org.junit.Assert; +import org.junit.Test; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.TimeZone; + +public class DateBuilderTest { + + @Test + public void testDateBuilder() throws ParseException { + + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + + DateBuilder dateBuilder = new DateBuilder() + .setDate(2015, 10, 20).setTime(01, 21, 11); + + Assert.assertEquals(dateFormat.parse("2015-10-20 01:21:11"), dateBuilder.getDate()); + + } + +} diff --git a/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java b/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java index 8825b67f0..0de82db32 100644 --- a/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java @@ -11,14 +11,20 @@ public class Gt06ProtocolDecoderTest extends ProtocolDecoderTest { Gt06ProtocolDecoder decoder = new Gt06ProtocolDecoder(new Gt06Protocol()); verifyNothing(decoder, binary( - "787811010123456789012345100B3201000171930D0A")); + "78780D01086471700328358100093F040D0A")); + + verifyNothing(decoder, binary( + "78780D01012345678901234500018CDD0D0A")); + + verifyNothing(decoder, binary( + "78780d0103534190360660610003c3df0d0a")); verifyAttributes(decoder, binary( "78780a13440604000201baaf540d0a")); verifyPosition(decoder, binary( - "78781f120f0a140e150bc505e51e780293a9e800540000f601006e0055da00035f240d0a")/*, - position("2015-10-20 14:21:11", true, 54.94535, 24.01762)*/); + "78781f120f0a140e150bc505e51e780293a9e800540000f601006e0055da00035f240d0a"), + position("2015-10-20 14:21:11.000", true, 54.94535, 24.01762)); verifyPosition(decoder, binary( "787823120f081b121d37cb01c8e2cc08afd3c020d50201940701d600a1190041ee100576d1470d0a")); @@ -26,15 +32,6 @@ public class Gt06ProtocolDecoderTest extends ProtocolDecoderTest { verifyPosition(decoder, binary( "78781F120B081D112E10CC027AC7EB0C46584900148F01CC00287D001FB8000380810D0A")); - verifyNothing(decoder, binary( - "78780D01086471700328358100093F040D0A")); - - verifyNothing(decoder, binary( - "78780D01012345678901234500018CDD0D0A")); - - verifyNothing(decoder, binary( - "78780d0103534190360660610003c3df0d0a")); - verifyPosition(decoder, binary( "787819100B031A0B1B31CC027AC7FD0C4657BF0115210001001CC6070D0A")); @@ -43,10 +40,6 @@ public class Gt06ProtocolDecoderTest extends ProtocolDecoderTest { verifyPosition(decoder, binary( "787825160B051B093523CF027AC8360C4657B30014000901CC00266A001E1740050400020008D7B10D0A")); - // 12345678901234567890123456789012345678901234567890123456789012345678901234567890 - - verifyNothing(decoder, binary( - "787811010864717003664467100f190a0002c6d20d0a")); verifyPosition(decoder, binary( "787819100e010903230ec803ae32a60653cded00180000020072feb70d0a")); @@ -63,6 +56,12 @@ public class Gt06ProtocolDecoderTest extends ProtocolDecoderTest { verifyPosition(decoder, binary( "787822220e0914160f07c9021a362805090a7800d8b802d402c30e00a98a0105010213f4bb0d0a")); + verifyNothing(decoder, binary( + "787811010864717003664467100f190a0002c6d20d0a")); + + verifyNothing(decoder, binary( + "787811010123456789012345100B3201000171930D0A")); + } } |