implement client methods for reading messages
Reading response type 2 (messages) from API with optional stop filter.
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
|
||||
package de.stklcode.pubtrans.ura;
|
||||
|
||||
import de.stklcode.pubtrans.ura.model.Message;
|
||||
import de.stklcode.pubtrans.ura.model.Stop;
|
||||
import de.stklcode.pubtrans.ura.model.Trip;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
@ -331,6 +332,43 @@ public class UraClientTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getMessages() {
|
||||
// Mock the HTTP call.
|
||||
mockHttpToFile("instant_V1_messages.txt");
|
||||
|
||||
// Get messages without filter and verify some values.
|
||||
List<Message> messages = new UraClient("mocked")
|
||||
.getMessages();
|
||||
assertThat(messages, hasSize(2));
|
||||
assertThat(messages.get(0).getStop().getId(), is("100707"));
|
||||
assertThat(messages.get(0).getUuid(), is("016e1231d4e30014_100707"));
|
||||
assertThat(messages.get(1).getStop().getName(), is("Herzogenr. Rathaus"));
|
||||
assertThat(messages.get(1).getUuid(), is("016e2cc3a3750006_210511"));
|
||||
assertThat(messages.get(0).getType(), is(0));
|
||||
assertThat(messages.get(1).getPriority(), is(0));
|
||||
assertThat(messages.get(0).getText(), is("Sehr geehrte Fahrgäste, wegen Strassenbauarbeiten kann diese Haltestelle nicht von den Bussen der Linien 17, 44 und N2 angefahren werden."));
|
||||
assertThat(messages.get(1).getText(), is("Sehr geehrte Fahrgäste, diese Haltestelle wird vorübergehend von den Linien 47, 147 und N3 nicht angefahren."));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMessagesForStop() {
|
||||
// Mock the HTTP call.
|
||||
mockHttpToFile("instant_V2_messages_stop.txt");
|
||||
|
||||
// Get trips for stop ID 100707 (Berensberger Str.) and verify some values.
|
||||
List<Message> messages = new UraClient("mocked")
|
||||
.forStops("100707")
|
||||
.getMessages();
|
||||
assertThat(messages, hasSize(1));
|
||||
assertThat(messages.stream().filter(t -> !t.getStop().getId().equals("100707")).findAny(), is(Optional.empty()));
|
||||
assertThat(messages.get(0).getUuid(), is("016e1231d4e30014_100707"));
|
||||
assertThat(messages.get(0).getType(), is(0));
|
||||
assertThat(messages.get(0).getPriority(), is(3));
|
||||
assertThat(messages.get(0).getText(), is("Sehr geehrte Fahrgäste, wegen Strassenbauarbeiten kann diese Haltestelle nicht von den Bussen der Linien 17, 44 und N2 angefahren werden."));
|
||||
}
|
||||
|
||||
|
||||
private static void mockHttpToFile(String newResourceFile) {
|
||||
mockResource = newResourceFile;
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ import static org.hamcrest.core.Is.is;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
/**
|
||||
* Unit test for the {@link Message} metamodel.
|
||||
* Unit test for the {@link Message} meta model.
|
||||
*
|
||||
* @author Stefan Kalscheuer
|
||||
*/
|
||||
|
Reference in New Issue
Block a user