@Test public void receiveUnrecognizedSimpleMessage() throws DataSinkException, UnrecognizedMeasurementTypeException { SimpleVehicleMessage message = new SimpleVehicleMessage("foo", "bar"); sink.receive(message); }
@Test public void listenerRecievesMessageContinually() throws DataSinkException { NamedVehicleMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener); sink.receive(message); sink.clearQueue(); assertThat(listener.received, notNullValue()); assertEquals(listener.received, message); listener.received = null; sink.receive(message); assertThat(listener.received, nullValue()); }
@Test public void nonpersistentRemovedAfterOne() throws DataSinkException { NamedVehicleMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener, false); sink.receive(message); sink.clearQueue(); assertThat(listener.received, notNullValue()); assertEquals(listener.received, message); listener.received = null; sink.receive(message); assertThat(listener.received, nullValue()); }
@Test public void removeMessageTypeListener() throws DataSinkException { CanMessage message = new CanMessage(1, 2, new byte[]{1,2,3,4,5,6,7,8}); sink.register(message.getClass(), messageListener); sink.unregister(message.getClass(), messageListener); sink.receive(message); sink.clearQueue(); assertThat(messageReceived, nullValue()); }
@Test public void receiveCanMessageByClass() throws DataSinkException, UnrecognizedMeasurementTypeException { CanMessage message = new CanMessage(1, 2, new byte[]{1,2,3,4,5,6,7,8}); sink.register(message.getClass(), messageListener); sink.receive(message); sink.clearQueue(); assertThat(messageReceived, notNullValue()); assertEquals(messageReceived, message); }
@Test public void removeMeasurementListenerByClass() throws UnrecognizedMeasurementTypeException, DataSinkException { VehicleSpeed speed = new VehicleSpeed(42.0); sink.register(speed.getClass(), speedListener); sink.unregister(speed.getClass(), speedListener); sink.receive(speed.toVehicleMessage()); sink.clearQueue(); assertThat(speedReceived, nullValue()); }
@Test public void removeMeasurementListener() throws UnrecognizedMeasurementTypeException, DataSinkException { VehicleSpeed speed = new VehicleSpeed(42.0); sink.register(speed.getClass(), speedListener); sink.unregister(speed.getClass(), speedListener); sink.receive(speed.toVehicleMessage()); sink.clearQueue(); assertThat(speedReceived, nullValue()); }
@Test public void listenerReceivesMeasurement() throws DataSinkException, UnrecognizedMeasurementTypeException { VehicleSpeed speed = new VehicleSpeed(42.0); sink.register(speed.getClass(), speedListener); sink.receive(speed.toVehicleMessage()); sink.clearQueue(); assertThat(speedReceived, notNullValue()); assertEquals(speedReceived, speed); }
@Test public void receiveNonMatchingMeasurementNotPropagated() throws DataSinkException, UnrecognizedMeasurementTypeException { VehicleSpeed speed = new VehicleSpeed(42.0); sink.register(speed.getClass(), speedListener); SteeringWheelAngle angle = new SteeringWheelAngle(10.1); sink.receive(angle.toVehicleMessage()); sink.clearQueue(); assertThat(speedReceived, nullValue()); }
@Test public void messageAndMeasurementListenersBothReceive() throws DataSinkException, UnrecognizedMeasurementTypeException { VehicleSpeed speed = new VehicleSpeed(42.0); VehicleMessage message = speed.toVehicleMessage(); sink.register(ExactKeyMatcher.buildExactMatcher((KeyedMessage) message), listener); sink.register(speed.getClass(), speedListener); sink.receive(speed.toVehicleMessage()); sink.clearQueue(); assertThat(speedReceived, notNullValue()); assertThat(listener.received, notNullValue()); }
@Test public void receiveNonMatchingNotPropagated() throws DataSinkException { NamedVehicleMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener); message = new NamedVehicleMessage("bar"); sink.receive(message); sink.clearQueue(); assertThat(listener.received, nullValue()); }
@Test public void listenerRecievesMessage() throws DataSinkException { NamedVehicleMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener); sink.receive(message); sink.clearQueue(); assertThat(listener.received, notNullValue()); assertEquals(listener.received, message); }
@Test public void removeMessageListener() throws UnrecognizedMeasurementTypeException, DataSinkException { NamedVehicleMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener); sink.unregister(ExactKeyMatcher.buildExactMatcher(message), listener); sink.receive(message); sink.clearQueue(); assertThat(listener.received, nullValue()); }
@Test public void nonKeyedIgnored() throws DataSinkException { KeyedMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener); sink.receive(new VehicleMessage()); }