Skip to content

Commit 30f6cb8

Browse files
authored
RouteLegRefresh: added incidents (#1421)
* RouteLegRefresh: added incidents
1 parent dba2249 commit 30f6cb8

8 files changed

Lines changed: 4848 additions & 8 deletions

File tree

services-directions-models/src/main/java/com/mapbox/api/directions/v5/models/RouteLeg.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public static Builder builder() {
119119
/**
120120
* A list of closures that occur on this leg.
121121
*
122-
* @return a list of {@link Incident}
122+
* @return a list of {@link Closure}
123123
*/
124124
@Nullable
125125
public abstract List<Closure> closures();

services-directions-refresh-models/src/main/java/com/mapbox/api/directionsrefresh/v1/models/RouteLegRefresh.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package com.mapbox.api.directionsrefresh.v1.models;
22

3+
import androidx.annotation.NonNull;
34
import androidx.annotation.Nullable;
45
import com.google.auto.value.AutoValue;
56
import com.google.gson.Gson;
67
import com.google.gson.GsonBuilder;
78
import com.google.gson.TypeAdapter;
89
import com.mapbox.api.directions.v5.DirectionsAdapterFactory;
910
import com.mapbox.api.directions.v5.models.DirectionsWaypoint;
11+
import com.mapbox.api.directions.v5.models.Incident;
1012
import com.mapbox.api.directions.v5.models.LegAnnotation;
1113
import com.mapbox.api.directionsrefresh.v1.DirectionsRefreshAdapterFactory;
1214

15+
import java.util.List;
16+
1317
/**
1418
* A route refresh data between only two {@link DirectionsWaypoint}.
1519
*/
@@ -25,6 +29,14 @@ public static Builder builder() {
2529
return new AutoValue_RouteLegRefresh.Builder();
2630
}
2731

32+
/**
33+
* A list of incidents that occur on this leg.
34+
*
35+
* @return a list of {@link Incident}
36+
*/
37+
@Nullable
38+
public abstract List<Incident> incidents();
39+
2840
/**
2941
* A {@link LegAnnotation} that contains additional details about each line segment along the
3042
* route geometry. If you'd like to receiving this, you must request it inside your Directions
@@ -76,6 +88,15 @@ public static RouteLegRefresh fromJson(String json) {
7688
@AutoValue.Builder
7789
public abstract static class Builder {
7890

91+
/**
92+
* A list of incidents that occur on this leg.
93+
*
94+
* @param incidents a list of {@link Incident}
95+
* @return this builder for chaining options together
96+
*/
97+
@NonNull
98+
public abstract Builder incidents(@Nullable List<Incident> incidents);
99+
79100
/**
80101
* A {@link LegAnnotation} that contains additional details about each line segment along the
81102
* route geometry. If you'd like to receiving this, you must request it inside your Directions
@@ -84,6 +105,7 @@ public abstract static class Builder {
84105
* @param annotation a {@link LegAnnotation} object
85106
* @return this builder for chaining options together
86107
*/
108+
@NonNull
87109
public abstract Builder annotation(@Nullable LegAnnotation annotation);
88110

89111
/**

services-directions-refresh-models/src/test/java/com.mapbox.api.directionsrefresh.v1.models/DirectionsRefreshResponseTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public void testSerialization() throws IOException {
3737
assertNotNull(directionsRefreshResponse.route().legs().get(0));
3838
assertNotNull(directionsRefreshResponse.route().legs().get(0).annotation());
3939
assertTrue(directionsRefreshResponse.route().legs().get(0).annotation().congestion().size() > 0);
40+
assertTrue(directionsRefreshResponse.route().legs().get(0).incidents().size() > 0);
4041
}
4142

4243
@Test

services-directions-refresh-models/src/test/java/com.mapbox.api.directionsrefresh.v1.models/DirectionsRouteRefreshTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import static org.junit.Assert.assertEquals;
1111
import static org.junit.Assert.assertNotNull;
1212
import static org.junit.Assert.assertNull;
13+
import static org.junit.Assert.assertTrue;
1314

1415
public class DirectionsRouteRefreshTest extends TestUtils {
1516

@@ -32,6 +33,8 @@ public void testSerialization() throws IOException {
3233
assertNotNull(directionsRouteRefresh.legs());
3334
assertNotNull(directionsRouteRefresh.legs().get(0).annotation());
3435
assertNotNull(directionsRouteRefresh.legs().get(0).annotation().congestion());
36+
assertNotNull(directionsRouteRefresh.legs().get(0).incidents());
37+
assertTrue(directionsRouteRefresh.legs().get(0).incidents().size() > 0);
3538
}
3639

3740
@Test
@@ -46,6 +49,7 @@ public void testSerializationFirstLegPassed() throws IOException {
4649
assertNull(directionsRouteRefresh.legs().get(0).annotation().duration());
4750
assertNull(directionsRouteRefresh.legs().get(0).annotation().maxspeed());
4851
assertNull(directionsRouteRefresh.legs().get(0).annotation().speed());
52+
assertNull(directionsRouteRefresh.legs().get(0).incidents());
4953
}
5054

5155
@Test

services-directions-refresh-models/src/test/java/com.mapbox.api.directionsrefresh.v1.models/RouteLegRefreshTest.java

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
package com.mapbox.api.directionsrefresh.v1.models;
22

3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertNotNull;
5+
6+
import com.mapbox.api.directions.v5.models.Congestion;
7+
import com.mapbox.api.directions.v5.models.Incident;
38
import com.mapbox.api.directions.v5.models.LegAnnotation;
49
import com.mapbox.api.directions.v5.models.MaxSpeed;
510
import com.mapbox.api.directions.v5.models.SpeedLimit;
611
import com.mapbox.core.TestUtils;
12+
13+
import org.junit.Test;
14+
715
import java.util.Arrays;
816
import java.util.Collections;
917
import java.util.List;
10-
import org.junit.Test;
11-
12-
import static org.junit.Assert.assertEquals;
13-
import static org.junit.Assert.assertNotNull;
1418

1519
public class RouteLegRefreshTest extends TestUtils {
1620

@@ -26,6 +30,13 @@ public void sanity() {
2630
.duration(Collections.<Double>emptyList())
2731
.build()
2832
)
33+
.incidents(
34+
Arrays.asList(
35+
Incident.builder()
36+
.id("incident_id")
37+
.build()
38+
)
39+
)
2940
.build();
3041
}
3142

@@ -59,6 +70,38 @@ public void fromJson() {
5970
0.1,
6071
10.2
6172
);
73+
74+
List<Incident> incidents = Arrays.asList(
75+
Incident.builder()
76+
.id("incident_1")
77+
.creationTime("creation_time")
78+
.closed(true)
79+
.congestion(
80+
Congestion.builder()
81+
.value(80)
82+
.build()
83+
)
84+
.alertcCodes(Arrays.asList(1, 2, 5))
85+
.countryCodeAlpha3("USA")
86+
.countryCodeAlpha2("US")
87+
.startTime("start_time")
88+
.endTime("end_time")
89+
.geometryIndexStart(4)
90+
.geometryIndexEnd(50)
91+
.impact(Incident.IMPACT_MAJOR)
92+
.numLanesBlocked(2)
93+
.description("somedescription")
94+
.type(Incident.INCIDENT_OTHER_NEWS)
95+
.subType("subType")
96+
.subTypeDescription("someSubTypeDescription")
97+
.lanesBlocked(Arrays.asList("lane_blocked_1"))
98+
.build(),
99+
Incident.builder()
100+
.id("incident_2")
101+
.type(Incident.INCIDENT_ACCIDENT)
102+
.build()
103+
);
104+
62105
RouteLegRefresh routeLegRefresh = RouteLegRefresh.builder()
63106
.annotation(
64107
LegAnnotation.builder()
@@ -69,12 +112,14 @@ public void fromJson() {
69112
.speed(speeds)
70113
.build()
71114
)
115+
.incidents(incidents)
72116
.build();
73117

74118
String json = routeLegRefresh.toJson();
75119
RouteLegRefresh fromJson = RouteLegRefresh.fromJson(json);
76120

77121
assertNotNull(routeLegRefresh.annotation());
122+
assertNotNull(routeLegRefresh.incidents());
78123
assertEquals(routeLegRefresh, fromJson);
79124
}
80125

0 commit comments

Comments
 (0)