diff --git a/.github/workflows/test-and-build.yml b/.github/workflows/test-and-build.yml
index a801eec..7842c75 100644
--- a/.github/workflows/test-and-build.yml
+++ b/.github/workflows/test-and-build.yml
@@ -13,6 +13,10 @@ jobs:
distribution: 'temurin'
java-version: '11'
cache: 'maven'
+ - name: Run Spotless Apply
+ run: mvn spotless:apply
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build with Maven
run: mvn --file pom.xml clean install
env:
diff --git a/eclipse-java-formatter.xml b/eclipse-java-formatter.xml
new file mode 100644
index 0000000..4ae144a
--- /dev/null
+++ b/eclipse-java-formatter.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 9e1027c..d5db336 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,9 @@
UTF-8
11
11
- 2.0.3-RC6
+ 2.0.3
+ 2.43.0
+ 1.17.0
@@ -86,6 +88,32 @@
maven-surefire-plugin
3.0.0
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ ${spotlessMavenPlugin.version}
+
+
+
+ ${project.basedir}/eclipse-java-formatter.xml
+
+
+
+
+
+ spotless-check
+
+ check
+
+
+
+ spotless-apply
+
+ apply
+
+
+
+
diff --git a/src/main/java/fi/hsl/transitdata/alert/AlertHandler.java b/src/main/java/fi/hsl/transitdata/alert/AlertHandler.java
index 3930b6e..e470831 100644
--- a/src/main/java/fi/hsl/transitdata/alert/AlertHandler.java
+++ b/src/main/java/fi/hsl/transitdata/alert/AlertHandler.java
@@ -34,7 +34,8 @@ public AlertHandler(final PulsarApplicationContext context) {
public void handleMessage(final Message message) {
try {
- if (!TransitdataSchema.hasProtobufSchema(message, TransitdataProperties.ProtobufSchema.TransitdataServiceAlert)) {
+ if (!TransitdataSchema.hasProtobufSchema(message,
+ TransitdataProperties.ProtobufSchema.TransitdataServiceAlert)) {
throw new Exception("Invalid protobuf schema");
}
InternalMessages.ServiceAlert alert = InternalMessages.ServiceAlert.parseFrom(message.getData());
@@ -42,7 +43,8 @@ public void handleMessage(final Message message) {
final long timestampMs = message.getEventTime();
final long timestampSecs = timestampMs / 1000;
- List entities = createFeedEntities(alert.getBulletinsList(), globalNoServiceAlerts);
+ List entities = createFeedEntities(alert.getBulletinsList(),
+ globalNoServiceAlerts);
GtfsRealtime.FeedMessage feedMessage = FeedMessageFactory.createFullFeedMessage(entities, timestampSecs);
sendPulsarMessage(feedMessage, timestampMs);
@@ -54,15 +56,15 @@ public void handleMessage(final Message message) {
}
private void ack(MessageId received) {
- consumer.acknowledgeAsync(received)
- .exceptionally(throwable -> {
- log.error("Failed to ack Pulsar message", throwable);
- return null;
- })
- .thenRun(() -> {});
+ consumer.acknowledgeAsync(received).exceptionally(throwable -> {
+ log.error("Failed to ack Pulsar message", throwable);
+ return null;
+ }).thenRun(() -> {
+ });
}
- static List createFeedEntities(final List bulletins, final boolean globalNoServiceAlerts) {
+ static List createFeedEntities(final List bulletins,
+ final boolean globalNoServiceAlerts) {
return bulletins.stream().map(bulletin -> {
final Optional maybeAlert = createAlert(bulletin, globalNoServiceAlerts);
return maybeAlert.map(alert -> {
@@ -71,29 +73,27 @@ static List createFeedEntities(final List createAlert(final InternalMessages.Bulletin bulletin, final boolean globalNoServiceAlerts) {
+ static Optional createAlert(final InternalMessages.Bulletin bulletin,
+ final boolean globalNoServiceAlerts) {
Optional maybeAlert;
try {
if (bulletin.hasDisplayOnly() && bulletin.getDisplayOnly()) {
- log.debug("No alert created for bulletin {} that is meant to be published only on vehicle displays", bulletin.getBulletinId());
+ log.debug("No alert created for bulletin {} that is meant to be published only on vehicle displays",
+ bulletin.getBulletinId());
return Optional.empty();
}
final long startInUtcSecs = bulletin.getValidFromUtcMs() / 1000;
final long stopInUtcSecs = bulletin.getValidToUtcMs() / 1000;
- final GtfsRealtime.TimeRange timeRange = GtfsRealtime.TimeRange.newBuilder()
- .setStart(startInUtcSecs)
- .setEnd(stopInUtcSecs)
- .build();
+ final GtfsRealtime.TimeRange timeRange = GtfsRealtime.TimeRange.newBuilder().setStart(startInUtcSecs)
+ .setEnd(stopInUtcSecs).build();
final GtfsRealtime.Alert.Builder builder = GtfsRealtime.Alert.newBuilder();
builder.addActivePeriod(timeRange);
@@ -108,15 +108,16 @@ static Optional createAlert(final InternalMessages.Bulletin
if (bulletin.getUrlsCount() > 0) {
builder.setUrl(toGtfsTranslatedString(bulletin.getUrlsList()));
}
- final Optional maybeSeverityLevel = toGtfsSeverityLevel(bulletin.getPriority());
+ final Optional maybeSeverityLevel = toGtfsSeverityLevel(
+ bulletin.getPriority());
maybeSeverityLevel.ifPresent(builder::setSeverityLevel);
Collection entitySelectors = entitySelectorsForBulletin(bulletin);
if (entitySelectors.isEmpty()) {
- log.error("Failed to find any Informed Entities for bulletin Id {}. Discarding alert.", bulletin.getBulletinId());
+ log.error("Failed to find any Informed Entities for bulletin Id {}. Discarding alert.",
+ bulletin.getBulletinId());
maybeAlert = Optional.empty();
- }
- else {
+ } else {
builder.addAllInformedEntity(entitySelectors);
maybeAlert = Optional.of(builder.build());
}
@@ -126,21 +127,24 @@ static Optional createAlert(final InternalMessages.Bulletin
}
maybeAlert.ifPresent(alert -> {
- final Optional titleEn = alert.getHeaderText().getTranslationList().stream().filter(translation -> "en".equals(translation.getLanguage())).findAny().map(GtfsRealtime.TranslatedString.Translation::getText);
- log.info("Created an alert with title {} for bulletin {}", titleEn.orElse("null"), bulletin.getBulletinId());
+ final Optional titleEn = alert.getHeaderText().getTranslationList().stream()
+ .filter(translation -> "en".equals(translation.getLanguage())).findAny()
+ .map(GtfsRealtime.TranslatedString.Translation::getText);
+ log.info("Created an alert with title {} for bulletin {}", titleEn.orElse("null"),
+ bulletin.getBulletinId());
});
return maybeAlert;
}
- static Collection entitySelectorsForBulletin(final InternalMessages.Bulletin bulletin) {
+ static Collection entitySelectorsForBulletin(
+ final InternalMessages.Bulletin bulletin) {
Set selectors = new HashSet<>();
if (bulletinAffectsAll(bulletin)) {
log.debug("Bulletin {} affects all routes or stops", bulletin.getBulletinId());
GtfsRealtime.EntitySelector agency = GtfsRealtime.EntitySelector.newBuilder()
- .setAgencyId(AGENCY_ENTITY_SELECTOR)
- .build();
+ .setAgencyId(AGENCY_ENTITY_SELECTOR).build();
selectors.add(agency);
}
if (bulletin.getAffectedRoutesCount() > 0) {
@@ -162,72 +166,72 @@ static Collection entitySelectorsForBulletin(final
return selectors;
}
- private void sendPulsarMessage(final GtfsRealtime.FeedMessage feedMessage, long timestampMs) throws PulsarClientException {
+ private void sendPulsarMessage(final GtfsRealtime.FeedMessage feedMessage, long timestampMs)
+ throws PulsarClientException {
try {
- producer.newMessage().value(feedMessage.toByteArray())
- .eventTime(timestampMs)
- .property(TransitdataProperties.KEY_PROTOBUF_SCHEMA, TransitdataProperties.ProtobufSchema.GTFS_ServiceAlert.toString())
+ producer.newMessage().value(feedMessage.toByteArray()).eventTime(timestampMs)
+ .property(TransitdataProperties.KEY_PROTOBUF_SCHEMA,
+ TransitdataProperties.ProtobufSchema.GTFS_ServiceAlert.toString())
.send();
log.info("Produced a new GTFS-RT service alert message with timestamp {}", timestampMs);
- }
- catch (PulsarClientException e) {
+ } catch (PulsarClientException e) {
log.error("Failed to send message to Pulsar", e);
throw e;
- }
- catch (Exception e) {
+ } catch (Exception e) {
log.error("Failed to handle alert message", e);
}
}
public static GtfsRealtime.Alert.Cause toGtfsCause(final InternalMessages.Category category) {
switch (category) {
- case OTHER_DRIVER_ERROR:
- case TOO_MANY_PASSENGERS:
- case MISPARKED_VEHICLE:
- case TEST:
- case STATE_VISIT:
- case TRACK_BLOCKED:
- case EARLIER_DISRUPTION:
- case OTHER:
- case NO_TRAFFIC_DISRUPTION:
- case TRAFFIC_JAM:
- case PUBLIC_EVENT:
- case STAFF_DEFICIT:
- case DISTURBANCE:
+ case OTHER_DRIVER_ERROR :
+ case TOO_MANY_PASSENGERS :
+ case MISPARKED_VEHICLE :
+ case TEST :
+ case STATE_VISIT :
+ case TRACK_BLOCKED :
+ case EARLIER_DISRUPTION :
+ case OTHER :
+ case NO_TRAFFIC_DISRUPTION :
+ case TRAFFIC_JAM :
+ case PUBLIC_EVENT :
+ case STAFF_DEFICIT :
+ case DISTURBANCE :
return GtfsRealtime.Alert.Cause.OTHER_CAUSE;
- case ITS_SYSTEM_ERROR:
- case SWITCH_FAILURE:
- case TECHNICAL_FAILURE:
- case VEHICLE_BREAKDOWN:
- case POWER_FAILURE:
- case VEHICLE_DEFICIT:
+ case ITS_SYSTEM_ERROR :
+ case SWITCH_FAILURE :
+ case TECHNICAL_FAILURE :
+ case VEHICLE_BREAKDOWN :
+ case POWER_FAILURE :
+ case VEHICLE_DEFICIT :
return GtfsRealtime.Alert.Cause.TECHNICAL_PROBLEM;
- case STRIKE:
+ case STRIKE :
return GtfsRealtime.Alert.Cause.STRIKE;
- case VEHICLE_OFF_THE_ROAD:
- case TRAFFIC_ACCIDENT:
- case ACCIDENT:
+ case VEHICLE_OFF_THE_ROAD :
+ case TRAFFIC_ACCIDENT :
+ case ACCIDENT :
return GtfsRealtime.Alert.Cause.ACCIDENT;
- case SEIZURE:
- case MEDICAL_INCIDENT:
+ case SEIZURE :
+ case MEDICAL_INCIDENT :
return GtfsRealtime.Alert.Cause.MEDICAL_EMERGENCY;
- case WEATHER:
- case WEATHER_CONDITIONS:
+ case WEATHER :
+ case WEATHER_CONDITIONS :
return GtfsRealtime.Alert.Cause.WEATHER;
- case ROAD_MAINTENANCE:
- case TRACK_MAINTENANCE:
+ case ROAD_MAINTENANCE :
+ case TRACK_MAINTENANCE :
return GtfsRealtime.Alert.Cause.MAINTENANCE;
- case ROAD_CLOSED:
- case ROAD_TRENCH:
+ case ROAD_CLOSED :
+ case ROAD_TRENCH :
return GtfsRealtime.Alert.Cause.CONSTRUCTION;
- case ASSAULT:
+ case ASSAULT :
return GtfsRealtime.Alert.Cause.POLICE_ACTIVITY;
- default:
+ default :
return GtfsRealtime.Alert.Cause.UNKNOWN_CAUSE;
}
}
- public static GtfsRealtime.Alert.Effect getGtfsEffect(final InternalMessages.Bulletin bulletin, final boolean globalNoServiceAlerts) {
+ public static GtfsRealtime.Alert.Effect getGtfsEffect(final InternalMessages.Bulletin bulletin,
+ final boolean globalNoServiceAlerts) {
final boolean affectsAll = bulletinAffectsAll(bulletin);
final InternalMessages.Bulletin.Impact impact = bulletin.getImpact();
@@ -242,46 +246,50 @@ public static GtfsRealtime.Alert.Effect getGtfsEffect(final InternalMessages.Bul
public static GtfsRealtime.Alert.Effect toGtfsEffect(final InternalMessages.Bulletin.Impact impact) {
switch (impact) {
- case CANCELLED:
+ case CANCELLED :
return GtfsRealtime.Alert.Effect.NO_SERVICE;
- case DELAYED:
- case IRREGULAR_DEPARTURES:
+ case DELAYED :
+ case IRREGULAR_DEPARTURES :
return GtfsRealtime.Alert.Effect.SIGNIFICANT_DELAYS;
- case DEVIATING_SCHEDULE:
- case POSSIBLE_DEVIATIONS:
+ case DEVIATING_SCHEDULE :
+ case POSSIBLE_DEVIATIONS :
return GtfsRealtime.Alert.Effect.MODIFIED_SERVICE;
- case DISRUPTION_ROUTE:
+ case DISRUPTION_ROUTE :
return GtfsRealtime.Alert.Effect.DETOUR;
- case POSSIBLY_DELAYED:
- case VENDING_MACHINE_OUT_OF_ORDER:
- case RETURNING_TO_NORMAL:
- case OTHER:
+ case POSSIBLY_DELAYED :
+ case VENDING_MACHINE_OUT_OF_ORDER :
+ case RETURNING_TO_NORMAL :
+ case OTHER :
return GtfsRealtime.Alert.Effect.OTHER_EFFECT;
- case REDUCED_TRANSPORT:
+ case REDUCED_TRANSPORT :
return GtfsRealtime.Alert.Effect.REDUCED_SERVICE;
- case NO_TRAFFIC_IMPACT:
+ case NO_TRAFFIC_IMPACT :
return GtfsRealtime.Alert.Effect.NO_EFFECT;
- default:
+ default :
return GtfsRealtime.Alert.Effect.UNKNOWN_EFFECT;
}
}
- public static Optional toGtfsSeverityLevel(final InternalMessages.Bulletin.Priority priority) {
+ public static Optional toGtfsSeverityLevel(
+ final InternalMessages.Bulletin.Priority priority) {
switch (priority) {
- case INFO: return Optional.of(GtfsRealtime.Alert.SeverityLevel.INFO);
- case WARNING: return Optional.of(GtfsRealtime.Alert.SeverityLevel.WARNING);
- case SEVERE: return Optional.of(GtfsRealtime.Alert.SeverityLevel.SEVERE);
- default: return Optional.empty();
+ case INFO :
+ return Optional.of(GtfsRealtime.Alert.SeverityLevel.INFO);
+ case WARNING :
+ return Optional.of(GtfsRealtime.Alert.SeverityLevel.WARNING);
+ case SEVERE :
+ return Optional.of(GtfsRealtime.Alert.SeverityLevel.SEVERE);
+ default :
+ return Optional.empty();
}
}
- public static GtfsRealtime.TranslatedString toGtfsTranslatedString(final List translations) {
+ public static GtfsRealtime.TranslatedString toGtfsTranslatedString(
+ final List translations) {
GtfsRealtime.TranslatedString.Builder builder = GtfsRealtime.TranslatedString.newBuilder();
- for (final InternalMessages.Bulletin.Translation translation: translations) {
- GtfsRealtime.TranslatedString.Translation gtfsTranslation = GtfsRealtime.TranslatedString.Translation.newBuilder()
- .setText(translation.getText())
- .setLanguage(translation.getLanguage())
- .build();
+ for (final InternalMessages.Bulletin.Translation translation : translations) {
+ GtfsRealtime.TranslatedString.Translation gtfsTranslation = GtfsRealtime.TranslatedString.Translation
+ .newBuilder().setText(translation.getText()).setLanguage(translation.getLanguage()).build();
builder.addTranslation(gtfsTranslation);
}
return builder.build();
diff --git a/src/test/java/fi/hsl/transitdata/alert/AlertHandlerTest.java b/src/test/java/fi/hsl/transitdata/alert/AlertHandlerTest.java
index af39e05..a5da7ed 100644
--- a/src/test/java/fi/hsl/transitdata/alert/AlertHandlerTest.java
+++ b/src/test/java/fi/hsl/transitdata/alert/AlertHandlerTest.java
@@ -99,7 +99,8 @@ private void validateMockDataFirstEntity(GtfsRealtime.FeedEntity entity) {
assertFalse(selector.hasAgencyId());
assertTrue(selector.hasRouteId());
});
- assertThat(selectors.stream().map(GtfsRealtime.EntitySelector::getRouteId).collect(Collectors.toList()), hasItem("4562"));
+ assertThat(selectors.stream().map(GtfsRealtime.EntitySelector::getRouteId).collect(Collectors.toList()),
+ hasItem("4562"));
GtfsRealtime.TranslatedString header = alert.getHeaderText();
assertEquals(3, header.getTranslationCount());
@@ -117,18 +118,21 @@ public void testOneFeedEntityThoroughly() throws Exception {
final List bulletins = alert.getBulletinsList();
List feedEntities = AlertHandler.createFeedEntities(bulletins, true);
- Optional maybeEntity = feedEntities.stream().filter(entity -> entity.getId().equals("6431")).findFirst();
+ Optional maybeEntity = feedEntities.stream()
+ .filter(entity -> entity.getId().equals("6431")).findFirst();
assertTrue(maybeEntity.isPresent());
GtfsRealtime.Alert gtfsAlert = maybeEntity.get().getAlert();
assertEquals(AlertHandler.toGtfsCause(InternalMessages.Category.ROAD_CLOSED), gtfsAlert.getCause());
- assertEquals(AlertHandler.toGtfsEffect(InternalMessages.Bulletin.Impact.DISRUPTION_ROUTE), gtfsAlert.getEffect());
+ assertEquals(AlertHandler.toGtfsEffect(InternalMessages.Bulletin.Impact.DISRUPTION_ROUTE),
+ gtfsAlert.getEffect());
assertEquals(1, gtfsAlert.getActivePeriodCount());
- assertEquals( 1557885600L, gtfsAlert.getActivePeriod(0).getStart());
- assertEquals( 1558198800L, gtfsAlert.getActivePeriod(0).getEnd());
+ assertEquals(1557885600L, gtfsAlert.getActivePeriod(0).getStart());
+ assertEquals(1558198800L, gtfsAlert.getActivePeriod(0).getEnd());
assertEquals(5, gtfsAlert.getInformedEntityCount());
- assertEquals(AlertHandler.toGtfsSeverityLevel(InternalMessages.Bulletin.Priority.INFO).get(), gtfsAlert.getSeverityLevel());
+ assertEquals(AlertHandler.toGtfsSeverityLevel(InternalMessages.Bulletin.Priority.INFO).get(),
+ gtfsAlert.getSeverityLevel());
List entities = gtfsAlert.getInformedEntityList();
validateEntitySelectors(entities, "1230103", "1230104", "1230101", "1232102", "1232104");
@@ -137,13 +141,17 @@ public void testOneFeedEntityThoroughly() throws Exception {
assertEquals(3, header.getTranslationCount());
header.getTranslationList().forEach(translation -> {
switch (translation.getLanguage()) {
- case "fi": assertEquals("Hämeentie suljettu 18.5. Arabian katufestivaalin ", translation.getText());
+ case "fi" :
+ assertEquals("Hämeentie suljettu 18.5. Arabian katufestivaalin ", translation.getText());
break;
- case "sv": assertEquals("Gatan avstängd", translation.getText());
+ case "sv" :
+ assertEquals("Gatan avstängd", translation.getText());
break;
- case "en": assertEquals("Road closed", translation.getText());
+ case "en" :
+ assertEquals("Road closed", translation.getText());
break;
- default: assertTrue(false);
+ default :
+ assertTrue(false);
}
});
@@ -151,13 +159,22 @@ public void testOneFeedEntityThoroughly() throws Exception {
assertEquals(3, description.getTranslationCount());
description.getTranslationList().forEach(translation -> {
switch (translation.getLanguage()) {
- case "fi": assertEquals("Linjat 52, 55, 71, 78N ja 506 Arabiassa poikkeusreiteillä la 18.5. klo 9-20. /Info: hsl.fi.", translation.getText());
+ case "fi" :
+ assertEquals(
+ "Linjat 52, 55, 71, 78N ja 506 Arabiassa poikkeusreiteillä la 18.5. klo 9-20. /Info: hsl.fi.",
+ translation.getText());
break;
- case "sv": assertEquals("Linjerna 52, 55, 71, 78N och 506 kör avvikande rutter i Arabia 18.5 kl. 9-20. /Info: hsl.fi/sv", translation.getText());
+ case "sv" :
+ assertEquals(
+ "Linjerna 52, 55, 71, 78N och 506 kör avvikande rutter i Arabia 18.5 kl. 9-20. /Info: hsl.fi/sv",
+ translation.getText());
break;
- case "en": assertEquals("Buses 52, 55, 71, 78N and 506 diverted in Arabia on 18 May 9am-8pm. /Info: hsl.fi/en", translation.getText());
+ case "en" :
+ assertEquals("Buses 52, 55, 71, 78N and 506 diverted in Arabia on 18 May 9am-8pm. /Info: hsl.fi/en",
+ translation.getText());
break;
- default: assertTrue(false);
+ default :
+ assertTrue(false);
}
});
@@ -165,13 +182,17 @@ public void testOneFeedEntityThoroughly() throws Exception {
assertEquals(3, url.getTranslationCount());
url.getTranslationList().forEach(translation -> {
switch (translation.getLanguage()) {
- case "fi": assertEquals("https://www.hsl.fi/", translation.getText());
+ case "fi" :
+ assertEquals("https://www.hsl.fi/", translation.getText());
break;
- case "sv": assertEquals("https://www.hsl.fi/sv", translation.getText());
+ case "sv" :
+ assertEquals("https://www.hsl.fi/sv", translation.getText());
break;
- case "en": assertEquals("https://www.hsl.fi/en", translation.getText());
+ case "en" :
+ assertEquals("https://www.hsl.fi/en", translation.getText());
break;
- default: assertTrue(false);
+ default :
+ assertTrue(false);
}
});
}
@@ -189,18 +210,12 @@ private void validateEntitySelectors(Collection ent
@Test
public void testNoAlertIsCreatedForDisplayOnlyBulletin() {
- InternalMessages.Bulletin bulletin = InternalMessages.Bulletin.newBuilder()
- .setBulletinId("1")
- .setAffectsAllRoutes(true)
- .setAffectsAllStops(true)
- .setCategory(InternalMessages.Category.STRIKE)
- .setImpact(InternalMessages.Bulletin.Impact.CANCELLED)
- .setValidFromUtcMs(0)
- .setValidToUtcMs(Long.MAX_VALUE)
- .setLastModifiedUtcMs(Instant.now().getEpochSecond())
+ InternalMessages.Bulletin bulletin = InternalMessages.Bulletin.newBuilder().setBulletinId("1")
+ .setAffectsAllRoutes(true).setAffectsAllStops(true).setCategory(InternalMessages.Category.STRIKE)
+ .setImpact(InternalMessages.Bulletin.Impact.CANCELLED).setValidFromUtcMs(0)
+ .setValidToUtcMs(Long.MAX_VALUE).setLastModifiedUtcMs(Instant.now().getEpochSecond())
.addDescriptions(InternalMessages.Bulletin.Translation.newBuilder().setLanguage("en").setText("Test"))
- .setDisplayOnly(true)
- .build();
+ .setDisplayOnly(true).build();
Optional alert = AlertHandler.createAlert(bulletin, true);
assertFalse(alert.isPresent());
@@ -211,12 +226,9 @@ public void testEntitySelectorRouteIdsAreNormalized() {
List entities = Stream.of("1009", "1009 1", "1009 6")
.map(routeId -> InternalMessages.Bulletin.AffectedEntity.newBuilder().setEntityId(routeId).build())
.collect(Collectors.toList());
- InternalMessages.Bulletin bulletin = InternalMessages.Bulletin.newBuilder()
- .addAllAffectedRoutes(entities)
- .setLastModifiedUtcMs(System.currentTimeMillis())
- .setValidFromUtcMs(System.currentTimeMillis())
- .setValidToUtcMs(System.currentTimeMillis())
- .build();
+ InternalMessages.Bulletin bulletin = InternalMessages.Bulletin.newBuilder().addAllAffectedRoutes(entities)
+ .setLastModifiedUtcMs(System.currentTimeMillis()).setValidFromUtcMs(System.currentTimeMillis())
+ .setValidToUtcMs(System.currentTimeMillis()).build();
Collection selectors = AlertHandler.entitySelectorsForBulletin(bulletin);
assertEquals(1, selectors.size());
@@ -226,18 +238,12 @@ public void testEntitySelectorRouteIdsAreNormalized() {
@Test
public void testNoServiceEffectIsNotUsedWhenBulletinAffectAll() {
- InternalMessages.Bulletin bulletin = InternalMessages.Bulletin.newBuilder()
- .setBulletinId("1")
- .setAffectsAllRoutes(true)
- .setAffectsAllStops(true)
- .setCategory(InternalMessages.Category.STRIKE)
- .setImpact(InternalMessages.Bulletin.Impact.CANCELLED)
- .setValidFromUtcMs(0)
- .setValidToUtcMs(Long.MAX_VALUE)
- .setLastModifiedUtcMs(Instant.now().getEpochSecond())
+ InternalMessages.Bulletin bulletin = InternalMessages.Bulletin.newBuilder().setBulletinId("1")
+ .setAffectsAllRoutes(true).setAffectsAllStops(true).setCategory(InternalMessages.Category.STRIKE)
+ .setImpact(InternalMessages.Bulletin.Impact.CANCELLED).setValidFromUtcMs(0)
+ .setValidToUtcMs(Long.MAX_VALUE).setLastModifiedUtcMs(Instant.now().getEpochSecond())
.addDescriptions(InternalMessages.Bulletin.Translation.newBuilder().setLanguage("en").setText("Test"))
- .setDisplayOnly(false)
- .build();
+ .setDisplayOnly(false).build();
Optional alert = AlertHandler.createAlert(bulletin, false);
assertTrue(alert.isPresent());