Skip to content

Commit 96519a7

Browse files
committed
added tests with different fareMediaIds
1 parent 35eeefc commit 96519a7

File tree

2 files changed

+63
-25
lines changed

2 files changed

+63
-25
lines changed

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

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ public class FareProductDefaultRiderCategoriesValidator extends FileValidator {
1818
HashMap<String, Integer> fareProductDefaultCount = new HashMap<>();
1919
Map<String, List<Integer>> fareProductRows = new HashMap<>();
2020
Map<String, List<String>> fareProductRiderCategories = new HashMap<>();
21-
Set<String> riderCategoryIdSet = new HashSet<>();
2221

2322
@Inject
2423
public FareProductDefaultRiderCategoriesValidator(
@@ -37,25 +36,21 @@ public boolean shouldCallValidate() {
3736
public void validate(NoticeContainer noticeContainer) {
3837
for (GtfsFareProduct fareProduct : fareProductTable.getEntities()) {
3938
String fareProductId = fareProduct.fareProductId();
40-
if (!fareProductDefaultCount.containsKey(fareProductId)) {
41-
String riderCategoryId = fareProduct.riderCategoryId();
42-
Optional<GtfsRiderCategories> riderCategory =
43-
riderCategoriesTable.byRiderCategoryId(riderCategoryId);
44-
if (!riderCategory.isEmpty() && !riderCategoryIdSet.contains(riderCategoryId)) {
45-
if (riderCategory
46-
.get()
47-
.isDefaultFareCategory()
48-
.equals(GtfsRiderFareCategory.IS_DEFAULT)) {
49-
fareProductDefaultCount.put(
50-
fareProductId, fareProductDefaultCount.getOrDefault(fareProductId, 0) + 1);
51-
fareProductRows
52-
.computeIfAbsent(fareProductId, k -> new ArrayList<>())
53-
.add(fareProduct.csvRowNumber());
54-
fareProductRiderCategories
55-
.computeIfAbsent(fareProductId, k -> new ArrayList<>())
56-
.add(riderCategory.get().riderCategoryId());
57-
riderCategoryIdSet.add(riderCategoryId);
58-
}
39+
String riderCategoryId = fareProduct.riderCategoryId();
40+
Optional<GtfsRiderCategories> riderCategory =
41+
riderCategoriesTable.byRiderCategoryId(riderCategoryId);
42+
if (!riderCategory.isEmpty()) {
43+
if (riderCategory.get().isDefaultFareCategory().equals(GtfsRiderFareCategory.IS_DEFAULT)) {
44+
fareProductDefaultCount.put(
45+
fareProductId, fareProductDefaultCount.getOrDefault(fareProductId, 0) + 1);
46+
fareProductRows
47+
.computeIfAbsent(fareProductId, k -> new ArrayList<>())
48+
.add(fareProduct.csvRowNumber());
49+
fareProductRiderCategories
50+
.computeIfAbsent(fareProductId, k -> new ArrayList<>())
51+
.add(riderCategory.get().riderCategoryId());
52+
System.out.println("fareProductDefaultCount of " + fareProductId);
53+
System.out.println(fareProductDefaultCount.get(fareProductId));
5954
}
6055
}
6156
}

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

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414
@RunWith(JUnit4.class)
1515
public class FareProductDefaultRiderCategoriesValidatorTest {
1616
public static GtfsFareProduct createFareProduct(
17-
int csvRowNumber, String fareId, String riderCategoryId) {
17+
int csvRowNumber, String fareId, String riderCategoryId, String fareMediaId) {
1818
return new GtfsFareProduct.Builder()
1919
.setCsvRowNumber(csvRowNumber)
2020
.setFareProductId(fareId)
2121
.setRiderCategoryId(riderCategoryId)
22+
.setFareMediaId(fareMediaId)
2223
.build();
2324
}
2425

@@ -50,8 +51,8 @@ public void testMultipleDefaultRiderCategoriesShouldTriggerNotice() {
5051
riderCategories.add(createRiderCategories(2, "rider3", GtfsRiderFareCategory.NOT_DEFAULT));
5152

5253
List<GtfsFareProduct> fareProducts = new ArrayList<>();
53-
fareProducts.add(createFareProduct(1, "fare1", "rider1"));
54-
fareProducts.add(createFareProduct(2, "fare1", "rider2"));
54+
fareProducts.add(createFareProduct(1, "fare1", "rider1", "fareMediaId"));
55+
fareProducts.add(createFareProduct(2, "fare1", "rider2", "fareMediaId"));
5556
assertThat(
5657
generateNotices(fareProducts, riderCategories)
5758
.contains(
@@ -67,8 +68,50 @@ public void testOneDefaultRiderCategoryShouldNotTriggerNotice() {
6768
riderCategories.add(createRiderCategories(2, "rider3", GtfsRiderFareCategory.NOT_DEFAULT));
6869

6970
List<GtfsFareProduct> fareProducts = new ArrayList<>();
70-
fareProducts.add(createFareProduct(1, "fare1", "rider1"));
71-
fareProducts.add(createFareProduct(2, "fare1", "rider2"));
71+
fareProducts.add(createFareProduct(1, "fare1", "rider1", "fareMediaId"));
72+
fareProducts.add(createFareProduct(2, "fare1", "rider2", "fareMediaId"));
73+
assertThat(generateNotices(fareProducts, riderCategories).isEmpty());
74+
}
75+
76+
@Test
77+
public void testDefaultRiderCategoriesWithDifferentFareProductIdsShouldNotTriggerNotice() {
78+
List<GtfsRiderCategories> riderCategories = new ArrayList<>();
79+
riderCategories.add(createRiderCategories(1, "rider1", GtfsRiderFareCategory.IS_DEFAULT));
80+
riderCategories.add(createRiderCategories(2, "rider2", GtfsRiderFareCategory.NOT_DEFAULT));
81+
riderCategories.add(createRiderCategories(3, "rider3", GtfsRiderFareCategory.NOT_DEFAULT));
82+
83+
List<GtfsFareProduct> fareProducts = new ArrayList<>();
84+
fareProducts.add(createFareProduct(1, "fare1", "rider1", "fareMediaId"));
85+
fareProducts.add(createFareProduct(2, "fare2", "rider1", "fareMediaId"));
86+
assertThat(generateNotices(fareProducts, riderCategories).isEmpty());
87+
}
88+
89+
@Test
90+
public void testDefaultRiderCategoriesWithDifferentFareProductIdsShouldTriggerNotice() {
91+
List<GtfsRiderCategories> riderCategories = new ArrayList<>();
92+
riderCategories.add(createRiderCategories(1, "rider1", GtfsRiderFareCategory.IS_DEFAULT));
93+
riderCategories.add(createRiderCategories(2, "rider2", GtfsRiderFareCategory.IS_DEFAULT));
94+
riderCategories.add(createRiderCategories(3, "rider3", GtfsRiderFareCategory.NOT_DEFAULT));
95+
96+
List<GtfsFareProduct> fareProducts = new ArrayList<>();
97+
fareProducts.add(createFareProduct(1, "fare1", "rider1","fareMediaId"));
98+
fareProducts.add(createFareProduct(2, "fare2", "rider1","fareMediaId"));
99+
fareProducts.add(createFareProduct(3, "fare2", "rider2","fareMediaId"));
100+
assertThat(generateNotices(fareProducts, riderCategories).contains(
101+
FareProductDefaultRiderCategoriesValidator
102+
.FareProductWithMultipleDefaultRiderCategoriesNotice.class));
103+
}
104+
105+
@Test
106+
public void testDefaultRiderCategoriesWithSameFareProductIdAndDifferentFareMediaIdsShouldNotTriggerNotice() {
107+
List<GtfsRiderCategories> riderCategories = new ArrayList<>();
108+
riderCategories.add(createRiderCategories(1, "rider1", GtfsRiderFareCategory.IS_DEFAULT));
109+
riderCategories.add(createRiderCategories(2, "rider2", GtfsRiderFareCategory.NOT_DEFAULT));
110+
riderCategories.add(createRiderCategories(3, "rider3", GtfsRiderFareCategory.NOT_DEFAULT));
111+
112+
List<GtfsFareProduct> fareProducts = new ArrayList<>();
113+
fareProducts.add(createFareProduct(1, "fare1", "rider1", "fareMediaId1"));
114+
fareProducts.add(createFareProduct(2, "fare1", "rider1", "fareMediaId2"));
72115
assertThat(generateNotices(fareProducts, riderCategories).isEmpty());
73116
}
74117
}

0 commit comments

Comments
 (0)