aboutsummaryrefslogtreecommitdiff
path: root/test/org/traccar/geocoder
diff options
context:
space:
mode:
Diffstat (limited to 'test/org/traccar/geocoder')
-rw-r--r--test/org/traccar/geocoder/AddressFormatTest.java32
-rw-r--r--test/org/traccar/geocoder/ReverseGeocoderTest.java114
2 files changed, 146 insertions, 0 deletions
diff --git a/test/org/traccar/geocoder/AddressFormatTest.java b/test/org/traccar/geocoder/AddressFormatTest.java
new file mode 100644
index 000000000..85bb44fd1
--- /dev/null
+++ b/test/org/traccar/geocoder/AddressFormatTest.java
@@ -0,0 +1,32 @@
+package org.traccar.geocoder;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class AddressFormatTest {
+
+ private void test(Address address, String format, String expected) {
+ Assert.assertEquals(expected, new AddressFormat(format).format(address));
+ }
+
+ @Test
+ public void testFormat() {
+
+ Address address = new Address();
+ address.setCountry("NZ");
+ address.setSettlement("Auckland");
+ address.setStreet("Queen St");
+ address.setHouse("1A");
+
+ test(address, "%h %r %t %d %s %c %p", "1A Queen St Auckland NZ");
+ test(address, "%h %r %t", "1A Queen St Auckland");
+ test(address, "%h %r, %t", "1A Queen St, Auckland");
+ test(address, "%h %r, %t %p", "1A Queen St, Auckland");
+ test(address, "%t %d %c", "Auckland NZ");
+ test(address, "%t, %d, %c", "Auckland, NZ");
+ test(address, "%d %c", "NZ");
+ test(address, "%d, %c", "NZ");
+ test(address, "%p", "");
+ }
+
+}
diff --git a/test/org/traccar/geocoder/ReverseGeocoderTest.java b/test/org/traccar/geocoder/ReverseGeocoderTest.java
new file mode 100644
index 000000000..73753c96c
--- /dev/null
+++ b/test/org/traccar/geocoder/ReverseGeocoderTest.java
@@ -0,0 +1,114 @@
+package org.traccar.geocoder;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ReverseGeocoderTest {
+
+ private boolean enable = false;
+
+ @Test
+ public void test() throws InterruptedException {
+ if (enable) {
+ testGeocodeFarm();
+ }
+ }
+
+ private String address;
+
+ private synchronized String waitAddress() {
+ try {
+ wait(5000);
+ return address;
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private synchronized void setAddress(String address) {
+ this.address = address;
+ notifyAll();
+ }
+
+ public void testGoogle() throws InterruptedException {
+ ReverseGeocoder reverseGeocoder = new GoogleReverseGeocoder();
+
+ reverseGeocoder.getAddress(new AddressFormat(), 37.4217550, -122.0846330, new ReverseGeocoder.ReverseGeocoderCallback() {
+ @Override
+ public void onSuccess(String address) {
+ setAddress(address);
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ }
+ });
+ Assert.assertEquals("1600 Amphitheatre Pkwy, Mountain View, CA, US", waitAddress());
+ }
+
+ public void testNominatim() throws InterruptedException {
+ ReverseGeocoder reverseGeocoder = new NominatimReverseGeocoder();
+
+ reverseGeocoder.getAddress(new AddressFormat(), 40.7337807, -73.9974401, new ReverseGeocoder.ReverseGeocoderCallback() {
+ @Override
+ public void onSuccess(String address) {
+ setAddress(address);
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ }
+ });
+ Assert.assertEquals("35 West 9th Street, NYC, New York, US", waitAddress());
+ }
+
+ public void testGisgraphy() throws InterruptedException {
+ ReverseGeocoder reverseGeocoder = new GisgraphyReverseGeocoder();
+
+ reverseGeocoder.getAddress(new AddressFormat(), 48.8530000, 2.3400000, new ReverseGeocoder.ReverseGeocoderCallback() {
+ @Override
+ public void onSuccess(String address) {
+ setAddress(address);
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ }
+ });
+ Assert.assertEquals("Rue du Jardinet, Paris, FR", waitAddress());
+ }
+
+ public void testOpenCage() throws InterruptedException {
+ ReverseGeocoder reverseGeocoder = new OpenCageReverseGeocoder(
+ "http://api.opencagedata.com/geocode/v1", "SECRET", 0);
+
+ reverseGeocoder.getAddress(new AddressFormat(), 34.116302, -118.051519, new ReverseGeocoder.ReverseGeocoderCallback() {
+ @Override
+ public void onSuccess(String address) {
+ setAddress(address);
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ }
+ });
+ Assert.assertEquals("Charleston Road, California, US", waitAddress());
+ }
+
+ public void testGeocodeFarm() throws InterruptedException {
+ ReverseGeocoder reverseGeocoder = new GeocodeFarmReverseGeocoder(0);
+
+ reverseGeocoder.getAddress(new AddressFormat(), 34.116302, -118.051519, new ReverseGeocoder.ReverseGeocoderCallback() {
+ @Override
+ public void onSuccess(String address) {
+ setAddress(address);
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ }
+ });
+ Assert.assertEquals("Estrella Avenue, Arcadia, California, United States", waitAddress());
+ }
+
+}