// Meter Record: 2880180BC52B180B71000A80180BAC
// Record EGV: 113 Meter time: 186155018 display time: 1416926645000 system time: 186155048
// Meter Record: 4CB51A0BE9601A0B46002EB51A0B73
// Record EGV: 70 Meter time: 186299694 display time: 1417071321000 system time: 186299724
// Meter Record: 63B51A0B00611A0B480045B51A0BB1
// Record EGV: 72 Meter time: 186299717 display time: 1417071344000 system time: 186299747
// Meter Record: 7CD01A0B1A7C1A0B06015ED01A0B06
// Record EGV: 262 Meter time: 186306654 display time: 1417078282000 system time: 186306684
// Meter Record: 2880180BC52B180B71000A80180BAC
// Record EGV: 113 Meter time: 186155018 display time: 1416926645000 system time: 186155048
// Meter Record: 4CB51A0BE9601A0B46002EB51A0B73
// Record EGV: 70 Meter time: 186299694 display time: 1417071321000 system time: 186299724
// Meter Record: 63B51A0B00611A0B480045B51A0BB1
// Record EGV: 72 Meter time: 186299717 display time: 1417071344000 system time: 186299747
// Meter Record: 7CD01A0B1A7C1A0B06015ED01A0B06
// Record EGV: 262 Meter time: 186306654 display time: 1417078282000 system time: 186306684
package com.nightscout.core.dexcom;
import com.nightscout.core.dexcom.records.MeterRecord;
import org.junit.Test;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
public class MeterRecordTest {
// Meter Record: 28 80 18 0B C5 2B 18 0B 71 00 0A 80 18 0B AC
// Record EGV: 113 Meter time: 186155018 display time: 1416926645000 system time: 186155048
// Meter Record: 7CD01A0B1A7C1A0B06015ED01A0B06
// Record EGV: 262 Meter time: 186306654 display time: 1417078282000 system time: 186306684
@Test
public void shouldParseMeterRecord() throws Exception {
byte[] record = new byte[]{(byte) 0x28, (byte) 0x80, (byte) 0x18, (byte) 0x0B, (byte) 0xC5,
(byte) 0x2B, (byte) 0x18, (byte) 0x0B, (byte) 0x71, (byte) 0x00, (byte) 0x0A,
(byte) 0x80, (byte) 0x18, (byte) 0x0B, (byte) 0xAC};
MeterRecord meterRecord = new MeterRecord(record, 0, 0);
assertThat(meterRecord.getBgMgdl(), is(113));
assertThat(meterRecord.getRawDisplayTimeSeconds(), is(186133445L));
assertThat(meterRecord.getRawSystemTimeSeconds(), is(186155048L));
assertThat(meterRecord.getMeterTime(), is(186155018));
}
@Test(expected = InvalidRecordLengthException.class)
public void shouldNotParseSmallMeterRecord() throws Exception {
byte[] record = new byte[]{(byte) 0x28, (byte) 0x80, (byte) 0x18, (byte) 0x0B, (byte) 0xC5,
(byte) 0x2B, (byte) 0x18, (byte) 0x0B, (byte) 0x71, (byte) 0x00, (byte) 0x0A,
(byte) 0x80, (byte) 0x18, (byte) 0x0B};
MeterRecord meterRecord = new MeterRecord(record, 0, 0);
}
@Test(expected = InvalidRecordLengthException.class)
public void shouldNotParseLargeMeterRecord() throws Exception {
byte[] record = new byte[]{(byte) 0x28, (byte) 0x80, (byte) 0x18, (byte) 0x0B, (byte) 0xC5,
(byte) 0x2B, (byte) 0x18, (byte) 0x0B, (byte) 0x71, (byte) 0x00, (byte) 0x0A,
(byte) 0x80, (byte) 0x18, (byte) 0x0B, (byte) 0x00, (byte) 0x00};
MeterRecord meterRecord = new MeterRecord(record, 0, 0);
}
}