diff options
Diffstat (limited to 'test/org/traccar/geocoder')
-rw-r--r-- | test/org/traccar/geocoder/AddressFormatTest.java | 32 | ||||
-rw-r--r-- | test/org/traccar/geocoder/ReverseGeocoderTest.java | 114 |
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()); + } + +} |