@Before public void setup() { extras = new HashMap<String, Object>(); extras.put(key, Integer.valueOf(42)); message = new VehicleMessage(extras); }
@Test public void serializeWithExtras() { HashMap<String, Object> extras = new HashMap<>(); extras.put("foo", "bar"); extras.put("baz", 42.0); JsonFormatter.serialize(new VehicleMessage(extras)); }
@Test(expected=SerializationException.class) public void serializeWithExtras() throws SerializationException { HashMap<String, Object> extras = new HashMap<>(); extras.put("foo", "bar"); extras.put("baz", 42.0); BinaryFormatter.serialize(new VehicleMessage(extras)); } }
@Test public void setAutomaticTriggeredTimestamp() { message = new VehicleMessage(); message.timestamp(); assertTrue(message.isTimestamped()); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(message.getTimestamp()); // Catch a regression where we didn't divide by 1000 before storing // timestamp as a double. assertThat(calendar.get(Calendar.YEAR), equalTo(Calendar.getInstance().get(Calendar.YEAR))); }
@Test(expected=SerializationException.class) public void serializeEmptyFails() throws SerializationException { streamer.serializeForStream(new VehicleMessage()); }
@Test public void receiveMessageSentToCallback() { mSource.inject(new VehicleMessage()); verify(mCallback).receive(Matchers.any(VehicleMessage.class)); }
@Test public void emptyMessage() { message = new VehicleMessage(new HashMap<String, Object>()); assertFalse(message.hasExtras()); assertThat(message.getExtras(), nullValue()); }
@Test(expected=SerializationException.class) public void serializeEmptyVehicleMessage() throws SerializationException { BinaryFormatter.serialize(new VehicleMessage()); } }
@Test public void doesntDereferenceNullIfNotConectedToRemote() { manager.send(new VehicleMessage()); } }
@Test public void differentTimestampNotEqual() { VehicleMessage anotherMessage = new VehicleMessage( Long.valueOf(10000), extras); assertFalse(message.equals(anotherMessage)); }
@Test public void handleWithNoCallback() { mSource.setCallback(null); mSource.inject(new VehicleMessage()); verify(mCallback, never()).receive(Matchers.any(VehicleMessage.class)); }
@Test public void receivedMessagesAreTimestampped() { mSource.inject(new VehicleMessage()); ArgumentCaptor<VehicleMessage> argument = ArgumentCaptor.forClass( VehicleMessage.class); verify(mCallback).receive(argument.capture()); assertTrue(argument.getValue().isTimestamped()); }
@Test public void emptyExtras() { message = new VehicleMessage(); message.setExtras(new HashMap<String, Object>()); assertFalse(message.hasExtras()); assertThat(message.getExtras(), nullValue()); }
@Test public void setManualTimestamp() { message = new VehicleMessage(Long.valueOf(10000), extras); assertTrue(message.isTimestamped()); assertEquals(Long.valueOf(10000), message.getTimestamp()); }
@Test public void sameValuesEquals() { VehicleMessage anotherMessage = new VehicleMessage( message.getTimestamp(), extras); assertEquals(message, anotherMessage); }
@Test public void differentValuesNotEqual() { extras.put("another", "foo"); // This also tests that the values map is copied and we don't have the // same reference from outside the class VehicleMessage anotherMessage = new VehicleMessage( message.getTimestamp(), extras); assertFalse(message.equals(anotherMessage)); }
@Test public void emptyMessageHasNoTimestamp() { message = new VehicleMessage(); assertTrue(!message.isTimestamped()); }
@Test public void invalidExtras() { message = new VehicleMessage(); message.setExtras(null); assertFalse(message.hasExtras()); assertThat(message.getExtras(), nullValue()); }
@Test public void untimestamp() { message = new VehicleMessage(Long.valueOf(10000), extras); message.untimestamp(); assertFalse(message.isTimestamped()); }
@Test public void nonKeyedIgnored() throws DataSinkException { KeyedMessage message = new NamedVehicleMessage("foo"); sink.register(ExactKeyMatcher.buildExactMatcher(message), listener); sink.receive(new VehicleMessage()); }