private void onSendCanMessage(Spinner busSpinner, EditText idView, EditText payloadView) { boolean validInput = true; if(idView.getText().toString().isEmpty()) { idView.setError("ID is required"); validInput = false; } if(payloadView.getText().toString().isEmpty()) { payloadView.setError("Payload is required"); validInput = false; } if(payloadView.getText().toString().length() % 2 == 1) { payloadView.setError("Payload must be specified as full bytes"); validInput = false; } if(validInput) { System.out.println(payloadView.getText().toString()); CanMessage message = new CanMessage( Integer.valueOf(busSpinner.getSelectedItem().toString()), Integer.valueOf(idView.getText().toString(), 16), ByteAdapter.hexStringToByteArray(payloadView.getText().toString())); mVehicleManager.send(message); // Make sure to update after sending so the timestamp is set by the // VehicleManager mAdapter.add(message.asCanMessage()); } else { Log.i(TAG, "Form is invalid, not sending message"); } }
@Test public void differentBusNotEqual() { CanMessage anotherMessage = new CanMessage(id, bus + 1, data); assertThat(message, not(equalTo(anotherMessage))); }
private static CanMessage deserializeCanMessage( BinaryMessages.VehicleMessage binaryMessage) { BinaryMessages.CanMessage canMessage = binaryMessage.getCanMessage(); return new CanMessage(canMessage.getBus(), canMessage.getId(), canMessage.getData().toByteArray()); }
@Test public void differentIdNotEqual() { CanMessage anotherMessage = new CanMessage(id + 1, bus, data); assertThat(message, not(equalTo(anotherMessage))); }
@Test public void differentDataNotEqual() { CanMessage anotherMessage = new CanMessage(id, bus, new byte[] {8,7,6,5,4,3,2,1}); assertThat(message, not(equalTo(anotherMessage))); }
@Before public void setup() { message = new CanMessage(bus, id, data); }
@Test public void typeListenerDoesntReceiveOtherMessages() throws DataSinkException, UnrecognizedMeasurementTypeException { CanMessage message = new CanMessage(1, 2, new byte[]{1,2,3,4,5,6,7,8}); sink.register(DiagnosticResponse.class, messageListener); assertThat(messageReceived, nullValue()); }
@Test public void serializeCanMessage() { serializeDeserializeAndCheckEqual(new CanMessage(1, 2, new byte[]{1,2,3,4})); }
@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 setNoData() { message = new CanMessage(bus, id, null); assertThat(message.getData(), notNullValue()); assertArrayEquals(new byte[]{0,0,0,0,0,0,0,0}, message.getData()); }
@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); }