From 655d7cba4a63db2058d08f04fe5a7cdcb4067017 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 13 Mar 2016 23:58:47 +1300 Subject: Improve OpenCage reverse decoder --- test/org/traccar/geocode/ReverseGeocoderTest.java | 48 ++++++++++++++++++----- 1 file changed, 39 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/org/traccar/geocode/ReverseGeocoderTest.java b/test/org/traccar/geocode/ReverseGeocoderTest.java index a572b0456..ada0afbbe 100644 --- a/test/org/traccar/geocode/ReverseGeocoderTest.java +++ b/test/org/traccar/geocode/ReverseGeocoderTest.java @@ -8,45 +8,75 @@ public class ReverseGeocoderTest { private boolean enable = false; @Test - public void test() { + public void test() throws InterruptedException { if (enable) { testGoogle(); - testNominatim(); - testGisgraphy(); } } - public void testGoogle() { + 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 onResult(String address) { - Assert.assertEquals("1600 Amphitheatre Pkwy, Mountain View, CA, US", address); + setAddress(address); } }); + Assert.assertEquals("1600 Amphitheatre Pkwy, Mountain View, CA, US", waitAddress()); } - public void testNominatim() { + public void testNominatim() throws InterruptedException { ReverseGeocoder reverseGeocoder = new NominatimReverseGeocoder(); reverseGeocoder.getAddress(new AddressFormat(), 40.7337807, -73.9974401, new ReverseGeocoder.ReverseGeocoderCallback() { @Override public void onResult(String address) { - Assert.assertEquals("35 West 9th Street, NYC, New York, US", address); + setAddress(address); } }); + Assert.assertEquals("35 West 9th Street, NYC, New York, US", waitAddress()); } - public void testGisgraphy() { + public void testGisgraphy() throws InterruptedException { ReverseGeocoder reverseGeocoder = new GisgraphyReverseGeocoder(); reverseGeocoder.getAddress(new AddressFormat(), 48.8530000, 2.3400000, new ReverseGeocoder.ReverseGeocoderCallback() { @Override public void onResult(String address) { - Assert.assertEquals("Rue du Jardinet, Paris, FR", address); + setAddress(address); + } + }); + 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 onResult(String address) { + setAddress(address); } }); + Assert.assertEquals("Charleston Road, California, US", waitAddress()); } } -- cgit v1.2.3