Skip to content

Commit 8f5f900

Browse files
authored
feat: modified MissingPickupDropOffBookingRuleIdNotice logic (#2001)
* modified MissingPickupDropOffBookingRuleIdNotice logic
1 parent 65cb9a9 commit 8f5f900

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

main/src/main/java/org/mobilitydata/gtfsvalidator/validator/PickupBookingRuleIdValidator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public PickupBookingRuleIdValidator(
2525
public void validate(GtfsStopTime entity, NoticeContainer noticeContainer) {
2626
if (entity.hasPickupType()
2727
&& entity.pickupType() == GtfsPickupDropOff.MUST_PHONE
28+
&& entity.hasStartPickupDropOffWindow()
2829
&& !entity.hasPickupBookingRuleId()) {
2930
noticeContainer.addValidationNotice(
3031
new MissingPickupDropOffBookingRuleIdNotice(
@@ -34,6 +35,7 @@ public void validate(GtfsStopTime entity, NoticeContainer noticeContainer) {
3435
}
3536
if (entity.hasDropOffType()
3637
&& entity.dropOffType() == GtfsPickupDropOff.MUST_PHONE
38+
&& entity.hasEndPickupDropOffWindow()
3739
&& !entity.hasDropOffBookingRuleId()) {
3840
noticeContainer.addValidationNotice(
3941
new MissingPickupDropOffBookingRuleIdNotice(
@@ -61,8 +63,12 @@ public boolean shouldCallValidate() {
6163
}
6264

6365
/**
64-
* `pickup_booking_rule_id` is recommended when `pickup_type=2` and `drop_off_booking_rule_id` is
65-
* recommended when `drop_off_type=2`
66+
* pickup_booking_rule_id is recommended when pickup_type=2 and drop_off_booking_rule_id is
67+
* recommended when drop_off_type=2.
68+
*
69+
* <p>Currently, this notice is only triggered on feeds when either start_pickup_drop_off_window
70+
* or end_pickup_drop_off_window is defined, since this recommendation was added to the
71+
* specification for feeds with GTFS-Flex.
6672
*/
6773
@GtfsValidationNotice(
6874
severity = SeverityLevel.WARNING,

main/src/test/java/org/mobilitydata/gtfsvalidator/validator/PickupBookingRuleIdValidatorTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.mobilitydata.gtfsvalidator.notice.ValidationNotice;
1111
import org.mobilitydata.gtfsvalidator.table.GtfsPickupDropOff;
1212
import org.mobilitydata.gtfsvalidator.table.GtfsStopTime;
13+
import org.mobilitydata.gtfsvalidator.type.GtfsTime;
1314

1415
@RunWith(JUnit4.class)
1516
public class PickupBookingRuleIdValidatorTest {
@@ -27,6 +28,7 @@ public void missingBookingRuleIdShouldGenerateNotice() {
2728
new GtfsStopTime.Builder()
2829
.setCsvRowNumber(1)
2930
.setPickupType(GtfsPickupDropOff.MUST_PHONE)
31+
.setStartPickupDropOffWindow(GtfsTime.fromSecondsSinceMidnight(18614))
3032
.build();
3133
assertThat(generateNotices(stopTime))
3234
.containsExactly(
@@ -40,7 +42,8 @@ public void existingBookingRuleIdShouldNotGenerateNotice() {
4042
new GtfsStopTime.Builder()
4143
.setCsvRowNumber(2)
4244
.setPickupType(GtfsPickupDropOff.MUST_PHONE)
43-
.setPickupBookingRuleId("bookingRuleId")
45+
.setStartPickupDropOffWindow(GtfsTime.fromSecondsSinceMidnight(18614))
46+
.setPickupBookingRuleId("booking_rule_id")
4447
.build();
4548
assertThat(generateNotices(stopTime)).isEmpty();
4649
}

0 commit comments

Comments
 (0)