aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/traccar/geofence
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-06-16 18:48:08 -0700
committerAnton Tananaev <anton@traccar.org>2022-06-16 18:48:08 -0700
commit15c4b6b21a31c63bc0f7e624e26d032d531c459d (patch)
tree524ca1dd9aca6ef0ea8db2910a16a3e227e8c1fb /src/test/java/org/traccar/geofence
parentee9abd94265eb704b5f5dd2262f1a3460bbe2a8f (diff)
downloadtrackermap-server-15c4b6b21a31c63bc0f7e624e26d032d531c459d.tar.gz
trackermap-server-15c4b6b21a31c63bc0f7e624e26d032d531c459d.tar.bz2
trackermap-server-15c4b6b21a31c63bc0f7e624e26d032d531c459d.zip
Refactor geofence classes
Diffstat (limited to 'src/test/java/org/traccar/geofence')
-rw-r--r--src/test/java/org/traccar/geofence/GeofenceCircleTest.java13
-rw-r--r--src/test/java/org/traccar/geofence/GeofencePolygonTest.java37
-rw-r--r--src/test/java/org/traccar/geofence/GeofencePolylineTest.java46
3 files changed, 50 insertions, 46 deletions
diff --git a/src/test/java/org/traccar/geofence/GeofenceCircleTest.java b/src/test/java/org/traccar/geofence/GeofenceCircleTest.java
index 038e4b6d6..9a02cec76 100644
--- a/src/test/java/org/traccar/geofence/GeofenceCircleTest.java
+++ b/src/test/java/org/traccar/geofence/GeofenceCircleTest.java
@@ -5,6 +5,7 @@ import org.junit.Test;
import java.text.ParseException;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class GeofenceCircleTest {
@@ -12,17 +13,15 @@ public class GeofenceCircleTest {
@Test
public void testCircleWkt() throws ParseException {
String test = "CIRCLE (55.75414 37.6204, 100)";
- GeofenceGeometry geofenceGeometry = new GeofenceCircle();
- geofenceGeometry.fromWkt(test);
+ GeofenceGeometry geofenceGeometry = new GeofenceCircle(test);
assertEquals(geofenceGeometry.toWkt(), test);
}
@Test
public void testContainsCircle() throws ParseException {
- String test = "CIRCLE (55.75414 37.6204, 100)";
- GeofenceGeometry geofenceGeometry = new GeofenceCircle();
- geofenceGeometry.fromWkt(test);
- assertTrue(geofenceGeometry.containsPoint(55.75477, 37.62025));
- assertTrue(!geofenceGeometry.containsPoint(55.75545, 37.61921));
+ GeofenceGeometry geofenceGeometry = new GeofenceCircle("CIRCLE (55.75414 37.6204, 100)");
+ assertTrue(geofenceGeometry.containsPoint(null, null, 55.75477, 37.62025));
+ assertFalse(geofenceGeometry.containsPoint(null, null, 55.75545, 37.61921));
}
+
}
diff --git a/src/test/java/org/traccar/geofence/GeofencePolygonTest.java b/src/test/java/org/traccar/geofence/GeofencePolygonTest.java
index 1b8de68ad..5baecd771 100644
--- a/src/test/java/org/traccar/geofence/GeofencePolygonTest.java
+++ b/src/test/java/org/traccar/geofence/GeofencePolygonTest.java
@@ -19,41 +19,34 @@ public class GeofencePolygonTest {
@Test
public void testPolygonWkt() throws ParseException {
String test = "POLYGON ((55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165))";
- GeofenceGeometry geofenceGeometry = new GeofencePolygon();
- geofenceGeometry.fromWkt(test);
+ GeofenceGeometry geofenceGeometry = new GeofencePolygon(test);
assertEquals(geofenceGeometry.toWkt(), test);
}
@Test
public void testContainsPolygon() throws ParseException {
- String test = "POLYGON ((55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165))";
- GeofenceGeometry geofenceGeometry = new GeofencePolygon();
- geofenceGeometry.fromWkt(test);
- assertTrue(geofenceGeometry.containsPoint(55.75476, 37.61915));
- assertFalse(geofenceGeometry.containsPoint(55.75545, 37.61921));
-
+ GeofenceGeometry geofenceGeometry = new GeofencePolygon(
+ "POLYGON ((55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165))");
+ assertTrue(geofenceGeometry.containsPoint(null, null, 55.75476, 37.61915));
+ assertFalse(geofenceGeometry.containsPoint(null, null, 55.75545, 37.61921));
}
@Test
public void testContainsPolygon180() throws ParseException {
- String test = "POLYGON ((66.9494 179.838, 66.9508 -179.8496, 66.8406 -180.0014))";
- GeofenceGeometry geofenceGeometry = new GeofencePolygon();
- geofenceGeometry.fromWkt(test);
- assertTrue(geofenceGeometry.containsPoint(66.9015, -180.0096));
- assertTrue(geofenceGeometry.containsPoint(66.9015, 179.991));
- assertFalse(geofenceGeometry.containsPoint(66.8368, -179.8792));
-
+ GeofenceGeometry geofenceGeometry = new GeofencePolygon(
+ "POLYGON ((66.9494 179.838, 66.9508 -179.8496, 66.8406 -180.0014))");
+ assertTrue(geofenceGeometry.containsPoint(null, null, 66.9015, -180.0096));
+ assertTrue(geofenceGeometry.containsPoint(null, null, 66.9015, 179.991));
+ assertFalse(geofenceGeometry.containsPoint(null, null, 66.8368, -179.8792));
}
@Test
public void testContainsPolygon0() throws ParseException {
- String test = "POLYGON ((51.1966 -0.6207, 51.1897 0.4147, 50.9377 0.5136, 50.8675 -0.6082))";
- GeofenceGeometry geofenceGeometry = new GeofencePolygon();
- geofenceGeometry.fromWkt(test);
- assertTrue(geofenceGeometry.containsPoint(51.0466, -0.0165));
- assertTrue(geofenceGeometry.containsPoint(51.0466, 0.018));
- assertFalse(geofenceGeometry.containsPoint(50.9477, 0.5836));
-
+ GeofenceGeometry geofenceGeometry = new GeofencePolygon(
+ "POLYGON ((51.1966 -0.6207, 51.1897 0.4147, 50.9377 0.5136, 50.8675 -0.6082))");
+ assertTrue(geofenceGeometry.containsPoint(null, null, 51.0466, -0.0165));
+ assertTrue(geofenceGeometry.containsPoint(null, null, 51.0466, 0.018));
+ assertFalse(geofenceGeometry.containsPoint(null, null, 50.9477, 0.5836));
}
}
diff --git a/src/test/java/org/traccar/geofence/GeofencePolylineTest.java b/src/test/java/org/traccar/geofence/GeofencePolylineTest.java
index 0e8905319..b7ee14510 100644
--- a/src/test/java/org/traccar/geofence/GeofencePolylineTest.java
+++ b/src/test/java/org/traccar/geofence/GeofencePolylineTest.java
@@ -1,47 +1,59 @@
package org.traccar.geofence;
import org.junit.Test;
+import org.traccar.config.Config;
+import org.traccar.config.Keys;
+import org.traccar.model.Geofence;
import java.text.ParseException;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
public class GeofencePolylineTest {
@Test
public void testPolylineWkt() throws ParseException {
String test = "LINESTRING (55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165)";
- GeofenceGeometry geofenceGeometry = new GeofencePolyline();
- geofenceGeometry.fromWkt(test);
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline(test);
assertEquals(geofenceGeometry.toWkt(), test);
}
@Test
public void testContainsPolyline1Interval() throws ParseException {
- String test = "LINESTRING (56.83777 60.59833, 56.83766 60.5968)";
- GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 35);
- assertTrue(geofenceGeometry.containsPoint(56.83801, 60.59748));
- ((GeofencePolyline) geofenceGeometry).setDistance(15);
- assertTrue(!geofenceGeometry.containsPoint(56.83801, 60.59748));
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline(
+ "LINESTRING (56.83777 60.59833, 56.83766 60.5968)");
+ Config config = mock(Config.class);
+ when(config.getDouble(Keys.GEOFENCE_POLYLINE_DISTANCE)).thenReturn(35.0);
+ assertTrue(geofenceGeometry.containsPoint(config, mock(Geofence.class), 56.83801, 60.59748));
+ when(config.getDouble(Keys.GEOFENCE_POLYLINE_DISTANCE)).thenReturn(15.0);
+ assertFalse(geofenceGeometry.containsPoint(config, mock(Geofence.class), 56.83801, 60.59748));
}
@Test
public void testContainsPolyline3Intervals() throws ParseException {
- String test = "LINESTRING (56.836 60.6126, 56.8393 60.6114, 56.83887 60.60811, 56.83782 60.5988)";
- GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 15);
- assertTrue(geofenceGeometry.containsPoint(56.83847, 60.60458));
- assertTrue(!geofenceGeometry.containsPoint(56.83764, 60.59725));
- assertTrue(!geofenceGeometry.containsPoint(56.83861, 60.60822));
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline(
+ "LINESTRING (56.836 60.6126, 56.8393 60.6114, 56.83887 60.60811, 56.83782 60.5988)");
+ Config config = mock(Config.class);
+ when(config.getDouble(Keys.GEOFENCE_POLYLINE_DISTANCE)).thenReturn(15.0);
+ assertTrue(geofenceGeometry.containsPoint(config, mock(Geofence.class), 56.83847, 60.60458));
+ assertFalse(geofenceGeometry.containsPoint(config, mock(Geofence.class), 56.83764, 60.59725));
+ assertFalse(geofenceGeometry.containsPoint(config, mock(Geofence.class), 56.83861, 60.60822));
}
@Test
public void testContainsPolylineNear180() throws ParseException {
- String test = "LINESTRING (66.9494 179.838, 66.9508 -179.8496)";
- GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 25);
- assertTrue(geofenceGeometry.containsPoint(66.95, 180.0));
- assertTrue(!geofenceGeometry.containsPoint(66.96, 180.0));
- assertTrue(!geofenceGeometry.containsPoint(66.9509, -179.83));
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline(
+ "LINESTRING (66.9494 179.838, 66.9508 -179.8496)");
+ Config config = mock(Config.class);
+ when(config.getDouble(Keys.GEOFENCE_POLYLINE_DISTANCE)).thenReturn(25.0);
+ assertTrue(geofenceGeometry.containsPoint(config, mock(Geofence.class), 66.95, 180.0));
+ assertFalse(geofenceGeometry.containsPoint(config, mock(Geofence.class), 66.96, 180.0));
+ assertFalse(geofenceGeometry.containsPoint(config, mock(Geofence.class), 66.9509, -179.83));
}
+
}