Skip to content

Commit 851ba53

Browse files
committed
Rename (and extend) some rules
1 parent 715463a commit 851ba53

11 files changed

+50
-48
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ The raw schema along with a map of the data feeds is passed to this method. The
1616

1717
List of additional rules:
1818

19-
* `VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans`
20-
* `VehicleTypeIdsInVehicleTypesAvailableExistsInVehicleTypes`
21-
* `VehicleTypesAvailableRequiredWhenVehicleTypesExist`
22-
* `VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist`
23-
* `CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles`
19+
* `NoInvalidReferenceToPricingPlansInVehicleTypes`
20+
* `NoInvalidReferenceToVehicleTypesInStationStatus`
21+
* `NoMissingVehicleTypesAvailableWhenVehicleTypesExists`
22+
* `NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist`
23+
* `NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles`
2424

2525
Planned rules:
2626

src/main/java/org/entur/gbfs/validation/validator/rules/VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans.java renamed to src/main/java/org/entur/gbfs/validation/validator/rules/NoInvalidReferenceToPricingPlansInVehicleTypes.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,31 @@
2828
import java.util.Map;
2929

3030
/**
31-
* A vehicle's default_pricing_plan_id must exist in the system's system_pricing_plan file
31+
* A vehicle's default_pricing_plan_id, and all pricing_plan_ids must exist in the system's system_pricing_plan file
3232
*/
33-
public class VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans implements CustomRuleSchemaPatcher {
33+
public class NoInvalidReferenceToPricingPlansInVehicleTypes implements CustomRuleSchemaPatcher {
3434

3535
public static final String DEFAULT_PRICING_PLAN_ID_SCHEMA_PATH = "$.properties.data.properties.vehicle_types.items.properties.default_pricing_plan_id";
36+
public static final String PRICING_PLAN_IDS_SCHEMA_PATH = "$.properties.data.properties.vehicle_types.items.properties.pricing_plan_ids.items";
37+
3638

3739
/**
38-
* Adds an enum to vehicle_type's default_pricing_plan_id schema with the plan ids from the system_pricing_plan feed
40+
* Adds an enum to vehicle_type's default_pricing_plan_id and pricing_plan_ids schema with the plan ids from the system_pricing_plan feed
3941
*/
4042
@Override
4143
public DocumentContext addRule(DocumentContext rawSchemaDocumentContext, Map<String, JSONObject> feeds) {
4244
JSONObject pricingPlansFeed = feeds.get("system_pricing_plans");
4345
JSONObject defaultPricingPlanIdSchema = rawSchemaDocumentContext.read(DEFAULT_PRICING_PLAN_ID_SCHEMA_PATH);
46+
JSONObject pricingPlanIdsSchema = rawSchemaDocumentContext.read(PRICING_PLAN_IDS_SCHEMA_PATH);
4447

4548
if (pricingPlansFeed != null) {
4649
JSONArray pricingPlanIds = JsonPath.parse(pricingPlansFeed).read("$.data.plans[*].plan_id");
4750
defaultPricingPlanIdSchema.put("enum", pricingPlanIds);
51+
pricingPlanIdsSchema.put("enum", pricingPlanIds);
4852
}
4953

50-
return rawSchemaDocumentContext.set(DEFAULT_PRICING_PLAN_ID_SCHEMA_PATH, defaultPricingPlanIdSchema);
54+
return rawSchemaDocumentContext
55+
.set(DEFAULT_PRICING_PLAN_ID_SCHEMA_PATH, defaultPricingPlanIdSchema)
56+
.set(PRICING_PLAN_IDS_SCHEMA_PATH, pricingPlanIdsSchema);
5157
}
5258
}

src/main/java/org/entur/gbfs/validation/validator/rules/CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles.java renamed to src/main/java/org/entur/gbfs/validation/validator/rules/NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
/**
3535
* It is required to provide the current_range_meters property in vehicle_status for motorized vehicles
3636
*/
37-
public class CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles implements CustomRuleSchemaPatcher {
37+
public class NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles implements CustomRuleSchemaPatcher {
3838

3939
private final String fileName;
4040

41-
public CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles(String fileName) {
41+
public NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles(String fileName) {
4242
this.fileName = fileName;
4343
}
4444

src/main/java/org/entur/gbfs/validation/validator/rules/VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist.java renamed to src/main/java/org/entur/gbfs/validation/validator/rules/NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
/**
3030
* Bikes / vehicles must refer to a vehicle type when vehicle_types exists
3131
*/
32-
public class VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist implements CustomRuleSchemaPatcher {
32+
public class NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist implements CustomRuleSchemaPatcher {
3333

3434
private final String fileName;
3535

36-
public VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist(String fileName) {
36+
public NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist(String fileName) {
3737
this.fileName = fileName;
3838
}
3939

src/main/java/org/entur/gbfs/validation/validator/rules/VehicleTypesAvailableRequiredWhenVehicleTypesExist.java renamed to src/main/java/org/entur/gbfs/validation/validator/rules/NoMissingVehicleTypesAvailableWhenVehicleTypesExists.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
/**
3030
* It is required to list available vehicle types in station_status when vehicle_types file exists
3131
*/
32-
public class VehicleTypesAvailableRequiredWhenVehicleTypesExist implements CustomRuleSchemaPatcher {
32+
public class NoMissingVehicleTypesAvailableWhenVehicleTypesExists implements CustomRuleSchemaPatcher {
3333

3434
public static final String STATION_ITEMS_REQUIRED_SCHEMA_PATH = "$.properties.data.properties.stations.items.required";
3535

src/main/java/org/entur/gbfs/validation/validator/versions/Version21.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818

1919
package org.entur.gbfs.validation.validator.versions;
2020

21-
import org.entur.gbfs.validation.validator.rules.CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles;
21+
import org.entur.gbfs.validation.validator.rules.NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles;
2222
import org.entur.gbfs.validation.validator.rules.CustomRuleSchemaPatcher;
23-
import org.entur.gbfs.validation.validator.rules.VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist;
23+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist;
2424
import org.entur.gbfs.validation.validator.rules.NoInvalidReferenceToVehicleTypesInStationStatus;
25-
import org.entur.gbfs.validation.validator.rules.VehicleTypesAvailableRequiredWhenVehicleTypesExist;
25+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypesAvailableWhenVehicleTypesExists;
2626

2727
import java.util.Arrays;
2828
import java.util.List;
@@ -50,11 +50,11 @@ public class Version21 extends AbstractVersion {
5050
private static final Map<String, List<CustomRuleSchemaPatcher>> customRules = Map.of(
5151
"station_status", List.of(
5252
new NoInvalidReferenceToVehicleTypesInStationStatus(),
53-
new VehicleTypesAvailableRequiredWhenVehicleTypesExist()
53+
new NoMissingVehicleTypesAvailableWhenVehicleTypesExists()
5454
),
5555
"free_bike_status", List.of(
56-
new VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist("free_bike_status"),
57-
new CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles("free_bike_status")
56+
new NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist("free_bike_status"),
57+
new NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles("free_bike_status")
5858
)
5959
);
6060

src/main/java/org/entur/gbfs/validation/validator/versions/Version22.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818

1919
package org.entur.gbfs.validation.validator.versions;
2020

21-
import org.entur.gbfs.validation.validator.rules.CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles;
21+
import org.entur.gbfs.validation.validator.rules.NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles;
2222
import org.entur.gbfs.validation.validator.rules.CustomRuleSchemaPatcher;
23-
import org.entur.gbfs.validation.validator.rules.VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist;
23+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist;
2424
import org.entur.gbfs.validation.validator.rules.NoInvalidReferenceToVehicleTypesInStationStatus;
25-
import org.entur.gbfs.validation.validator.rules.VehicleTypesAvailableRequiredWhenVehicleTypesExist;
25+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypesAvailableWhenVehicleTypesExists;
2626

2727
import java.util.Arrays;
2828
import java.util.List;
@@ -50,11 +50,11 @@ public class Version22 extends AbstractVersion {
5050
private static final Map<String, List<CustomRuleSchemaPatcher>> customRules = Map.of(
5151
"station_status", List.of(
5252
new NoInvalidReferenceToVehicleTypesInStationStatus(),
53-
new VehicleTypesAvailableRequiredWhenVehicleTypesExist()
53+
new NoMissingVehicleTypesAvailableWhenVehicleTypesExists()
5454
),
5555
"free_bike_status", List.of(
56-
new VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist("free_bike_status"),
57-
new CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles("free_bike_status")
56+
new NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist("free_bike_status"),
57+
new NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles("free_bike_status")
5858
)
5959
);
6060

src/main/java/org/entur/gbfs/validation/validator/versions/Version23.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818

1919
package org.entur.gbfs.validation.validator.versions;
2020

21-
import org.entur.gbfs.validation.validator.rules.CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles;
21+
import org.entur.gbfs.validation.validator.rules.NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles;
2222
import org.entur.gbfs.validation.validator.rules.CustomRuleSchemaPatcher;
23-
import org.entur.gbfs.validation.validator.rules.VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans;
24-
import org.entur.gbfs.validation.validator.rules.VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist;
23+
import org.entur.gbfs.validation.validator.rules.NoInvalidReferenceToPricingPlansInVehicleTypes;
24+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist;
2525
import org.entur.gbfs.validation.validator.rules.NoInvalidReferenceToVehicleTypesInStationStatus;
26-
import org.entur.gbfs.validation.validator.rules.VehicleTypesAvailableRequiredWhenVehicleTypesExist;
26+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypesAvailableWhenVehicleTypesExists;
2727

2828
import java.util.Arrays;
2929
import java.util.List;
@@ -50,15 +50,15 @@ public class Version23 extends AbstractVersion {
5050

5151
private static final Map<String, List<CustomRuleSchemaPatcher>> customRules = Map.of(
5252
"vehicle_types", List.of(
53-
new VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans()
53+
new NoInvalidReferenceToPricingPlansInVehicleTypes()
5454
),
5555
"station_status", List.of(
5656
new NoInvalidReferenceToVehicleTypesInStationStatus(),
57-
new VehicleTypesAvailableRequiredWhenVehicleTypesExist()
57+
new NoMissingVehicleTypesAvailableWhenVehicleTypesExists()
5858
),
5959
"free_bike_status", List.of(
60-
new VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist("free_bike_status"),
61-
new CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles("free_bike_status")
60+
new NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist("free_bike_status"),
61+
new NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles("free_bike_status")
6262
)
6363
);
6464

src/main/java/org/entur/gbfs/validation/validator/versions/Version30_RC.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818

1919
package org.entur.gbfs.validation.validator.versions;
2020

21-
import org.entur.gbfs.validation.validator.rules.CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles;
21+
import org.entur.gbfs.validation.validator.rules.NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles;
2222
import org.entur.gbfs.validation.validator.rules.CustomRuleSchemaPatcher;
23-
import org.entur.gbfs.validation.validator.rules.VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans;
24-
import org.entur.gbfs.validation.validator.rules.VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist;
23+
import org.entur.gbfs.validation.validator.rules.NoInvalidReferenceToPricingPlansInVehicleTypes;
24+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist;
2525
import org.entur.gbfs.validation.validator.rules.NoInvalidReferenceToVehicleTypesInStationStatus;
26-
import org.entur.gbfs.validation.validator.rules.VehicleTypesAvailableRequiredWhenVehicleTypesExist;
26+
import org.entur.gbfs.validation.validator.rules.NoMissingVehicleTypesAvailableWhenVehicleTypesExists;
2727

2828
import java.util.Arrays;
2929
import java.util.List;
@@ -49,15 +49,15 @@ public class Version30_RC extends AbstractVersion {
4949

5050
private static final Map<String, List<CustomRuleSchemaPatcher>> customRules = Map.of(
5151
"vehicle_types", List.of(
52-
new VehicleTypeDefaultPricingPlanIdExistsInSystemPricingPlans()
52+
new NoInvalidReferenceToPricingPlansInVehicleTypes()
5353
),
5454
"station_status", List.of(
5555
new NoInvalidReferenceToVehicleTypesInStationStatus(),
56-
new VehicleTypesAvailableRequiredWhenVehicleTypesExist()
56+
new NoMissingVehicleTypesAvailableWhenVehicleTypesExists()
5757
),
5858
"vehicle_status", List.of(
59-
new VehicleTypeIdRequiredInVehicleStatusWhenVehicleTypesExist("vehicle_status"),
60-
new CurrentRangeMetersIsRequiredInVehicleStatusForMotorizedVehicles("vehicle_status")
59+
new NoMissingVehicleTypeIdInVehicleStatusWhenVehicleTypesExist("vehicle_status"),
60+
new NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles("vehicle_status")
6161
)
6262
);
6363

src/test/resources/fixtures/v2.3/vehicle_types.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
},
2020
"default_pricing_plan_id": "bike_plan_1",
2121
"pricing_plan_ids": [
22-
"bike_plan_1",
23-
"bike_plan_2",
24-
"bike_plan_3"
22+
"bike_plan_1"
2523
]
2624
},
2725
{

0 commit comments

Comments
 (0)