package com.nightscout.core.dexcom; import net.tribe7.common.primitives.UnsignedBytes; import org.junit.Test; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; public class ReadPacketTest { byte[] testPacket = new byte[]{ /** HEADER **/0x1, 0x1, 0x1, /** COMMAND **/0x5, /** DATA **/0x10, 0x15, /** CRC */0x52, 0x33 }; byte[] testPacketNoData = new byte[]{ /** HEADER **/0x1, 0x1, 0x1, /** COMMAND **/0x1A, /** CRC **/UnsignedBytes.checkedCast(0xCE), UnsignedBytes.checkedCast(0xC1) }; byte[] testPacketBadCrc = new byte[]{ /** HEADER **/0x1, 0x1, 0x1, /** COMMAND **/0x1A, /** CRC **/UnsignedBytes.checkedCast(0xCE), UnsignedBytes.checkedCast(0xC0) }; @Test public void testReadPacket_command() throws Exception { assertThat(new ReadPacket(testPacket).getCommand().getValue(), is((byte) 0x05)); } @Test public void testReadPacket_data() throws Exception { assertThat(new ReadPacket(testPacket).getData(), is(new byte[]{0x10, 0x15})); } @Test public void testReadPacket_noDataPacket_command() throws Exception { assertThat(new ReadPacket(testPacketNoData).getCommand().getValue(), is((byte) 0x1A)); } @Test public void testReadPacket_noDataPacket_emptyData() throws Exception { assertThat(new ReadPacket(testPacketNoData).getData(), is(new byte[]{})); } @Test public void testReadPacket_badCrc() throws Exception { try { new ReadPacket(testPacketBadCrc); fail("Should receive CRC error"); } catch (CRCFailError error) { // nom } } }