package com.openxc.messages; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import android.os.Parcel; @RunWith(RobolectricTestRunner.class) public class CanMessageTest { CanMessage message; int id = 42; int bus = 1; byte[] data = new byte[] {1,2,3,4,5,6,7,8}; @Before public void setup() { message = new CanMessage(bus, id, data); } @Test public void getIdReturnsId() { assertEquals(id, message.getId()); } @Test public void getBusReturnsBus() { assertEquals(bus, message.getBusId()); } @Test public void getDataReturnsData() { assertArrayEquals(data, message.getData()); } @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 sameEquals() { assertEquals(message, message); } @Test public void nullNotEqual() { assertThat(message, not(equalTo(null))); } @Test public void differentIdNotEqual() { CanMessage anotherMessage = new CanMessage(id + 1, bus, data); assertThat(message, not(equalTo(anotherMessage))); } @Test public void differentBusNotEqual() { CanMessage anotherMessage = new CanMessage(id, bus + 1, 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))); } @Test public void toStringNotNull() { assertThat(message.toString(), notNullValue()); } @Test public void writeAndReadFromParcel() { Parcel parcel = Parcel.obtain(); message.writeToParcel(parcel, 0); // Reset parcel for reading parcel.setDataPosition(0); VehicleMessage createdFromParcel = VehicleMessage.CREATOR.createFromParcel(parcel); assertThat(createdFromParcel, instanceOf(CanMessage.class)); assertEquals(message, createdFromParcel); } @Test public void keyNotNull() { assertThat(message.getKey(), notNullValue()); } }