Skip to content

Commit 4170f93

Browse files
bleegezugaldia
authored andcommitted
Geocoding Observerable NullPointerException Fix (#52)
* #51 - Using getService() to ensure service object is created * #51 - Adding Observable test * #51 - Testing the GeocodingResponse Observable using RxJava's TestSubscriber * Fix MapboxDirections v4 too
1 parent c421591 commit 4170f93

3 files changed

Lines changed: 28 additions & 6 deletions

File tree

libjava/lib/src/main/java/com/mapbox/services/directions/v4/MapboxDirections.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public Observable<DirectionsResponse> getObservable() {
9999
// No need to recreate it
100100
if (observable != null) return observable;
101101

102-
observable = service.getObservable(
102+
observable = getService().getObservable(
103103
builder.profile,
104104
builder.getWaypoints(),
105105
builder.accessToken,

libjava/lib/src/main/java/com/mapbox/services/geocoding/v5/MapboxGeocoding.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import com.mapbox.services.commons.MapboxBuilder;
55
import com.mapbox.services.commons.MapboxService;
66
import com.mapbox.services.commons.ServicesException;
7-
import com.mapbox.services.geocoding.v5.models.GeocodingResponse;
87
import com.mapbox.services.commons.models.Position;
8+
import com.mapbox.services.geocoding.v5.models.GeocodingResponse;
99

1010
import java.io.IOException;
1111
import java.util.Locale;
@@ -94,7 +94,7 @@ public Observable<GeocodingResponse> getObservable() {
9494
// No need to recreate it
9595
if (observable != null) return observable;
9696

97-
observable = service.getObservable(
97+
observable = getService().getObservable(
9898
builder.getGeocodingDataset(),
9999
builder.getQuery(),
100100
builder.getAccessToken(),

libjava/lib/src/test/java/com/mapbox/services/geocoding/v5/MapboxGeocodingTest.java

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@
2323
import okhttp3.mockwebserver.MockResponse;
2424
import okhttp3.mockwebserver.MockWebServer;
2525
import retrofit2.Response;
26+
import rx.Observable;
27+
import rx.observers.TestSubscriber;
2628

2729
import static org.junit.Assert.assertEquals;
30+
import static org.junit.Assert.assertNotNull;
2831
import static org.junit.Assert.assertTrue;
2932

30-
/**
31-
* Created by antonio on 4/14/16.
32-
*/
3333
public class MapboxGeocodingTest {
3434

3535
private final static double DELTA = 1E-10;
@@ -143,4 +143,26 @@ public void testContext() throws ServicesException, IOException {
143143
assertEquals(contexts.get(4).getShortCode(), "us");
144144
}
145145

146+
@Test
147+
public void testObservable() throws ServicesException, IOException {
148+
MapboxGeocoding client = new MapboxGeocoding.Builder()
149+
.setAccessToken("pk.XXX")
150+
.setLocation("1600 pennsylvania ave nw")
151+
.build();
152+
client.setBaseUrl(mockUrl.toString());
153+
Observable<GeocodingResponse> geocodingResponseObservable = client.getObservable();
154+
assertNotNull(geocodingResponseObservable);
155+
156+
TestSubscriber<GeocodingResponse> testSubscriber = new TestSubscriber<>();
157+
geocodingResponseObservable.subscribe(testSubscriber);
158+
159+
testSubscriber.assertNoErrors();
160+
List<GeocodingResponse> responses = testSubscriber.getOnNextEvents();
161+
assertNotNull(responses);
162+
assertTrue("Geocoding Response Returned", responses.size() > 0);
163+
List<FeatureContext> contexts = responses.get(0).getFeatures().get(0).getContext();
164+
assertEquals(contexts.get(4).getId(), "country.12862386939497690");
165+
assertEquals(contexts.get(4).getText(), "United States");
166+
assertEquals(contexts.get(4).getShortCode(), "us");
167+
}
146168
}

0 commit comments

Comments
 (0)