diff options
-rw-r--r-- | test/org/traccar/ProtocolDecoderTest.java | 135 |
1 files changed, 62 insertions, 73 deletions
diff --git a/test/org/traccar/ProtocolDecoderTest.java b/test/org/traccar/ProtocolDecoderTest.java index 133b0229f..a142f2d4d 100644 --- a/test/org/traccar/ProtocolDecoderTest.java +++ b/test/org/traccar/ProtocolDecoderTest.java @@ -45,46 +45,6 @@ public class ProtocolDecoderTest { }); } - protected void verifyNothing(BaseProtocolDecoder decoder, Object object) throws Exception { - Assert.assertNull(decoder.decode(null, null, object)); - } - - protected void verifyAttributes(BaseProtocolDecoder decoder, Object object) throws Exception { - Object decodedObject = decoder.decode(null, null, object); - Assert.assertNotNull("position is null", decodedObject); - Assert.assertTrue("not a position", decodedObject instanceof Position); - Position position = (Position) decodedObject; - Assert.assertFalse("no attributes", position.getAttributes().isEmpty()); - } - - protected void verifyPosition(BaseProtocolDecoder decoder, Object object) throws Exception { - verifyDecodedPosition(decoder.decode(null, null, object)); - } - - protected void verifyPosition(BaseProtocolDecoder decoder, Object object, Position position) throws Exception { - verifyDecodedPosition(decoder.decode(null, null, object), position); - } - - protected void verifyPositions(BaseProtocolDecoder decoder, Object object) throws Exception { - Object decodedObject = decoder.decode(null, null, object); - Assert.assertNotNull("list is null", decodedObject); - Assert.assertTrue("not a list", decodedObject instanceof List); - Assert.assertFalse("list if empty", ((List) decodedObject).isEmpty()); - for (Object item : (List) decodedObject) { - verifyDecodedPosition(item); - } - } - - protected void verifyPositions(BaseProtocolDecoder decoder, Object object, Position position) throws Exception { - Object decodedObject = decoder.decode(null, null, object); - Assert.assertNotNull("list is null", decodedObject); - Assert.assertTrue("not a list", decodedObject instanceof List); - Assert.assertFalse("list if empty", ((List) decodedObject).isEmpty()); - for (Object item : (List) decodedObject) { - verifyDecodedPosition(item, position); - } - } - protected Position position(String time, boolean valid, double lat, double lon) throws ParseException { Position position = new Position(); @@ -140,61 +100,90 @@ public class ProtocolDecoderTest { return request; } - private void verifyDecodedPosition(Object decodedObject, Position expected) { + protected void verifyNothing(BaseProtocolDecoder decoder, Object object) throws Exception { + Assert.assertNull(decoder.decode(null, null, object)); + } + + protected void verifyAttributes(BaseProtocolDecoder decoder, Object object) throws Exception { + verifyDecodedPosition(decoder.decode(null, null, object), false, true, null); + } - Assert.assertNotNull("position is null", decodedObject); - Assert.assertTrue("not a position", decodedObject instanceof Position); + protected void verifyPosition(BaseProtocolDecoder decoder, Object object) throws Exception { + verifyDecodedPosition(decoder.decode(null, null, object), true, false, null); + } - Position position = (Position) decodedObject; + protected void verifyPosition(BaseProtocolDecoder decoder, Object object, Position position) throws Exception { + verifyDecodedPosition(decoder.decode(null, null, object), true, false, position); + } - if (expected.getFixTime() != null) { - Assert.assertEquals("time", expected.getFixTime(), position.getFixTime()); - } - Assert.assertEquals("valid", expected.getValid(), position.getValid()); - Assert.assertEquals("latitude", expected.getLatitude(), position.getLatitude(), 0.00001); - Assert.assertEquals("longitude", expected.getLongitude(), position.getLongitude(), 0.00001); + protected void verifyPositions(BaseProtocolDecoder decoder, Object object) throws Exception { + verifyDecodedList(decoder.decode(null, null, object), null); + } - Assert.assertTrue("altitude >= -12262", position.getAltitude() >= -12262); - Assert.assertTrue("altitude <= 18000", position.getAltitude() <= 18000); + protected void verifyPositions(BaseProtocolDecoder decoder, Object object, Position position) throws Exception { + verifyDecodedList(decoder.decode(null, null, object), position); + } - Assert.assertTrue("speed >= 0", position.getSpeed() >= 0); - Assert.assertTrue("speed <= 869", position.getSpeed() <= 869); + private void verifyDecodedList(Object decodedObject, Position expected) { - Assert.assertTrue("course >= 0", position.getCourse() >= 0); - Assert.assertTrue("course <= 360", position.getCourse() <= 360); + Assert.assertNotNull("list is null", decodedObject); + Assert.assertTrue("not a list", decodedObject instanceof List); + Assert.assertFalse("list if empty", ((List) decodedObject).isEmpty()); - Assert.assertNotNull("protocol is null", position.getProtocol()); + for (Object item : (List) decodedObject) { + verifyDecodedPosition(item, true, false, expected); + } } - private void verifyDecodedPosition(Object decodedObject) { + private void verifyDecodedPosition(Object decodedObject, boolean checkLocation, boolean checkAttributes, Position expected) { Assert.assertNotNull("position is null", decodedObject); Assert.assertTrue("not a position", decodedObject instanceof Position); Position position = (Position) decodedObject; - Assert.assertNotNull(position.getFixTime()); - Assert.assertTrue("year > 2000", position.getFixTime().after(new Date(946684800000L))); - Assert.assertTrue("time < +25 hours", - position.getFixTime().getTime() < System.currentTimeMillis() + 25 * 3600000); + if (checkLocation) { + + if (expected != null) { + + if (expected.getFixTime() != null) { + Assert.assertEquals("time", expected.getFixTime(), position.getFixTime()); + } + Assert.assertEquals("valid", expected.getValid(), position.getValid()); + Assert.assertEquals("latitude", expected.getLatitude(), position.getLatitude(), 0.00001); + Assert.assertEquals("longitude", expected.getLongitude(), position.getLongitude(), 0.00001); + + } else { - Assert.assertTrue("latitude >= -90", position.getLatitude() >= -90); - Assert.assertTrue("latitude <= 90", position.getLatitude() <= 90); + Assert.assertNotNull(position.getFixTime()); + Assert.assertTrue("year > 2000", position.getFixTime().after(new Date(946684800000L))); + Assert.assertTrue("time < +25 hours", + position.getFixTime().getTime() < System.currentTimeMillis() + 25 * 3600000); - Assert.assertTrue("longitude >= -180", position.getLongitude() >= -180); - Assert.assertTrue("longitude <= 180", position.getLongitude() <= 180); + Assert.assertTrue("latitude >= -90", position.getLatitude() >= -90); + Assert.assertTrue("latitude <= 90", position.getLatitude() <= 90); - Assert.assertTrue("altitude >= -12262", position.getAltitude() >= -12262); - Assert.assertTrue("altitude <= 18000", position.getAltitude() <= 18000); + } + + Assert.assertTrue("altitude >= -12262", position.getAltitude() >= -12262); + Assert.assertTrue("altitude <= 18000", position.getAltitude() <= 18000); + + Assert.assertTrue("speed >= 0", position.getSpeed() >= 0); + Assert.assertTrue("speed <= 869", position.getSpeed() <= 869); + + Assert.assertTrue("course >= 0", position.getCourse() >= 0); + Assert.assertTrue("course <= 360", position.getCourse() <= 360); - Assert.assertTrue("speed >= 0", position.getSpeed() >= 0); - Assert.assertTrue("speed <= 869", position.getSpeed() <= 869); + Assert.assertNotNull("protocol is null", position.getProtocol()); - Assert.assertTrue("course >= 0", position.getCourse() >= 0); - Assert.assertTrue("course <= 360", position.getCourse() <= 360); + } + + if (checkAttributes) { - Assert.assertNotNull("protocol is null", position.getProtocol()); + Assert.assertFalse("no attributes", position.getAttributes().isEmpty()); + + } } |