shared-tests #13

This commit is contained in:
Milos Kozak 2023-09-04 09:33:33 +02:00
parent a2fb04c5fe
commit 22c1f8f166
34 changed files with 589 additions and 710 deletions

View file

@ -43,6 +43,7 @@ dependencies {
api "androidx.room:room-rxjava3:$room_version"
kapt "androidx.room:room-compiler:$room_version"
testImplementation project(':app-wear-shared:shared-tests')
// optional - Test helpers
testImplementation("androidx.room:room-testing:$room_version")
}

View file

@ -1,37 +0,0 @@
package info.nightscout.androidaps
import info.nightscout.rx.AapsSchedulers
import info.nightscout.rx.TestAapsSchedulers
import info.nightscout.rx.logging.AAPSLoggerTest
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.Mockito
import org.mockito.junit.jupiter.MockitoExtension
import org.mockito.junit.jupiter.MockitoSettings
import org.mockito.quality.Strictness
import java.util.Locale
@ExtendWith(MockitoExtension::class)
@MockitoSettings(strictness = Strictness.LENIENT)
open class TestBase {
val aapsLogger = AAPSLoggerTest()
val aapsSchedulers: AapsSchedulers = TestAapsSchedulers()
@BeforeEach
fun setupLocale() {
Locale.setDefault(Locale.ENGLISH)
System.setProperty("disableFirebase", "true")
}
// Workaround for Kotlin nullability.
// https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791
// https://stackoverflow.com/questions/30305217/is-it-possible-to-use-mockito-in-kotlin
fun <T> anyObject(): T {
Mockito.any<T>()
return uninitialized()
}
@Suppress("Unchecked_Cast")
fun <T> uninitialized(): T = null as T
}

View file

@ -2,11 +2,9 @@ package info.nightscout.androidaps.plugins.pump.omnipod.eros
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.TestBase
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkUtil
import info.nightscout.androidaps.plugins.pump.omnipod.eros.history.database.ErosHistoryDatabase
import info.nightscout.androidaps.plugins.pump.omnipod.eros.manager.AapsOmnipodErosManager
import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.interfaces.profile.Profile
import info.nightscout.interfaces.pump.PumpEnactResult
import info.nightscout.interfaces.pump.PumpSync
@ -17,12 +15,12 @@ import info.nightscout.pump.common.defs.TempBasalPair
import info.nightscout.rx.TestAapsSchedulers
import info.nightscout.rx.bus.RxBus
import info.nightscout.shared.interfaces.ResourceHelper
import info.nightscout.sharedtests.TestBase
import org.joda.time.DateTimeZone
import org.joda.time.tz.UTCProvider
import org.junit.Assert
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.mockito.Answers
import org.mockito.ArgumentMatchers
import org.mockito.Mock
import org.mockito.Mockito
@ -33,7 +31,6 @@ class OmnipodErosPumpPluginTest : TestBase() {
@Mock lateinit var injector: HasAndroidInjector
@Mock lateinit var rh: ResourceHelper
@Mock(answer = Answers.RETURNS_DEEP_STUBS) lateinit var activePlugin: ActivePlugin
@Mock lateinit var aapsOmnipodErosManager: AapsOmnipodErosManager
@Mock lateinit var uiInteraction: UiInteraction
@Mock lateinit var commandQueue: CommandQueue
@ -101,17 +98,17 @@ class OmnipodErosPumpPluginTest : TestBase() {
val result5 =
plugin.setTempBasalPercent(-50, 60, profile, false, PumpSync.TemporaryBasalType.NORMAL)
// Then return correct values
Assert.assertEquals(result1.absolute, 0.4, 0.01)
Assert.assertEquals(result1.duration, 30)
Assert.assertEquals(result2.absolute, 25.0, 0.01)
Assert.assertEquals(result2.duration, 30000)
Assert.assertEquals(result3.absolute, 0.0, 0.01)
Assert.assertEquals(result3.duration, 30)
Assert.assertEquals(result4.absolute, -1.0, 0.01)
Assert.assertEquals(result4.duration, -1)
Assertions.assertEquals(result1.absolute, 0.4, 0.01)
Assertions.assertEquals(result1.duration, 30)
Assertions.assertEquals(result2.absolute, 25.0, 0.01)
Assertions.assertEquals(result2.duration, 30000)
Assertions.assertEquals(result3.absolute, 0.0, 0.01)
Assertions.assertEquals(result3.duration, 30)
Assertions.assertEquals(result4.absolute, -1.0, 0.01)
Assertions.assertEquals(result4.duration, -1)
// this is validated downstream, see TempBasalExtraCommand
Assert.assertEquals(result5.absolute, -0.25, 0.01)
Assert.assertEquals(result5.duration, 60)
Assertions.assertEquals(result5.absolute, -0.25, 0.01)
Assertions.assertEquals(result5.duration, 60)
// Given zero basal
`when`(profile.getBasal()).thenReturn(0.0)
@ -121,10 +118,10 @@ class OmnipodErosPumpPluginTest : TestBase() {
result2 =
plugin.setTempBasalPercent(0, 0, profile, false, PumpSync.TemporaryBasalType.NORMAL)
// Then return zero values
Assert.assertEquals(result1.absolute, 0.0, 0.01)
Assert.assertEquals(result1.duration, 90)
Assert.assertEquals(result2.absolute, -1.0, 0.01)
Assert.assertEquals(result2.duration, -1)
Assertions.assertEquals(result1.absolute, 0.0, 0.01)
Assertions.assertEquals(result1.duration, 90)
Assertions.assertEquals(result2.absolute, -1.0, 0.01)
Assertions.assertEquals(result2.duration, -1)
// Given unhealthy basal
`when`(profile.getBasal()).thenReturn(500.0)
@ -132,12 +129,12 @@ class OmnipodErosPumpPluginTest : TestBase() {
result1 =
plugin.setTempBasalPercent(80, 30, profile, false, PumpSync.TemporaryBasalType.NORMAL)
// Then return sane values
Assert.assertEquals(
Assertions.assertEquals(
result1.absolute,
PumpType.OMNIPOD_EROS.determineCorrectBasalSize(500.0 * 0.8),
0.01
)
Assert.assertEquals(result1.duration, 30)
Assertions.assertEquals(result1.duration, 30)
// Given weird basal
`when`(profile.getBasal()).thenReturn(1.234567)
@ -145,8 +142,8 @@ class OmnipodErosPumpPluginTest : TestBase() {
result1 =
plugin.setTempBasalPercent(280, 600, profile, false, PumpSync.TemporaryBasalType.NORMAL)
// Then return sane values
Assert.assertEquals(result1.absolute, 3.4567876, 0.01)
Assert.assertEquals(result1.duration, 600)
Assertions.assertEquals(result1.absolute, 3.4567876, 0.01)
Assertions.assertEquals(result1.duration, 600)
// Given negative basal
`when`(profile.getBasal()).thenReturn(-1.234567)
@ -154,7 +151,7 @@ class OmnipodErosPumpPluginTest : TestBase() {
result1 =
plugin.setTempBasalPercent(280, 510, profile, false, PumpSync.TemporaryBasalType.NORMAL)
// Then return negative value (this is validated further downstream, see TempBasalExtraCommand)
Assert.assertEquals(result1.absolute, -3.4567876, 0.01)
Assert.assertEquals(result1.duration, 510)
Assertions.assertEquals(result1.absolute, -3.4567876, 0.01)
Assertions.assertEquals(result1.duration, 510)
}
}

View file

@ -1,114 +0,0 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.joda.time.Duration;
import org.junit.jupiter.api.Test;
import java.util.List;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.schedule.BasalSchedule;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.schedule.BasalScheduleEntry;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.manager.AapsOmnipodErosManager;
import info.nightscout.interfaces.profile.Profile;
public class AapsOmnipodErosManagerTest {
@Test
public void validProfile() {
Profile profile = mock(Profile.class);
when(profile.getBasalValues()).thenReturn(new Profile.ProfileValue[]{
new Profile.ProfileValue(0, 0.5),
new Profile.ProfileValue(18000, 1.0),
new Profile.ProfileValue(50400, 3.05)
});
BasalSchedule basalSchedule = AapsOmnipodErosManager.mapProfileToBasalSchedule(profile);
List<BasalScheduleEntry> entries = basalSchedule.getEntries();
assertEquals(3, entries.size());
BasalScheduleEntry entry1 = entries.get(0);
assertEquals(Duration.standardSeconds(0), entry1.getStartTime());
assertEquals(0.5D, entry1.getRate(), 0.000001);
BasalScheduleEntry entry2 = entries.get(1);
assertEquals(Duration.standardSeconds(18000), entry2.getStartTime());
assertEquals(1.0D, entry2.getRate(), 0.000001);
BasalScheduleEntry entry3 = entries.get(2);
assertEquals(Duration.standardSeconds(50400), entry3.getStartTime());
assertEquals(3.05D, entry3.getRate(), 0.000001);
}
@Test
public void invalidProfileNullProfile() {
assertThrows("Profile can not be null", IllegalArgumentException.class, () -> AapsOmnipodErosManager.mapProfileToBasalSchedule(null));
}
@Test
public void invalidProfileNullEntries() {
assertThrows("Basal values can not be null", IllegalArgumentException.class, () -> AapsOmnipodErosManager.mapProfileToBasalSchedule(mock(Profile.class)));
}
@Test
public void invalidProfileZeroEntries() {
Profile profile = mock(Profile.class);
when(profile.getBasalValues()).thenReturn(new Profile.ProfileValue[0]);
assertThrows("Entries can not be empty", IllegalArgumentException.class, () -> AapsOmnipodErosManager.mapProfileToBasalSchedule(profile));
}
@Test
public void invalidProfileNonZeroOffset() {
Profile profile = mock(Profile.class);
when(profile.getBasalValues()).thenReturn(new Profile.ProfileValue[]{
new Profile.ProfileValue(1800, 0.5)
});
assertThrows("First basal schedule entry should have 0 offset", IllegalArgumentException.class, () -> AapsOmnipodErosManager.mapProfileToBasalSchedule(profile));
}
@Test
public void invalidProfileMoreThan24Hours() {
Profile profile = mock(Profile.class);
when(profile.getBasalValues()).thenReturn(new Profile.ProfileValue[]{
new Profile.ProfileValue(0, 0.5),
new Profile.ProfileValue(86400, 0.5)
});
assertThrows("Invalid start time", IllegalArgumentException.class, () -> AapsOmnipodErosManager.mapProfileToBasalSchedule(profile));
}
@Test
public void invalidProfileNegativeOffset() {
Profile profile = mock(Profile.class);
when(profile.getBasalValues()).thenReturn(new Profile.ProfileValue[]{
new Profile.ProfileValue(-1, 0.5)
});
assertThrows("Invalid start time", IllegalArgumentException.class, () -> AapsOmnipodErosManager.mapProfileToBasalSchedule(profile));
}
@Test
public void roundsToSupportedPrecision() {
Profile profile = mock(Profile.class);
when(profile.getBasalValues()).thenReturn(new Profile.ProfileValue[]{
new Profile.ProfileValue(0, 0.04),
});
BasalSchedule basalSchedule = AapsOmnipodErosManager.mapProfileToBasalSchedule(profile);
BasalScheduleEntry basalScheduleEntry = basalSchedule.getEntries().get(0);
assertEquals(0.05D, basalScheduleEntry.getRate(), 0.000001);
}
}

View file

@ -0,0 +1,94 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication
import info.nightscout.androidaps.plugins.pump.omnipod.eros.manager.AapsOmnipodErosManager
import info.nightscout.interfaces.profile.Profile
import info.nightscout.interfaces.profile.Profile.ProfileValue
import org.joda.time.Duration
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.mockito.Mockito
internal class AapsOmnipodErosManagerTest {
@Test fun validProfile() {
val profile = Mockito.mock(Profile::class.java)
Mockito.`when`(profile.getBasalValues()).thenReturn(
arrayOf(
ProfileValue(0, 0.5),
ProfileValue(18000, 1.0),
ProfileValue(50400, 3.05)
)
)
val basalSchedule = AapsOmnipodErosManager.mapProfileToBasalSchedule(profile)
val entries = basalSchedule.entries
Assertions.assertEquals(3, entries.size)
val entry1 = entries[0]
Assertions.assertEquals(Duration.standardSeconds(0), entry1.startTime)
Assertions.assertEquals(0.5, entry1.rate, 0.000001)
val entry2 = entries[1]
Assertions.assertEquals(Duration.standardSeconds(18000), entry2.startTime)
Assertions.assertEquals(1.0, entry2.rate, 0.000001)
val entry3 = entries[2]
Assertions.assertEquals(Duration.standardSeconds(50400), entry3.startTime)
Assertions.assertEquals(3.05, entry3.rate, 0.000001)
}
@Test fun invalidProfileNullProfile() {
Assertions.assertThrows(IllegalArgumentException::class.java) { AapsOmnipodErosManager.mapProfileToBasalSchedule(null) }
}
@Test fun invalidProfileNullEntries() {
Assertions.assertThrows(IllegalArgumentException::class.java) {
AapsOmnipodErosManager.mapProfileToBasalSchedule(Mockito.mock(Profile::class.java))
}
}
@Test fun invalidProfileZeroEntries() {
val profile = Mockito.mock(Profile::class.java)
Mockito.`when`(profile.getBasalValues()).thenReturn(emptyArray())
Assertions.assertThrows(IllegalArgumentException::class.java) { AapsOmnipodErosManager.mapProfileToBasalSchedule(profile) }
}
@Test fun invalidProfileNonZeroOffset() {
val profile = Mockito.mock(Profile::class.java)
Mockito.`when`(profile.getBasalValues()).thenReturn(
arrayOf(
ProfileValue(1800, 0.5)
)
)
Assertions.assertThrows(IllegalArgumentException::class.java) { AapsOmnipodErosManager.mapProfileToBasalSchedule(profile) }
}
@Test fun invalidProfileMoreThan24Hours() {
val profile = Mockito.mock(Profile::class.java)
Mockito.`when`(profile.getBasalValues()).thenReturn(
arrayOf(
ProfileValue(0, 0.5),
ProfileValue(86400, 0.5)
)
)
Assertions.assertThrows(IllegalArgumentException::class.java) { AapsOmnipodErosManager.mapProfileToBasalSchedule(profile) }
}
@Test fun invalidProfileNegativeOffset() {
val profile = Mockito.mock(Profile::class.java)
Mockito.`when`(profile.getBasalValues()).thenReturn(
arrayOf(
ProfileValue(-1, 0.5)
)
)
Assertions.assertThrows(IllegalArgumentException::class.java) { AapsOmnipodErosManager.mapProfileToBasalSchedule(profile) }
}
@Test fun roundsToSupportedPrecision() {
val profile = Mockito.mock(Profile::class.java)
Mockito.`when`(profile.getBasalValues()).thenReturn(
arrayOf(
ProfileValue(0, 0.04)
)
)
val basalSchedule = AapsOmnipodErosManager.mapProfileToBasalSchedule(profile)
val basalScheduleEntry = basalSchedule.entries[0]
Assertions.assertEquals(0.05, basalScheduleEntry.rate, 0.000001)
}
}

View file

@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@ -10,15 +9,15 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.Al
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.AlertSlot;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.MessageBlockType;
public class AcknowledgeAlertsCommandTest {
class AcknowledgeAlertsCommandTest {
@Test
public void testEncodingMultipleAlerts() {
void testEncodingMultipleAlerts() {
AlertSet alerts = new AlertSet(Arrays.asList(AlertSlot.SLOT0, AlertSlot.SLOT5));
AcknowledgeAlertsCommand acknowledgeAlertsCommand = new AcknowledgeAlertsCommand(0x10203040, alerts);
byte[] rawData = acknowledgeAlertsCommand.getRawData();
assertArrayEquals(new byte[]{
Assertions.assertArrayEquals(new byte[]{
MessageBlockType.ACKNOWLEDGE_ALERT.getValue(),
5, // length
(byte) 0x10, (byte) 0x20, (byte) 0x30, (byte) 0x40, // nonce
@ -27,10 +26,10 @@ public class AcknowledgeAlertsCommandTest {
}
@Test
public void testEncodingSingleAlert() {
void testEncodingSingleAlert() {
AcknowledgeAlertsCommand acknowledgeAlertsCommand = new AcknowledgeAlertsCommand(0x10203040, AlertSlot.SLOT5);
byte[] rawData = acknowledgeAlertsCommand.getRawData();
assertArrayEquals(new byte[]{
Assertions.assertArrayEquals(new byte[]{
MessageBlockType.ACKNOWLEDGE_ALERT.getValue(),
5, // length
(byte) 0x10, (byte) 0x20, (byte) 0x30, (byte) 0x40, // nonce

View file

@ -1,21 +1,17 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class AssignAddressCommandTest {
class AssignAddressCommandTest {
@Test
public void testEncoding() {
void testEncoding() {
AssignAddressCommand assignAddressCommand = new AssignAddressCommand(0x11223344);
byte[] rawData = assignAddressCommand.getRawData();
assertEquals(0x11, rawData[2]);
assertEquals(0x22, rawData[3]);
assertEquals(0x33, rawData[4]);
assertEquals(0x44, rawData[5]);
Assertions.assertEquals(0x11, rawData[2]);
Assertions.assertEquals(0x22, rawData[3]);
Assertions.assertEquals(0x33, rawData[4]);
Assertions.assertEquals(0x44, rawData[5]);
}
// TODO add tests
}

View file

@ -1,11 +1,7 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@ -17,9 +13,9 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.sc
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.schedule.RateEntry;
import info.nightscout.pump.core.utils.ByteUtil;
public class BasalScheduleExtraCommandTest {
class BasalScheduleExtraCommandTest {
@Test
public void testEncodingFromRateEntries() {
void testEncodingFromRateEntries() {
List<RateEntry> rateEntries = RateEntry.createEntries(3.0, Duration.standardHours(24));
BasalScheduleExtraCommand basalScheduleExtraCommand = new BasalScheduleExtraCommand( //
false, //
@ -30,13 +26,13 @@ public class BasalScheduleExtraCommandTest {
20D, //
rateEntries);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.createByteArrayFromHexString("130e40001aea01312d003840005b8d80"), // From https://github.com/openaps/openomni/wiki/Bolus
basalScheduleExtraCommand.getRawData());
}
@Test
public void testParametersCorrectFromBasalSchedule() {
void testParametersCorrectFromBasalSchedule() {
BasalSchedule basalSchedule = new BasalSchedule(Collections.singletonList(new BasalScheduleEntry(0.05, Duration.ZERO)));
BasalScheduleExtraCommand basalScheduleExtraCommand = new BasalScheduleExtraCommand( //
basalSchedule, //
@ -45,25 +41,25 @@ public class BasalScheduleExtraCommandTest {
true, //
Duration.standardMinutes(1));
assertFalse(basalScheduleExtraCommand.isAcknowledgementBeep());
assertTrue(basalScheduleExtraCommand.isCompletionBeep());
assertEquals(0, basalScheduleExtraCommand.getCurrentEntryIndex());
assertEquals(180D, basalScheduleExtraCommand.getDelayUntilNextTenthOfPulseInSeconds(), 0.00001);
assertEquals(60, basalScheduleExtraCommand.getProgramReminderInterval().getStandardSeconds());
assertEquals(15.8, basalScheduleExtraCommand.getRemainingPulses(), 0.01);
Assertions.assertFalse(basalScheduleExtraCommand.isAcknowledgementBeep());
Assertions.assertTrue(basalScheduleExtraCommand.isCompletionBeep());
Assertions.assertEquals(0, basalScheduleExtraCommand.getCurrentEntryIndex());
Assertions.assertEquals(180D, basalScheduleExtraCommand.getDelayUntilNextTenthOfPulseInSeconds(), 0.00001);
Assertions.assertEquals(60, basalScheduleExtraCommand.getProgramReminderInterval().getStandardSeconds());
Assertions.assertEquals(15.8, basalScheduleExtraCommand.getRemainingPulses(), 0.01);
List<RateEntry> rateEntries = basalScheduleExtraCommand.getRateEntries();
assertEquals(1, rateEntries.size());
Assertions.assertEquals(1, rateEntries.size());
RateEntry rateEntry = rateEntries.get(0);
assertEquals(3600.0, rateEntry.getDelayBetweenPulsesInSeconds(), 0.00000001);
assertEquals(24, rateEntry.getTotalPulses(), 0.001);
Assertions.assertEquals(3600.0, rateEntry.getDelayBetweenPulsesInSeconds(), 0.00000001);
Assertions.assertEquals(24, rateEntry.getTotalPulses(), 0.001);
}
@Test
public void testEncodingFromBasalScheduleWithThreeEntries() {
void testEncodingFromBasalScheduleWithThreeEntries() {
BasalSchedule schedule = new BasalSchedule(Arrays.asList( //
new BasalScheduleEntry(1.05, Duration.ZERO), //
new BasalScheduleEntry(0.9, Duration.standardHours(10).plus(Duration.standardMinutes(30))), //
@ -72,12 +68,12 @@ public class BasalScheduleExtraCommandTest {
BasalScheduleExtraCommand basalScheduleExtraCommand = new BasalScheduleExtraCommand(schedule, Duration.standardMinutes((0x2e + 1) * 30).minus(Duration.standardSeconds(0x1be8 / 8)),
false, true, Duration.ZERO);
assertArrayEquals(ByteUtil.fromHexString("131a4002009600a7d8c0089d0105944905a001312d00044c0112a880"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("131a4002009600a7d8c0089d0105944905a001312d00044c0112a880"),
basalScheduleExtraCommand.getRawData());
}
@Test
public void testEncodingFromBasalScheduleWithSingleEntry() {
void testEncodingFromBasalScheduleWithSingleEntry() {
BasalSchedule basalSchedule = new BasalSchedule(Arrays.asList(new BasalScheduleEntry(1.05, Duration.ZERO)));
BasalScheduleExtraCommand basalScheduleExtraCommand = new BasalScheduleExtraCommand(basalSchedule,
Duration.standardMinutes((0x20 + 1) * 30).minus(Duration.standardSeconds(0x33c0 / 8)),
@ -87,7 +83,7 @@ public class BasalScheduleExtraCommandTest {
}
@Test
public void testSegmentMerging() {
void testSegmentMerging() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(0.8, Duration.ZERO),
new BasalScheduleEntry(0.9, Duration.standardMinutes(180)), //
@ -113,7 +109,7 @@ public class BasalScheduleExtraCommandTest {
}
@Test
public void testEncodingFromBasalScheduleWithThirteenEntries() {
void testEncodingFromBasalScheduleWithThirteenEntries() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(1.30, Duration.ZERO), //
new BasalScheduleEntry(0.05, Duration.standardMinutes(30)), //
@ -140,7 +136,7 @@ public class BasalScheduleExtraCommandTest {
}
@Test
public void testBasalScheduleExtraCommandRoundsToNearestSecond() {
void testBasalScheduleExtraCommandRoundsToNearestSecond() {
BasalSchedule basalSchedule = new BasalSchedule(Arrays.asList(new BasalScheduleEntry(1.00, Duration.ZERO)));
BasalScheduleExtraCommand basalScheduleExtraCommand = new BasalScheduleExtraCommand(basalSchedule,
@ -158,13 +154,13 @@ public class BasalScheduleExtraCommandTest {
byte[] expected = ByteUtil.fromHexString(expectedHexString);
assertEquals(extractDelayUntilNextPulseInSeconds(expected), extractDelayUntilNextPulseInSeconds(actual), 0.0001);
Assertions.assertEquals(extractDelayUntilNextPulseInSeconds(expected), extractDelayUntilNextPulseInSeconds(actual), 0.0001);
// Discard the last byte of the integer so that we can compare the other bytes of the message
expected[9] = 0;
actual[9] = 0;
assertArrayEquals(expected, actual);
Assertions.assertArrayEquals(expected, actual);
}
private double extractDelayUntilNextPulseInSeconds(byte[] message) {

View file

@ -1,27 +1,26 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.BeepConfigType;
import info.nightscout.pump.core.utils.ByteUtil;
public class BeepConfigCommandTest {
class BeepConfigCommandTest {
@Test
public void testConfidenceReminders() {
void testConfidenceReminders() {
BeepConfigCommand beepConfigCommand = new BeepConfigCommand(BeepConfigType.BIP_BEEP_BIP_BEEP_BIP_BEEP_BIP_BEEP, true,
Duration.ZERO, true, Duration.ZERO,
true, Duration.ZERO);
assertArrayEquals(ByteUtil.fromHexString("1e0402404040"), beepConfigCommand.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1e0402404040"), beepConfigCommand.getRawData());
}
@Test
public void testProgramReminders() {
void testProgramReminders() {
BeepConfigCommand beepConfigCommand = new BeepConfigCommand(BeepConfigType.NO_BEEP, true,
Duration.ZERO, false, Duration.standardMinutes(60),
false, Duration.standardMinutes(60));
assertArrayEquals(ByteUtil.fromHexString("1e040f403c3c"), beepConfigCommand.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1e040f403c3c"), beepConfigCommand.getRawData());
}
}

View file

@ -1,60 +1,59 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.pump.core.utils.ByteUtil;
public class BolusExtraCommandTest {
class BolusExtraCommandTest {
@Test
public void testBolusExtraCommand() {
void testBolusExtraCommand() {
BolusExtraCommand bolusExtraCommand = new BolusExtraCommand(1.25, 0.0,
Duration.ZERO, false, true, Duration.standardHours(1),
Duration.standardSeconds(2));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.createByteArrayFromHexString("170d7c00fa00030d40000000000000"), // From https://github.com/openaps/openomni/wiki/Bolus
bolusExtraCommand.getRawData());
}
@Test
public void testTypicalPrime() {
void testTypicalPrime() {
BolusExtraCommand bolusExtraCommand = new BolusExtraCommand(2.6, Duration.standardSeconds(1), false, false);
assertArrayEquals(ByteUtil.fromHexString("170d000208000186a0000000000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("170d000208000186a0000000000000"), //
bolusExtraCommand.getRawData());
}
@Test
public void testBolusExtraCommandWithExtraOddPulseCount() {
void testBolusExtraCommandWithExtraOddPulseCount() {
BolusExtraCommand bolusExtraCommand = new BolusExtraCommand(1.25, 0D, Duration.ZERO, //
false, true, Duration.standardHours(1), Duration.standardSeconds(2));
assertArrayEquals(ByteUtil.fromHexString("170d7c00fa00030d40000000000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("170d7c00fa00030d40000000000000"), //
bolusExtraCommand.getRawData());
}
@Test
public void testBolusExtraCommandWithExtraOddPulseCount2() {
void testBolusExtraCommandWithExtraOddPulseCount2() {
BolusExtraCommand bolusExtraCommand = new BolusExtraCommand(2.05, 0D, Duration.ZERO, //
false, false, Duration.standardHours(1), Duration.standardSeconds(2));
assertArrayEquals(ByteUtil.fromHexString("170d3c019a00030d40000000000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("170d3c019a00030d40000000000000"), //
bolusExtraCommand.getRawData());
}
@Test
public void testLargeBolus() {
void testLargeBolus() {
BolusExtraCommand bolusExtraCommand = new BolusExtraCommand(30D, 0, Duration.ZERO, //
false, true, Duration.standardHours(1), Duration.standardSeconds(2));
assertArrayEquals(ByteUtil.fromHexString("170d7c177000030d40000000000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("170d7c177000030d40000000000000"), //
bolusExtraCommand.getRawData());
}
@Test
public void testLargeBolus2() {
void testLargeBolus2() {
BolusExtraCommand bolusExtraCommand = new BolusExtraCommand(29.95, 0, Duration.ZERO, //
false, true, Duration.standardHours(1), Duration.standardSeconds(2));
assertArrayEquals(ByteUtil.fromHexString("170d7c176600030d40000000000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("170d7c176600030d40000000000000"), //
bolusExtraCommand.getRawData());
}

View file

@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.EnumSet;
@ -10,36 +9,37 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.Be
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.DeliveryType;
import info.nightscout.pump.core.utils.ByteUtil;
public class CancelDeliveryCommandTest {
/** @noinspection SpellCheckingInspection*/
class CancelDeliveryCommandTest {
@Test
public void testCancelBolusAndBasalWithBeep() {
void testCancelBolusAndBasalWithBeep() {
CancelDeliveryCommand command = new CancelDeliveryCommand(0x10203040, BeepType.BIP_BIP, EnumSet.of(DeliveryType.BASAL, DeliveryType.BOLUS));
byte[] expected = ByteUtil.fromHexString("1F051020304035");
assertArrayEquals(expected, command.getRawData());
Assertions.assertArrayEquals(expected, command.getRawData());
}
@Test
public void testCancelBolusWithBeep() {
void testCancelBolusWithBeep() {
CancelDeliveryCommand command = new CancelDeliveryCommand(0x4d91f8ff, BeepType.BEEEEEEP, DeliveryType.BOLUS);
byte[] expected = ByteUtil.fromHexString("1f054d91f8ff64");
assertArrayEquals(expected, command.getRawData());
Assertions.assertArrayEquals(expected, command.getRawData());
}
@Test
public void testSuspendBasalCommandWithoutBeep() {
void testSuspendBasalCommandWithoutBeep() {
CancelDeliveryCommand command = new CancelDeliveryCommand(0x6fede14a, BeepType.NO_BEEP, DeliveryType.BASAL);
byte[] expected = ByteUtil.fromHexString("1f056fede14a01");
assertArrayEquals(expected, command.getRawData());
Assertions.assertArrayEquals(expected, command.getRawData());
}
@Test
public void testCancelTempBasalWithoutBeep() {
void testCancelTempBasalWithoutBeep() {
CancelDeliveryCommand cancelDeliveryCommand = new CancelDeliveryCommand(0xf76d34c4, BeepType.NO_BEEP, DeliveryType.TEMP_BASAL);
assertArrayEquals(ByteUtil.fromHexString("1f05f76d34c402"), cancelDeliveryCommand.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1f05f76d34c402"), cancelDeliveryCommand.getRawData());
}
}

View file

@ -1,8 +1,7 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@ -17,9 +16,9 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.Ti
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.UnitsRemainingAlertTrigger;
import info.nightscout.pump.core.utils.ByteUtil;
public class ConfigureAlertsCommandTest {
class ConfigureAlertsCommandTest {
@Test
public void testEncoding() {
void testEncoding() {
Duration softExpirationTime = Duration.standardHours(72).minus(Duration.standardMinutes(1));
AlertConfiguration alertConfiguration1 = new AlertConfiguration( //
AlertType.EXPIRATION_ADVISORY_ALERT,
@ -31,7 +30,7 @@ public class ConfigureAlertsCommandTest {
BeepType.BEEP_BEEP_BEEP, //
BeepRepeat.EVERY_MINUTE_FOR_15_MINUTES);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("79a410df0205"), //
alertConfiguration1.getRawData());
@ -46,7 +45,7 @@ public class ConfigureAlertsCommandTest {
BeepType.BEEEEEEP, //
BeepRepeat.EVERY_MINUTE_FOR_15_MINUTES);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("280012830206"), //
alertConfiguration2.getRawData());
@ -60,7 +59,7 @@ public class ConfigureAlertsCommandTest {
BeepType.BIP_BEEP_BIP_BEEP_BIP_BEEP_BIP_BEEP, //
BeepRepeat.EVERY_MINUTE_FOR_15_MINUTES);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("020f00000202"), //
alertConfiguration3.getRawData());
@ -68,13 +67,13 @@ public class ConfigureAlertsCommandTest {
0xfeb6268b, //
Arrays.asList(alertConfiguration1, alertConfiguration2, alertConfiguration3));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1916feb6268b79a410df0205280012830206020f00000202"), //
configureAlertsCommand.getRawData());
}
@Test
public void testLowReservoirAlert() {
void testLowReservoirAlert() {
AlertConfiguration alertConfiguration = new AlertConfiguration(//
AlertType.LOW_RESERVOIR_ALERT, //
AlertSlot.SLOT4, //
@ -89,7 +88,7 @@ public class ConfigureAlertsCommandTest {
0xae01a66c, //
Collections.singletonList(alertConfiguration));
assertArrayEquals(
Assertions.assertArrayEquals(
ByteUtil.fromHexString("190aae01a66c4c0000640102"), //
configureAlertsCommand.getRawData());
}

View file

@ -1,18 +1,17 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.MessageBlockType;
public class DeactivatePodCommandTest {
class DeactivatePodCommandTest {
@Test
public void testEncoding() {
void testEncoding() {
DeactivatePodCommand deactivatePodCommand = new DeactivatePodCommand(0x10203040);
byte[] rawData = deactivatePodCommand.getRawData();
assertArrayEquals(new byte[]{
Assertions.assertArrayEquals(new byte[]{
MessageBlockType.DEACTIVATE_POD.getValue(),
4, // length
(byte) 0x10, (byte) 0x20, (byte) 0x30, (byte) 0x40 // nonce

View file

@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
/** @noinspection unused*/
public class FaultConfigCommandTest {
// TODO add tests (obtain captures first)
}

View file

@ -1,31 +1,30 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodInfoType;
import info.nightscout.pump.core.utils.ByteUtil;
public class GetStatusCommandTest {
class GetStatusCommandTest {
@Test
public void testPodInfoTypeNormal() {
void testPodInfoTypeNormal() {
GetStatusCommand getStatusCommand = new GetStatusCommand(PodInfoType.NORMAL);
assertArrayEquals(ByteUtil.fromHexString("0e0100"), getStatusCommand.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("0e0100"), getStatusCommand.getRawData());
}
@Test
public void testPodInfoTypeConfiguredAlerts() {
void testPodInfoTypeConfiguredAlerts() {
GetStatusCommand getStatusCommand = new GetStatusCommand(PodInfoType.ACTIVE_ALERTS);
assertArrayEquals(ByteUtil.fromHexString("0e0101"), getStatusCommand.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("0e0101"), getStatusCommand.getRawData());
}
@Test
public void testPodInfoTypeFaultEvents() {
void testPodInfoTypeFaultEvents() {
GetStatusCommand getStatusCommand = new GetStatusCommand(PodInfoType.DETAILED_STATUS);
assertArrayEquals(ByteUtil.fromHexString("0e0102"), getStatusCommand.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("0e0102"), getStatusCommand.getRawData());
}
}

View file

@ -1,8 +1,7 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
@ -14,17 +13,17 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.sc
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.schedule.BolusDeliverySchedule;
import info.nightscout.pump.core.utils.ByteUtil;
public class SetInsulinScheduleCommandTest {
class SetInsulinScheduleCommandTest {
@Test
public void testTemporaryBasalScheduleAlternatingSegmentFlag() {
void testTemporaryBasalScheduleAlternatingSegmentFlag() {
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0x9746c65b, //
0.05, Duration.standardMinutes(30));
assertArrayEquals(ByteUtil.fromHexString("1a0e9746c65b01007901384000000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("1a0e9746c65b01007901384000000000"), //
setInsulinScheduleCommand.getRawData());
SetInsulinScheduleCommand setInsulinScheduleCommand2 = new SetInsulinScheduleCommand(0x9746c65b, //
0.05, Duration.standardHours(8).plus(Duration.standardMinutes(30)));
assertArrayEquals(ByteUtil.fromHexString("1a109746c65b0100911138400000f8000000"), //
Assertions.assertArrayEquals(ByteUtil.fromHexString("1a109746c65b0100911138400000f8000000"), //
setInsulinScheduleCommand2.getRawData());
// Test passed before introducing a maximum temp basal duration of 12 hours
@ -35,47 +34,47 @@ public class SetInsulinScheduleCommandTest {
}
@Test
public void testTemporaryBasalScheduleMessage() {
void testTemporaryBasalScheduleMessage() {
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0xea2d0a3b, //
0.2, Duration.standardMinutes(30));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a0eea2d0a3b01007d01384000020002"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/TempBasalTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testTemporaryBasalScheduleMessageWithAlternatingPulse() {
void testTemporaryBasalScheduleMessageWithAlternatingPulse() {
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0x4e2c2717, //
0.05, Duration.standardMinutes(150));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a0e4e2c271701007f05384000004800"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/TempBasalTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testLargerTemporaryBasalScheduleMessage() {
void testLargerTemporaryBasalScheduleMessage() {
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0x87e8d03a, //
2D, Duration.standardMinutes(90));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a0e87e8d03a0100cb03384000142014"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/TempBasalTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testExtremelyLargeTemporaryBasalScheduleMessage() {
void testExtremelyLargeTemporaryBasalScheduleMessage() {
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0xa958c5ad, //
30D, Duration.standardHours(12));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a10a958c5ad0104f5183840012cf12c712c"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/TempBasalTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBasalScheduleSingleEntry() {
void testBasalScheduleSingleEntry() {
BasalSchedule basalSchedule = new BasalSchedule(Collections.singletonList(new BasalScheduleEntry(0.05, Duration.ZERO)));
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand( //
@ -83,13 +82,13 @@ public class SetInsulinScheduleCommandTest {
basalSchedule, //
Duration.standardHours(8).plus(Duration.standardMinutes(15)));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a1201020304000064101c200000f800f800f800"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BasalScheduleTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBasalScheduleWithTwelveEntries() {
void testBasalScheduleWithTwelveEntries() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(1.30, Duration.ZERO), //
new BasalScheduleEntry(0.05, Duration.standardMinutes(30)), //
@ -111,13 +110,13 @@ public class SetInsulinScheduleCommandTest {
basalSchedule, //
Duration.standardMinutes((0x03 + 1) * 30).minus(Duration.standardSeconds(0x0ae8 / 8)));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a2af36a23a3000291030ae80000000d280000111809700a180610052806100600072806001128100009e808"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BasalScheduleTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBasalScheduleWithThirteenEntries() {
void testBasalScheduleWithThirteenEntries() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(1.30, Duration.ZERO), //
new BasalScheduleEntry(0.05, Duration.standardMinutes(30)), //
@ -140,13 +139,13 @@ public class SetInsulinScheduleCommandTest {
basalSchedule, //
Duration.standardMinutes((0x27 + 1) * 30).minus(Duration.standardSeconds(0x1518 / 8)));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a2a851072aa0001dd2715180003000d280000111809700a180610052806100600072806001118101801e808"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BasalScheduleTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBasalScheduleRounding() {
void testBasalScheduleRounding() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(2.75, Duration.ZERO),
new BasalScheduleEntry(20.25, Duration.standardMinutes(60)), //
@ -163,13 +162,13 @@ public class SetInsulinScheduleCommandTest {
basalSchedule, //
Duration.standardMinutes((0x28 + 1) * 30).minus(Duration.standardSeconds(0x1af0 / 8)));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a1ec2a32da800053a281af00010181b00ca003200650001f8008800f0230023"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BasalScheduleTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBasalScheduleRounding2() {
void testBasalScheduleRounding2() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(0.6, Duration.ZERO),
new BasalScheduleEntry(0.65, Duration.standardMinutes(450)), //
@ -186,13 +185,13 @@ public class SetInsulinScheduleCommandTest {
basalSchedule, //
Duration.standardMinutes((0x2c + 1) * 30).minus(Duration.standardSeconds(0x2190 / 8)));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a18851072aa00021b2c21900004f00600071005b8061801e008"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BasalScheduleTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBasalScheduleSegmentMerging() {
void testBasalScheduleSegmentMerging() {
List<BasalScheduleEntry> entries = Arrays.asList(
new BasalScheduleEntry(0.8, Duration.ZERO),
new BasalScheduleEntry(0.9, Duration.standardMinutes(180)), //
@ -211,37 +210,37 @@ public class SetInsulinScheduleCommandTest {
basalSchedule, //
Duration.standardMinutes((0x2a + 1) * 30).minus(Duration.standardSeconds(0x1e50 / 8)));
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("1a1a851072aa0002422a1e50000650083009f808380850073009700b"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BasalScheduleTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBolus() {
void testBolus() {
BolusDeliverySchedule bolusDeliverySchedule = new BolusDeliverySchedule(2.6, Duration.standardSeconds(1));
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0xbed2e16b, bolusDeliverySchedule);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.createByteArrayFromHexString("1a0ebed2e16b02010a0101a000340034"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BolusTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testBolusExtraCommandWithExtraOddPulseCount() {
void testBolusExtraCommandWithExtraOddPulseCount() {
BolusDeliverySchedule bolusDeliverySchedule = new BolusDeliverySchedule(2.05, Duration.standardSeconds(2));
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0xcf9e81ac, bolusDeliverySchedule);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.createByteArrayFromHexString("1a0ecf9e81ac0200e501029000290029"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BolusTests.swift
setInsulinScheduleCommand.getRawData());
}
@Test
public void testLargeBolus() {
void testLargeBolus() {
BolusDeliverySchedule bolusDeliverySchedule = new BolusDeliverySchedule(29.95, Duration.standardSeconds(2));
SetInsulinScheduleCommand setInsulinScheduleCommand = new SetInsulinScheduleCommand(0x31204ba7, bolusDeliverySchedule);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.createByteArrayFromHexString("1a0e31204ba702014801257002570257"), // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/BolusTests.swift
setInsulinScheduleCommand.getRawData());
}

View file

@ -1,22 +1,21 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.joda.time.DateTime;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.pump.core.utils.ByteUtil;
public class SetupPodCommandTest {
class SetupPodCommandTest {
@Test
public void testEncoding() {
void testEncoding() {
SetupPodCommand setupPodCommand = new SetupPodCommand( //
0x1f00ee87, //
new DateTime(2013, 4, 5, 22, 52, 0), //
41847, //
240439);
assertArrayEquals( //
Assertions.assertArrayEquals( //
ByteUtil.fromHexString("03131f00ee87140404050d16340000a3770003ab37"), // From https://github.com/openaps/openomni/wiki/Command-03-Setup-Pod
setupPodCommand.getRawData());
}

View file

@ -1,75 +1,74 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.command;
import static org.junit.Assert.assertArrayEquals;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.pump.core.utils.ByteUtil;
public class TempBasalExtraCommandTest {
class TempBasalExtraCommandTest {
@Test
public void testTempBasalExtraCommand() {
void testTempBasalExtraCommand() {
TempBasalExtraCommand tempBasalExtraCommand = new TempBasalExtraCommand(30D, Duration.standardMinutes(30),
false, true, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("160e7c000bb8000927c00bb8000927c0"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("160e7c000bb8000927c00bb8000927c0"),
tempBasalExtraCommand.getRawData());
}
@Test
public void testBasalExtraCommandForOddPulseCountRate() {
void testBasalExtraCommandForOddPulseCountRate() {
TempBasalExtraCommand tempBasalExtraCommand = new TempBasalExtraCommand(0.05, Duration.standardMinutes(30),
false, true, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("160e7c00000515752a00000515752a00"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("160e7c00000515752a00000515752a00"),
tempBasalExtraCommand.getRawData());
TempBasalExtraCommand tempBasalExtraCommand2 = new TempBasalExtraCommand(2.05, Duration.standardMinutes(30),
false, false, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("160e3c0000cd0085fac700cd0085fac7"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("160e3c0000cd0085fac700cd0085fac7"),
tempBasalExtraCommand2.getRawData());
TempBasalExtraCommand tempBasalExtraCommand3 = new TempBasalExtraCommand(2.10, Duration.standardMinutes(30),
false, false, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("160e3c0000d20082ca2400d20082ca24"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("160e3c0000d20082ca2400d20082ca24"),
tempBasalExtraCommand3.getRawData());
TempBasalExtraCommand tempBasalExtraCommand4 = new TempBasalExtraCommand(2.15, Duration.standardMinutes(30),
false, false, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("160e3c0000d7007fbf7d00d7007fbf7d"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("160e3c0000d7007fbf7d00d7007fbf7d"),
tempBasalExtraCommand4.getRawData());
}
@Test
public void testBasalExtraCommandPulseCount() {
void testBasalExtraCommandPulseCount() {
TempBasalExtraCommand tempBasalExtraCommand = new TempBasalExtraCommand(27.35, Duration.standardHours(12),
false, false, Duration.ZERO);
assertArrayEquals(ByteUtil.fromHexString("16140000f5b9000a0ad7f5b9000a0ad70aaf000a0ad7"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("16140000f5b9000a0ad7f5b9000a0ad70aaf000a0ad7"),
tempBasalExtraCommand.getRawData());
}
@Test
public void testTempBasalExtraCommandExtremeValues() {
void testTempBasalExtraCommandExtremeValues() {
TempBasalExtraCommand tempBasalExtraCommand2 = new TempBasalExtraCommand(29.95, Duration.standardHours(12),
false, false, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("16143c00f5af00092ba9f5af00092ba9231900092ba9"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("16143c00f5af00092ba9f5af00092ba9231900092ba9"),
tempBasalExtraCommand2.getRawData());
TempBasalExtraCommand tempBasalExtraCommand = new TempBasalExtraCommand(30D, Duration.standardHours(12),
false, false, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("16143c00f618000927c0f618000927c02328000927c0"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("16143c00f618000927c0f618000927c02328000927c0"),
tempBasalExtraCommand.getRawData());
}
@Test
public void testTempBasalExtraCommandZeroBasal() {
void testTempBasalExtraCommandZeroBasal() {
TempBasalExtraCommand tempBasalExtraCommand = new TempBasalExtraCommand(0D, Duration.standardMinutes(30),
false, true, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("160e7c0000006b49d20000006b49d200"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("160e7c0000006b49d20000006b49d200"),
tempBasalExtraCommand.getRawData());
TempBasalExtraCommand tempBasalExtraCommand2 = new TempBasalExtraCommand(0D, Duration.standardHours(3),
false, true, Duration.standardHours(1));
assertArrayEquals(ByteUtil.fromHexString("162c7c0000006b49d20000006b49d20000006b49d20000006b49d20000006b49d20000006b49d20000006b49d200"),
Assertions.assertArrayEquals(ByteUtil.fromHexString("162c7c0000006b49d20000006b49d20000006b49d20000006b49d20000006b49d20000006b49d20000006b49d200"),
tempBasalExtraCommand2.getRawData());
}
}

View file

@ -1,21 +1,20 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.defs.schedule;
import static org.junit.Assert.assertEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.schedule.BasalTableEntry;
public class BasalTableEntryTest {
class BasalTableEntryTest {
@Test
public void testChecksum() {
void testChecksum() {
BasalTableEntry basalTableEntry = new BasalTableEntry(2, 300, false);
assertEquals(0x5a, basalTableEntry.getChecksum());
Assertions.assertEquals(0x5a, basalTableEntry.getChecksum());
}
@Test
public void testChecksumWithAlternatePulses() {
void testChecksumWithAlternatePulses() {
BasalTableEntry basalTableEntry = new BasalTableEntry(2, 260, true);
assertEquals(0x0b, basalTableEntry.getChecksum());
Assertions.assertEquals(0x0b, basalTableEntry.getChecksum());
}
}

View file

@ -1,52 +1,49 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.FaultEventCode;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodProgressStatus;
import info.nightscout.pump.core.utils.ByteUtil;
public class ErrorResponseTest {
class ErrorResponseTest {
@Test
public void testGetRawData() {
void testGetRawData() {
byte[] encodedData = ByteUtil.fromHexString("060314fa92");
ErrorResponse errorResponse = new ErrorResponse(encodedData);
assertArrayEquals(encodedData, errorResponse.getRawData());
Assertions.assertArrayEquals(encodedData, errorResponse.getRawData());
}
@Test
public void testGetRawDataWithLongerMessage() {
void testGetRawDataWithLongerMessage() {
byte[] encodedData = ByteUtil.fromHexString("060314fa9201");
byte[] expected = ByteUtil.fromHexString("060314fa92");
ErrorResponse errorResponse = new ErrorResponse(encodedData);
assertArrayEquals(expected, errorResponse.getRawData());
Assertions.assertArrayEquals(expected, errorResponse.getRawData());
}
@Test
public void testBadNonce() {
void testBadNonce() {
byte[] encodedData = ByteUtil.fromHexString("060314fa92");
ErrorResponse errorResponse = new ErrorResponse(encodedData);
assertEquals(ErrorResponse.ERROR_RESPONSE_CODE_BAD_NONCE, errorResponse.getErrorResponseCode());
Assertions.assertEquals(ErrorResponse.ERROR_RESPONSE_CODE_BAD_NONCE, errorResponse.getErrorResponseCode());
// TODO add assertion on nonce search key (obtain captures first)
assertNull(errorResponse.getFaultEventCode());
assertNull(errorResponse.getPodProgressStatus());
Assertions.assertNull(errorResponse.getFaultEventCode());
Assertions.assertNull(errorResponse.getPodProgressStatus());
}
@Test
public void testOtherError() {
void testOtherError() {
ErrorResponse errorResponse = new ErrorResponse(ByteUtil.fromHexString("0603101308"));
assertEquals(0x10, errorResponse.getErrorResponseCode());
assertEquals(FaultEventCode.MESSAGE_LENGTH_TOO_LONG, errorResponse.getFaultEventCode());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorResponse.getPodProgressStatus());
Assertions.assertEquals(0x10, errorResponse.getErrorResponseCode());
Assertions.assertEquals(FaultEventCode.MESSAGE_LENGTH_TOO_LONG, errorResponse.getFaultEventCode());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorResponse.getPodProgressStatus());
assertNull(errorResponse.getNonceSearchKey());
Assertions.assertNull(errorResponse.getNonceSearchKey());
}
}

View file

@ -1,11 +1,7 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.AlertSlot;
@ -14,96 +10,95 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.Om
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodProgressStatus;
import info.nightscout.pump.core.utils.ByteUtil;
public class StatusResponseTest {
// TODO add /extend tests
class StatusResponseTest {
@Test
public void testRawData() {
void testRawData() {
byte[] encodedData = ByteUtil.fromHexString("1d080000000038800000");
StatusResponse statusResponse = new StatusResponse(encodedData);
assertArrayEquals(encodedData, statusResponse.getRawData());
Assertions.assertArrayEquals(encodedData, statusResponse.getRawData());
}
@Test
public void testRawDataWithLongerMessage() {
void testRawDataWithLongerMessage() {
byte[] encodedData = ByteUtil.fromHexString("1d08000000003880000001");
byte[] expected = ByteUtil.fromHexString("1d080000000038800000");
StatusResponse statusResponse = new StatusResponse(encodedData);
assertArrayEquals(expected, statusResponse.getRawData());
Assertions.assertArrayEquals(expected, statusResponse.getRawData());
}
@Test
public void testWithSampleCapture() {
void testWithSampleCapture() {
byte[] bytes = ByteUtil.fromHexString("1d180258f80000146fff"); // From https://github.com/openaps/openomni/wiki/Command-1D-Status-response
StatusResponse statusResponse = new StatusResponse(bytes);
assertEquals(DeliveryStatus.NORMAL, statusResponse.getDeliveryStatus());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, statusResponse.getPodProgressStatus());
assertNull("Reservoir level should be null", statusResponse.getReservoirLevel());
assertEquals(Duration.standardMinutes(1307).getMillis(), statusResponse.getTimeActive().getMillis());
assertEquals(1201, statusResponse.getTicksDelivered());
assertEquals(60.05, statusResponse.getInsulinDelivered(), 0.000001);
assertEquals(15, statusResponse.getPodMessageCounter());
assertEquals(0, statusResponse.getBolusNotDelivered(), 0.000001);
assertEquals(0, statusResponse.getUnacknowledgedAlerts().getAlertSlots().size());
Assertions.assertEquals(DeliveryStatus.NORMAL, statusResponse.getDeliveryStatus());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, statusResponse.getPodProgressStatus());
Assertions.assertNull(statusResponse.getReservoirLevel());
Assertions.assertEquals(Duration.standardMinutes(1307).getMillis(), statusResponse.getTimeActive().getMillis());
Assertions.assertEquals(1201, statusResponse.getTicksDelivered());
Assertions.assertEquals(60.05, statusResponse.getInsulinDelivered(), 0.000001);
Assertions.assertEquals(15, statusResponse.getPodMessageCounter());
Assertions.assertEquals(0, statusResponse.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(0, statusResponse.getUnacknowledgedAlerts().getAlertSlots().size());
assertArrayEquals(ByteUtil.fromHexString("1d180258f80000146fff"), statusResponse.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1d180258f80000146fff"), statusResponse.getRawData());
}
@Test
public void testWithSampleCaptureWithChangePodSoonAlert() {
void testWithSampleCaptureWithChangePodSoonAlert() {
byte[] bytes = ByteUtil.fromHexString("1d19061f6800044295e8"); // From https://github.com/openaps/openomni/wiki/Status-Response-1D-long-run-%28Lytrix%29
StatusResponse statusResponse = new StatusResponse(bytes);
assertEquals(DeliveryStatus.NORMAL, statusResponse.getDeliveryStatus());
assertEquals(PodProgressStatus.FIFTY_OR_LESS_UNITS, statusResponse.getPodProgressStatus());
assertEquals(24.4, statusResponse.getReservoirLevel(), 0.000001);
assertEquals(Duration.standardMinutes(4261).getMillis(), statusResponse.getTimeActive().getMillis());
assertEquals(3134, statusResponse.getTicksDelivered());
assertEquals(156.7, statusResponse.getInsulinDelivered(), 0.000001);
assertEquals(13, statusResponse.getPodMessageCounter());
assertEquals(0, statusResponse.getBolusNotDelivered(), 0.000001);
assertEquals(1, statusResponse.getUnacknowledgedAlerts().getAlertSlots().size());
assertEquals(AlertSlot.SLOT3, statusResponse.getUnacknowledgedAlerts().getAlertSlots().get(0));
Assertions.assertEquals(DeliveryStatus.NORMAL, statusResponse.getDeliveryStatus());
Assertions.assertEquals(PodProgressStatus.FIFTY_OR_LESS_UNITS, statusResponse.getPodProgressStatus());
Assertions.assertEquals(24.4, statusResponse.getReservoirLevel(), 0.000001);
Assertions.assertEquals(Duration.standardMinutes(4261).getMillis(), statusResponse.getTimeActive().getMillis());
Assertions.assertEquals(3134, statusResponse.getTicksDelivered());
Assertions.assertEquals(156.7, statusResponse.getInsulinDelivered(), 0.000001);
Assertions.assertEquals(13, statusResponse.getPodMessageCounter());
Assertions.assertEquals(0, statusResponse.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(1, statusResponse.getUnacknowledgedAlerts().getAlertSlots().size());
Assertions.assertEquals(AlertSlot.SLOT3, statusResponse.getUnacknowledgedAlerts().getAlertSlots().get(0));
assertArrayEquals(ByteUtil.fromHexString("1d19061f6800044295e8"), statusResponse.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1d19061f6800044295e8"), statusResponse.getRawData());
}
@Test
public void testLargeValues() {
void testLargeValues() {
byte[] bytes = ByteUtil.fromHexString("1d11ffffffffffffffff");
StatusResponse statusResponse = new StatusResponse(bytes);
assertEquals(Duration.standardMinutes(8191).getMillis(), statusResponse.getTimeActive().getMillis());
assertEquals(OmnipodConstants.POD_PULSE_SIZE * 1023, statusResponse.getBolusNotDelivered(), 0.000001);
assertNull("Reservoir level should be null", statusResponse.getReservoirLevel());
assertEquals(OmnipodConstants.POD_PULSE_SIZE * 8191, statusResponse.getInsulinDelivered(), 0.0000001);
assertEquals(8191, statusResponse.getTicksDelivered());
assertEquals(OmnipodConstants.POD_PULSE_SIZE * 8191, statusResponse.getInsulinDelivered(), 0.0000001);
assertEquals(15, statusResponse.getPodMessageCounter());
assertEquals(8, statusResponse.getUnacknowledgedAlerts().getAlertSlots().size());
Assertions.assertEquals(Duration.standardMinutes(8191).getMillis(), statusResponse.getTimeActive().getMillis());
Assertions.assertEquals(OmnipodConstants.POD_PULSE_SIZE * 1023, statusResponse.getBolusNotDelivered(), 0.000001);
Assertions.assertNull(statusResponse.getReservoirLevel());
Assertions.assertEquals(OmnipodConstants.POD_PULSE_SIZE * 8191, statusResponse.getInsulinDelivered(), 0.0000001);
Assertions.assertEquals(8191, statusResponse.getTicksDelivered());
Assertions.assertEquals(OmnipodConstants.POD_PULSE_SIZE * 8191, statusResponse.getInsulinDelivered(), 0.0000001);
Assertions.assertEquals(15, statusResponse.getPodMessageCounter());
Assertions.assertEquals(8, statusResponse.getUnacknowledgedAlerts().getAlertSlots().size());
assertArrayEquals(ByteUtil.fromHexString("1d11ffffffffffffffff"), statusResponse.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1d11ffffffffffffffff"), statusResponse.getRawData());
}
@Test
public void testWithReservoirLevel() {
void testWithReservoirLevel() {
byte[] bytes = ByteUtil.fromHexString("1d19050ec82c08376f98");
StatusResponse statusResponse = new StatusResponse(bytes);
assertTrue(Duration.standardMinutes(3547).isEqual(statusResponse.getTimeActive()));
assertEquals(DeliveryStatus.NORMAL, statusResponse.getDeliveryStatus());
assertEquals(PodProgressStatus.FIFTY_OR_LESS_UNITS, statusResponse.getPodProgressStatus());
assertEquals(2589, statusResponse.getTicksDelivered());
assertEquals(129.45, statusResponse.getInsulinDelivered(), 0.00001);
assertEquals(46.00, statusResponse.getReservoirLevel(), 0.00001);
assertEquals(2.2, statusResponse.getBolusNotDelivered(), 0.0001);
assertEquals(9, statusResponse.getPodMessageCounter());
Assertions.assertTrue(Duration.standardMinutes(3547).isEqual(statusResponse.getTimeActive()));
Assertions.assertEquals(DeliveryStatus.NORMAL, statusResponse.getDeliveryStatus());
Assertions.assertEquals(PodProgressStatus.FIFTY_OR_LESS_UNITS, statusResponse.getPodProgressStatus());
Assertions.assertEquals(2589, statusResponse.getTicksDelivered());
Assertions.assertEquals(129.45, statusResponse.getInsulinDelivered(), 0.00001);
Assertions.assertEquals(46.00, statusResponse.getReservoirLevel(), 0.00001);
Assertions.assertEquals(2.2, statusResponse.getBolusNotDelivered(), 0.0001);
Assertions.assertEquals(9, statusResponse.getPodMessageCounter());
assertArrayEquals(ByteUtil.fromHexString("1d19050ec82c08376f98"), statusResponse.getRawData());
Assertions.assertArrayEquals(ByteUtil.fromHexString("1d19050ec82c08376f98"), statusResponse.getRawData());
}
}

View file

@ -1,81 +1,75 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodProgressStatus;
import info.nightscout.pump.core.utils.ByteUtil;
public class VersionResponseTest {
class VersionResponseTest {
@Test
public void testRawDataAssignAddressVersionResponse() {
void testRawDataAssignAddressVersionResponse() {
byte[] encodedData = ByteUtil.fromHexString("011502070002070002020000a64000097c279c1f08ced2");
VersionResponse versionResponse = new VersionResponse(encodedData);
assertArrayEquals(encodedData, versionResponse.getRawData());
Assertions.assertArrayEquals(encodedData, versionResponse.getRawData());
}
@Test
public void testRawDataAssignAddressVersionResponseWithLongerMessage() {
void testRawDataAssignAddressVersionResponseWithLongerMessage() {
byte[] encodedData = ByteUtil.fromHexString("011502070002070002020000a64000097c279c1f08ced201");
byte[] expected = ByteUtil.fromHexString("011502070002070002020000a64000097c279c1f08ced2");
VersionResponse versionResponse = new VersionResponse(encodedData);
assertArrayEquals(expected, versionResponse.getRawData());
Assertions.assertArrayEquals(expected, versionResponse.getRawData());
}
@Test
public void testRawDataSetupPodVersionResponse() {
void testRawDataSetupPodVersionResponse() {
byte[] encodedData = ByteUtil.fromHexString("011b13881008340a5002070002070002030000a3770003ab371f00ee87");
VersionResponse versionResponse = new VersionResponse(encodedData);
assertArrayEquals(encodedData, versionResponse.getRawData());
Assertions.assertArrayEquals(encodedData, versionResponse.getRawData());
}
@Test
public void testRawDataSetupPodVersionResponseWithLongerMessage() {
void testRawDataSetupPodVersionResponseWithLongerMessage() {
byte[] encodedData = ByteUtil.fromHexString("011b13881008340a5002070002070002030000a3770003ab371f00ee8701");
byte[] expected = ByteUtil.fromHexString("011b13881008340a5002070002070002030000a3770003ab371f00ee87");
VersionResponse versionResponse = new VersionResponse(encodedData);
assertArrayEquals(expected, versionResponse.getRawData());
Assertions.assertArrayEquals(expected, versionResponse.getRawData());
}
@Test
public void testAssignAddressVersionResponse() {
void testAssignAddressVersionResponse() {
VersionResponse versionResponse = new VersionResponse(ByteUtil.fromHexString("011502070002070002020000a64000097c279c1f08ced2"));
assertTrue(versionResponse.isAssignAddressVersionResponse());
assertFalse(versionResponse.isSetupPodVersionResponse());
assertEquals(0x1f08ced2, versionResponse.getAddress());
assertEquals(42560, versionResponse.getLot());
assertEquals(621607, versionResponse.getTid());
assertEquals("2.7.0", versionResponse.getPiVersion().toString());
assertEquals("2.7.0", versionResponse.getPmVersion().toString());
assertNotNull(versionResponse.getRssi());
assertNotNull(versionResponse.getGain());
Assertions.assertTrue(versionResponse.isAssignAddressVersionResponse());
Assertions.assertFalse(versionResponse.isSetupPodVersionResponse());
Assertions.assertEquals(0x1f08ced2, versionResponse.getAddress());
Assertions.assertEquals(42560, versionResponse.getLot());
Assertions.assertEquals(621607, versionResponse.getTid());
Assertions.assertEquals("2.7.0", versionResponse.getPiVersion().toString());
Assertions.assertEquals("2.7.0", versionResponse.getPmVersion().toString());
Assertions.assertNotNull(versionResponse.getRssi());
Assertions.assertNotNull(versionResponse.getGain());
}
@Test
public void testSetupPodVersionResponse() {
void testSetupPodVersionResponse() {
VersionResponse versionResponse = new VersionResponse(ByteUtil.fromHexString("011b13881008340a5002070002070002030000a3770003ab371f00ee87"));
assertFalse(versionResponse.isAssignAddressVersionResponse());
assertTrue(versionResponse.isSetupPodVersionResponse());
assertEquals(0x1f00ee87, versionResponse.getAddress());
assertEquals(41847, versionResponse.getLot());
assertEquals(240439, versionResponse.getTid());
assertEquals(PodProgressStatus.PAIRING_COMPLETED, versionResponse.getPodProgressStatus());
assertEquals("2.7.0", versionResponse.getPiVersion().toString());
assertEquals("2.7.0", versionResponse.getPmVersion().toString());
assertNull(versionResponse.getRssi());
assertNull(versionResponse.getGain());
Assertions.assertFalse(versionResponse.isAssignAddressVersionResponse());
Assertions.assertTrue(versionResponse.isSetupPodVersionResponse());
Assertions.assertEquals(0x1f00ee87, versionResponse.getAddress());
Assertions.assertEquals(41847, versionResponse.getLot());
Assertions.assertEquals(240439, versionResponse.getTid());
Assertions.assertEquals(PodProgressStatus.PAIRING_COMPLETED, versionResponse.getPodProgressStatus());
Assertions.assertEquals("2.7.0", versionResponse.getPiVersion().toString());
Assertions.assertEquals("2.7.0", versionResponse.getPmVersion().toString());
Assertions.assertNull(versionResponse.getRssi());
Assertions.assertNull(versionResponse.getGain());
}
}

View file

@ -1,35 +1,33 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
import info.nightscout.pump.core.utils.ByteUtil;
public class PodInfoActiveAlertsTest {
class PodInfoActiveAlertsTest {
@Test
public void testNoActiveAlerts() {
void testNoActiveAlerts() {
byte[] encodedMessage = ByteUtil.fromHexString("01000000000000000000000000000000000000"); // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
PodInfoActiveAlerts podInfoActiveAlerts = new PodInfoActiveAlerts(encodedMessage);
List<PodInfoActiveAlerts.AlertActivation> alertActivations = podInfoActiveAlerts.getAlertActivations();
assertEquals(0, alertActivations.size());
Assertions.assertEquals(0, alertActivations.size());
}
@Test
public void testChangePodAfter3Days() {
void testChangePodAfter3Days() {
byte[] encodedMessage = ByteUtil.fromHexString("010000000000000000000000000000000010e1"); // from https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
PodInfoActiveAlerts podInfoActiveAlerts = new PodInfoActiveAlerts(encodedMessage);
List<PodInfoActiveAlerts.AlertActivation> alertActivations = podInfoActiveAlerts.getAlertActivations();
assertEquals(1, alertActivations.size());
Assertions.assertEquals(1, alertActivations.size());
PodInfoActiveAlerts.AlertActivation alertActivation = alertActivations.get(0);
Duration expectedDuration = Duration.standardHours(72).plus(Duration.standardMinutes(1));
assertTrue(expectedDuration.isEqual(alertActivation.getValueAsDuration()));
Assertions.assertTrue(expectedDuration.isEqual(alertActivation.getValueAsDuration()));
}
}

View file

@ -1,23 +1,21 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.FaultEventCode;
import info.nightscout.pump.core.utils.ByteUtil;
public class PodInfoDataLogTest {
class PodInfoDataLogTest {
@Test
public void testDecoding() {
void testDecoding() {
PodInfoDataLog podInfoDataLog = new PodInfoDataLog(ByteUtil.fromHexString("030100010001043c"), 8); // From https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
assertEquals(FaultEventCode.FAILED_FLASH_ERASE, podInfoDataLog.getFaultEventCode());
assertTrue(Duration.standardMinutes(1).isEqual(podInfoDataLog.getTimeFaultEvent()));
assertTrue(Duration.standardMinutes(1).isEqual(podInfoDataLog.getTimeSinceActivation()));
assertEquals(4, podInfoDataLog.getDataChunkSize());
assertEquals(60, podInfoDataLog.getMaximumNumberOfDwords());
Assertions.assertEquals(FaultEventCode.FAILED_FLASH_ERASE, podInfoDataLog.getFaultEventCode());
Assertions.assertTrue(Duration.standardMinutes(1).isEqual(podInfoDataLog.getTimeFaultEvent()));
Assertions.assertTrue(Duration.standardMinutes(1).isEqual(podInfoDataLog.getTimeSinceActivation()));
Assertions.assertEquals(4, podInfoDataLog.getDataChunkSize());
Assertions.assertEquals(60, podInfoDataLog.getMaximumNumberOfDwords());
}
}

View file

@ -1,11 +1,7 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.DeliveryStatus;
@ -14,149 +10,151 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.Fa
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodProgressStatus;
import info.nightscout.pump.core.utils.ByteUtil;
// From https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
public class PodInfoDetailedStatusTest {
/**
* @noinspection SpellCheckingInspection
*/ // From https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
class PodInfoDetailedStatusTest {
@Test
public void testPodInfoFaultEventNoFaultAlerts() {
void testPodInfoFaultEventNoFaultAlerts() {
PodInfoDetailedStatus podInfoDetailedStatus = new PodInfoDetailedStatus(ByteUtil.fromHexString("02080100000a003800000003ff008700000095ff0000"));
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPodProgressStatus());
assertEquals(DeliveryStatus.NORMAL, podInfoDetailedStatus.getDeliveryStatus());
assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
assertEquals(0x0a, podInfoDetailedStatus.getPodMessageCounter());
assertNull(podInfoDetailedStatus.getFaultEventCode());
assertTrue(Duration.ZERO.isEqual(podInfoDetailedStatus.getFaultEventTime()));
assertNull(podInfoDetailedStatus.getReservoirLevel());
assertTrue(Duration.standardSeconds(8100).isEqual(podInfoDetailedStatus.getTimeActive()));
assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPodProgressStatus());
Assertions.assertEquals(DeliveryStatus.NORMAL, podInfoDetailedStatus.getDeliveryStatus());
Assertions.assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(0x0a, podInfoDetailedStatus.getPodMessageCounter());
Assertions.assertNull(podInfoDetailedStatus.getFaultEventCode());
Assertions.assertTrue(Duration.ZERO.isEqual(podInfoDetailedStatus.getFaultEventTime()));
Assertions.assertNull(podInfoDetailedStatus.getReservoirLevel());
Assertions.assertTrue(Duration.standardSeconds(8100).isEqual(podInfoDetailedStatus.getTimeActive()));
Assertions.assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
Assertions.assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
ErrorEventInfo errorEventInfo = podInfoDetailedStatus.getErrorEventInfo();
assertNull(errorEventInfo);
assertNull(podInfoDetailedStatus.getPreviousPodProgressStatus());
assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
assertEquals(21, podInfoDetailedStatus.getRadioRSSI());
Assertions.assertNull(errorEventInfo);
Assertions.assertNull(podInfoDetailedStatus.getPreviousPodProgressStatus());
Assertions.assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
Assertions.assertEquals(21, podInfoDetailedStatus.getRadioRSSI());
}
@Test
public void testPodInfoFaultEventDeliveryErrorDuringPriming() {
void testPodInfoFaultEventDeliveryErrorDuringPriming() {
PodInfoDetailedStatus podInfoDetailedStatus = new PodInfoDetailedStatus(ByteUtil.fromHexString("020f0000000900345c000103ff0001000005ae056029"));
assertEquals(PodProgressStatus.INACTIVE, podInfoDetailedStatus.getPodProgressStatus());
assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
assertEquals(0x09, podInfoDetailedStatus.getPodMessageCounter());
assertEquals(FaultEventCode.PRIME_OPEN_COUNT_TOO_LOW, podInfoDetailedStatus.getFaultEventCode());
assertTrue(Duration.standardSeconds(60).isEqual(podInfoDetailedStatus.getFaultEventTime()));
assertNull(podInfoDetailedStatus.getReservoirLevel());
assertTrue(Duration.standardSeconds(60).isEqual(podInfoDetailedStatus.getTimeActive()));
assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
Assertions.assertEquals(PodProgressStatus.INACTIVE, podInfoDetailedStatus.getPodProgressStatus());
Assertions.assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
Assertions.assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(0x09, podInfoDetailedStatus.getPodMessageCounter());
Assertions.assertEquals(FaultEventCode.PRIME_OPEN_COUNT_TOO_LOW, podInfoDetailedStatus.getFaultEventCode());
Assertions.assertTrue(Duration.standardSeconds(60).isEqual(podInfoDetailedStatus.getFaultEventTime()));
Assertions.assertNull(podInfoDetailedStatus.getReservoirLevel());
Assertions.assertTrue(Duration.standardSeconds(60).isEqual(podInfoDetailedStatus.getTimeActive()));
Assertions.assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
Assertions.assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
ErrorEventInfo errorEventInfo = podInfoDetailedStatus.getErrorEventInfo();
assertFalse(errorEventInfo.isInsulinStateTableCorruption());
assertEquals(0x00, errorEventInfo.getInternalVariable());
assertFalse(errorEventInfo.isImmediateBolusInProgress());
assertEquals(PodProgressStatus.PRIMING_COMPLETED, errorEventInfo.getPodProgressStatus());
assertEquals(PodProgressStatus.PRIMING_COMPLETED, podInfoDetailedStatus.getPreviousPodProgressStatus());
assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
assertEquals(46, podInfoDetailedStatus.getRadioRSSI());
Assertions.assertFalse(errorEventInfo.isInsulinStateTableCorruption());
Assertions.assertEquals(0x00, errorEventInfo.getInternalVariable());
Assertions.assertFalse(errorEventInfo.isImmediateBolusInProgress());
Assertions.assertEquals(PodProgressStatus.PRIMING_COMPLETED, errorEventInfo.getPodProgressStatus());
Assertions.assertEquals(PodProgressStatus.PRIMING_COMPLETED, podInfoDetailedStatus.getPreviousPodProgressStatus());
Assertions.assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
Assertions.assertEquals(46, podInfoDetailedStatus.getRadioRSSI());
}
@Test
public void testPodInfoFaultEventErrorShuttingDown() {
void testPodInfoFaultEventErrorShuttingDown() {
PodInfoDetailedStatus podInfoDetailedStatus = new PodInfoDetailedStatus(ByteUtil.fromHexString("020d0000000407f28609ff03ff0a0200000823080000"));
assertEquals(PodProgressStatus.FAULT_EVENT_OCCURRED, podInfoDetailedStatus.getPodProgressStatus());
assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
assertEquals(2034, podInfoDetailedStatus.getTicksDelivered());
assertEquals(101.7, podInfoDetailedStatus.getInsulinDelivered(), 0.000001);
assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
assertEquals(0x04, podInfoDetailedStatus.getPodMessageCounter());
assertEquals(FaultEventCode.BASAL_OVER_INFUSION_PULSE, podInfoDetailedStatus.getFaultEventCode());
assertTrue(Duration.standardMinutes(2559).isEqual(podInfoDetailedStatus.getFaultEventTime()));
assertNull(podInfoDetailedStatus.getReservoirLevel());
assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
Assertions.assertEquals(PodProgressStatus.FAULT_EVENT_OCCURRED, podInfoDetailedStatus.getPodProgressStatus());
Assertions.assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
Assertions.assertEquals(2034, podInfoDetailedStatus.getTicksDelivered());
Assertions.assertEquals(101.7, podInfoDetailedStatus.getInsulinDelivered(), 0.000001);
Assertions.assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(0x04, podInfoDetailedStatus.getPodMessageCounter());
Assertions.assertEquals(FaultEventCode.BASAL_OVER_INFUSION_PULSE, podInfoDetailedStatus.getFaultEventCode());
Assertions.assertTrue(Duration.standardMinutes(2559).isEqual(podInfoDetailedStatus.getFaultEventTime()));
Assertions.assertNull(podInfoDetailedStatus.getReservoirLevel());
Assertions.assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
Assertions.assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
ErrorEventInfo errorEventInfo = podInfoDetailedStatus.getErrorEventInfo();
assertFalse(errorEventInfo.isInsulinStateTableCorruption());
assertEquals(0x00, errorEventInfo.getInternalVariable());
assertFalse(errorEventInfo.isImmediateBolusInProgress());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorEventInfo.getPodProgressStatus());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPreviousPodProgressStatus());
assertEquals(0, podInfoDetailedStatus.getReceiverLowGain());
assertEquals(35, podInfoDetailedStatus.getRadioRSSI());
Assertions.assertFalse(errorEventInfo.isInsulinStateTableCorruption());
Assertions.assertEquals(0x00, errorEventInfo.getInternalVariable());
Assertions.assertFalse(errorEventInfo.isImmediateBolusInProgress());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorEventInfo.getPodProgressStatus());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPreviousPodProgressStatus());
Assertions.assertEquals(0, podInfoDetailedStatus.getReceiverLowGain());
Assertions.assertEquals(35, podInfoDetailedStatus.getRadioRSSI());
}
@Test
public void testPodInfoFaultEventInsulinNotDelivered() {
void testPodInfoFaultEventInsulinNotDelivered() {
PodInfoDetailedStatus podInfoDetailedStatus = new PodInfoDetailedStatus(ByteUtil.fromHexString("020f0000010200ec6a026803ff026b000028a7082023"));
assertEquals(PodProgressStatus.INACTIVE, podInfoDetailedStatus.getPodProgressStatus());
assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
assertEquals(236, podInfoDetailedStatus.getTicksDelivered());
assertEquals(11.8, podInfoDetailedStatus.getInsulinDelivered(), 0.000001);
assertEquals(0.05, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
assertEquals(0x02, podInfoDetailedStatus.getPodMessageCounter());
assertEquals(FaultEventCode.OCCLUSION_CHECK_ABOVE_THRESHOLD, podInfoDetailedStatus.getFaultEventCode());
assertTrue(Duration.standardMinutes(616).isEqual(podInfoDetailedStatus.getFaultEventTime()));
assertNull(podInfoDetailedStatus.getReservoirLevel());
assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
Assertions.assertEquals(PodProgressStatus.INACTIVE, podInfoDetailedStatus.getPodProgressStatus());
Assertions.assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
Assertions.assertEquals(236, podInfoDetailedStatus.getTicksDelivered());
Assertions.assertEquals(11.8, podInfoDetailedStatus.getInsulinDelivered(), 0.000001);
Assertions.assertEquals(0.05, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(0x02, podInfoDetailedStatus.getPodMessageCounter());
Assertions.assertEquals(FaultEventCode.OCCLUSION_CHECK_ABOVE_THRESHOLD, podInfoDetailedStatus.getFaultEventCode());
Assertions.assertTrue(Duration.standardMinutes(616).isEqual(podInfoDetailedStatus.getFaultEventTime()));
Assertions.assertNull(podInfoDetailedStatus.getReservoirLevel());
Assertions.assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
Assertions.assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
ErrorEventInfo errorEventInfo = podInfoDetailedStatus.getErrorEventInfo();
assertFalse(errorEventInfo.isInsulinStateTableCorruption());
assertEquals(0x01, errorEventInfo.getInternalVariable());
assertFalse(errorEventInfo.isImmediateBolusInProgress());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorEventInfo.getPodProgressStatus());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPreviousPodProgressStatus());
assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
assertEquals(39, podInfoDetailedStatus.getRadioRSSI());
Assertions.assertFalse(errorEventInfo.isInsulinStateTableCorruption());
Assertions.assertEquals(0x01, errorEventInfo.getInternalVariable());
Assertions.assertFalse(errorEventInfo.isImmediateBolusInProgress());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorEventInfo.getPodProgressStatus());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPreviousPodProgressStatus());
Assertions.assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
Assertions.assertEquals(39, podInfoDetailedStatus.getRadioRSSI());
}
@Test
public void testPodInfoFaultEventMaxBolusNotDelivered() {
void testPodInfoFaultEventMaxBolusNotDelivered() {
PodInfoDetailedStatus podInfoDetailedStatus = new PodInfoDetailedStatus(ByteUtil.fromHexString("020f00ffff0200ec6a026803ff026b000028a7082023"));
assertEquals(PodProgressStatus.INACTIVE, podInfoDetailedStatus.getPodProgressStatus());
assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
assertEquals(236, podInfoDetailedStatus.getTicksDelivered());
assertEquals(11.8, podInfoDetailedStatus.getInsulinDelivered(), 0.000001);
assertEquals(3276.75, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001); // Insane and will not happen, but this verifies that we convert it to an unsigned int
assertEquals(0x02, podInfoDetailedStatus.getPodMessageCounter());
assertEquals(FaultEventCode.OCCLUSION_CHECK_ABOVE_THRESHOLD, podInfoDetailedStatus.getFaultEventCode());
assertTrue(Duration.standardMinutes(616).isEqual(podInfoDetailedStatus.getFaultEventTime()));
assertNull(podInfoDetailedStatus.getReservoirLevel());
assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
Assertions.assertEquals(PodProgressStatus.INACTIVE, podInfoDetailedStatus.getPodProgressStatus());
Assertions.assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
Assertions.assertEquals(236, podInfoDetailedStatus.getTicksDelivered());
Assertions.assertEquals(11.8, podInfoDetailedStatus.getInsulinDelivered(), 0.000001);
Assertions.assertEquals(3276.75, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001); // Insane and will not happen, but this verifies that we convert it to an unsigned int
Assertions.assertEquals(0x02, podInfoDetailedStatus.getPodMessageCounter());
Assertions.assertEquals(FaultEventCode.OCCLUSION_CHECK_ABOVE_THRESHOLD, podInfoDetailedStatus.getFaultEventCode());
Assertions.assertTrue(Duration.standardMinutes(616).isEqual(podInfoDetailedStatus.getFaultEventTime()));
Assertions.assertNull(podInfoDetailedStatus.getReservoirLevel());
Assertions.assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
Assertions.assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
ErrorEventInfo errorEventInfo = podInfoDetailedStatus.getErrorEventInfo();
assertFalse(errorEventInfo.isInsulinStateTableCorruption());
assertEquals(0x01, errorEventInfo.getInternalVariable());
assertFalse(errorEventInfo.isImmediateBolusInProgress());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorEventInfo.getPodProgressStatus());
assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPreviousPodProgressStatus());
assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
assertEquals(39, podInfoDetailedStatus.getRadioRSSI());
Assertions.assertFalse(errorEventInfo.isInsulinStateTableCorruption());
Assertions.assertEquals(0x01, errorEventInfo.getInternalVariable());
Assertions.assertFalse(errorEventInfo.isImmediateBolusInProgress());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, errorEventInfo.getPodProgressStatus());
Assertions.assertEquals(PodProgressStatus.ABOVE_FIFTY_UNITS, podInfoDetailedStatus.getPreviousPodProgressStatus());
Assertions.assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
Assertions.assertEquals(39, podInfoDetailedStatus.getRadioRSSI());
}
@Test
public void testPodInfoFaultEventInsulinStateTableCorruptionFoundDuringErrorLogging() {
void testPodInfoFaultEventInsulinStateTableCorruptionFoundDuringErrorLogging() {
PodInfoDetailedStatus podInfoDetailedStatus = new PodInfoDetailedStatus(ByteUtil.fromHexString("020D00000000000012FFFF03FF00160000879A070000"));
assertEquals(PodProgressStatus.FAULT_EVENT_OCCURRED, podInfoDetailedStatus.getPodProgressStatus());
assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
assertEquals(0x00, podInfoDetailedStatus.getPodMessageCounter());
assertEquals(FaultEventCode.RESET_DUE_TO_LVD, podInfoDetailedStatus.getFaultEventCode());
assertTrue(Duration.ZERO.isEqual(podInfoDetailedStatus.getFaultEventTime()));
assertNull(podInfoDetailedStatus.getReservoirLevel());
assertTrue(Duration.standardSeconds(1320).isEqual(podInfoDetailedStatus.getTimeActive()));
assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
Assertions.assertEquals(PodProgressStatus.FAULT_EVENT_OCCURRED, podInfoDetailedStatus.getPodProgressStatus());
Assertions.assertEquals(DeliveryStatus.SUSPENDED, podInfoDetailedStatus.getDeliveryStatus());
Assertions.assertEquals(0, podInfoDetailedStatus.getBolusNotDelivered(), 0.000001);
Assertions.assertEquals(0x00, podInfoDetailedStatus.getPodMessageCounter());
Assertions.assertEquals(FaultEventCode.RESET_DUE_TO_LVD, podInfoDetailedStatus.getFaultEventCode());
Assertions.assertTrue(Duration.ZERO.isEqual(podInfoDetailedStatus.getFaultEventTime()));
Assertions.assertNull(podInfoDetailedStatus.getReservoirLevel());
Assertions.assertTrue(Duration.standardSeconds(1320).isEqual(podInfoDetailedStatus.getTimeActive()));
Assertions.assertEquals(0, podInfoDetailedStatus.getUnacknowledgedAlerts().getRawValue());
Assertions.assertFalse(podInfoDetailedStatus.isFaultAccessingTables());
ErrorEventInfo errorEventInfo = podInfoDetailedStatus.getErrorEventInfo();
assertTrue(errorEventInfo.isInsulinStateTableCorruption());
assertEquals(0x00, errorEventInfo.getInternalVariable());
assertFalse(errorEventInfo.isImmediateBolusInProgress());
assertEquals(PodProgressStatus.INSERTING_CANNULA, errorEventInfo.getPodProgressStatus());
assertEquals(PodProgressStatus.INSERTING_CANNULA, podInfoDetailedStatus.getPreviousPodProgressStatus());
assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
assertEquals(26, podInfoDetailedStatus.getRadioRSSI());
Assertions.assertTrue(errorEventInfo.isInsulinStateTableCorruption());
Assertions.assertEquals(0x00, errorEventInfo.getInternalVariable());
Assertions.assertFalse(errorEventInfo.isImmediateBolusInProgress());
Assertions.assertEquals(PodProgressStatus.INSERTING_CANNULA, errorEventInfo.getPodProgressStatus());
Assertions.assertEquals(PodProgressStatus.INSERTING_CANNULA, podInfoDetailedStatus.getPreviousPodProgressStatus());
Assertions.assertEquals(2, podInfoDetailedStatus.getReceiverLowGain());
Assertions.assertEquals(26, podInfoDetailedStatus.getRadioRSSI());
}
}

View file

@ -1,29 +1,26 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.junit.Assert;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.FaultEventCode;
import info.nightscout.pump.core.utils.ByteUtil;
public class PodInfoFaultAndInitializationTimeTest {
class PodInfoFaultAndInitializationTimeTest {
@Test
public void testDecoding() {
void testDecoding() {
PodInfoFaultAndInitializationTime podInfoFaultAndInitializationTime = new PodInfoFaultAndInitializationTime(ByteUtil.fromHexString("059200010000000000000000091912170e")); // From https://github.com/ps2/rileylink_ios/blob/omnipod-testing/OmniKitTests/PodInfoTests.swift
assertEquals(FaultEventCode.BAD_PUMP_REQ_2_STATE, podInfoFaultAndInitializationTime.getFaultEventCode());
assertTrue(Duration.standardMinutes(1).isEqual(podInfoFaultAndInitializationTime.getTimeFaultEvent()));
Assertions.assertEquals(FaultEventCode.BAD_PUMP_REQ_2_STATE, podInfoFaultAndInitializationTime.getFaultEventCode());
Assertions.assertTrue(Duration.standardMinutes(1).isEqual(podInfoFaultAndInitializationTime.getTimeFaultEvent()));
DateTime dateTime = podInfoFaultAndInitializationTime.getInitializationTime();
Assert.assertEquals(2018, dateTime.getYear());
Assert.assertEquals(9, dateTime.getMonthOfYear());
Assert.assertEquals(25, dateTime.getDayOfMonth());
Assert.assertEquals(23, dateTime.getHourOfDay());
Assert.assertEquals(14, dateTime.getMinuteOfHour());
Assertions.assertEquals(2018, dateTime.getYear());
Assertions.assertEquals(9, dateTime.getMonthOfYear());
Assertions.assertEquals(25, dateTime.getDayOfMonth());
Assertions.assertEquals(23, dateTime.getHourOfDay());
Assertions.assertEquals(14, dateTime.getMinuteOfHour());
}
}

View file

@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
/** @noinspection unused*/
public class PodInfoOlderPulseLogTest {
// TODO
}

View file

@ -1,16 +1,15 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
import static org.junit.Assert.assertEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import info.nightscout.pump.core.utils.ByteUtil;
public class PodInfoRecentPulseLogTest {
class PodInfoRecentPulseLogTest {
@Test
public void testDecoding() {
void testDecoding() {
PodInfoRecentPulseLog podInfoRecentPulseLog = new PodInfoRecentPulseLog(ByteUtil.fromHexString("3d313b004030350045303a00483033004d313a005031310054313f00583038805d302d806030368001313b800c3033801130388014313480193138801c313280213039802431360029313d002c31390031303f0034313900393140003c31390041313e00443137004905723a80087335800d733a801073358015733a80187235801d7338802073338025733a00287235002d723b003072360035703b00383134"), 160);
assertEquals(39, podInfoRecentPulseLog.getDwords().size());
Assertions.assertEquals(39, podInfoRecentPulseLog.getDwords().size());
}
}

View file

@ -1,54 +0,0 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodInfoType;
import info.nightscout.pump.core.utils.ByteUtil;
public class PodInfoResponseTest {
@Test
public void testRawData() {
byte[] encodedData = ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d");
PodInfoResponse podInfoResponse = new PodInfoResponse(encodedData);
assertArrayEquals(encodedData, podInfoResponse.getRawData());
}
@Test
public void testRawDataWithLongerMessage() {
byte[] encodedData = ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d01");
byte[] expected = ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d");
PodInfoResponse podInfoResponse = new PodInfoResponse(encodedData);
assertArrayEquals(expected, podInfoResponse.getRawData());
}
@Test
public void testMessageDecoding() {
PodInfoResponse podInfoResponse = new PodInfoResponse(ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d"));
assertEquals(PodInfoType.DETAILED_STATUS, podInfoResponse.getSubType());
PodInfoDetailedStatus podInfo = (PodInfoDetailedStatus) podInfoResponse.getPodInfo();
assertFalse(podInfo.isFaultAccessingTables());
assertEquals(0x01, podInfo.getErrorEventInfo().getInternalVariable());
}
@Test
public void testInvalidPodInfoTypeMessageDecoding() {
PodInfoResponse podInfoResponse = new PodInfoResponse(ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d"));
assertEquals(PodInfoType.DETAILED_STATUS, podInfoResponse.getSubType());
Assert.assertThrows("Expect throw", ClassCastException.class, () -> {
PodInfoActiveAlerts podInfo = (PodInfoActiveAlerts) podInfoResponse.getPodInfo();
});
}
}

View file

@ -0,0 +1,38 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.communication.message.response.podinfo
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodInfoType
import info.nightscout.pump.core.utils.ByteUtil
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
internal class PodInfoResponseTest {
@Test fun testRawData() {
val encodedData = ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d")
val podInfoResponse = PodInfoResponse(encodedData)
Assertions.assertArrayEquals(encodedData, podInfoResponse.rawData)
}
@Test fun testRawDataWithLongerMessage() {
val encodedData = ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d01")
val expected = ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d")
val podInfoResponse = PodInfoResponse(encodedData)
Assertions.assertArrayEquals(expected, podInfoResponse.rawData)
}
@Test fun testMessageDecoding() {
val podInfoResponse = PodInfoResponse(ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d"))
Assertions.assertEquals(PodInfoType.DETAILED_STATUS, podInfoResponse.subType)
val podInfo = podInfoResponse.podInfo as PodInfoDetailedStatus
Assertions.assertFalse(podInfo.isFaultAccessingTables)
Assertions.assertEquals(0x01, podInfo.errorEventInfo.internalVariable.toInt())
}
@Test fun testInvalidPodInfoTypeMessageDecoding() {
val podInfoResponse = PodInfoResponse(ByteUtil.fromHexString("0216020d0000000000ab6a038403ff03860000285708030d"))
Assertions.assertEquals(PodInfoType.DETAILED_STATUS, podInfoResponse.subType)
Assertions.assertThrows(ClassCastException::class.java) {
@Suppress("UNUSED_VARIABLE") val podInfo = podInfoResponse.podInfo as PodInfoActiveAlerts
}
}
}

View file

@ -1,22 +1,20 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collections;
public class AlertSetTest {
class AlertSetTest {
@Test
public void testEquality() {
void testEquality() {
AlertSet set1 = new AlertSet(Arrays.asList(AlertSlot.SLOT0, AlertSlot.SLOT1));
AlertSet set2 = new AlertSet(Arrays.asList(AlertSlot.SLOT0, AlertSlot.SLOT1));
AlertSet set3 = new AlertSet(Collections.singletonList(AlertSlot.SLOT1));
assertEquals(set1, set2);
assertNotEquals(set1, set3);
assertNotEquals(set2, set3);
Assertions.assertEquals(set1, set2);
Assertions.assertNotEquals(set1, set3);
Assertions.assertNotEquals(set2, set3);
}
}

View file

@ -1,17 +1,15 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.schedule;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import org.joda.time.Duration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
public class BasalScheduleTest {
class BasalScheduleTest {
@Test
public void testRateAt() {
void testRateAt() {
List<BasalScheduleEntry> entries = new ArrayList<>();
entries.add(new BasalScheduleEntry(1.0d, Duration.ZERO));
entries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
@ -19,20 +17,20 @@ public class BasalScheduleTest {
entries.add(new BasalScheduleEntry(4.0d, Duration.standardHours(20)));
BasalSchedule schedule = new BasalSchedule(entries);
assertEquals(1.0d, schedule.rateAt(Duration.ZERO), 0.00001);
assertEquals(1.0d, schedule.rateAt(Duration.standardHours(6).minus(Duration.standardSeconds(1))), 0.00001);
assertEquals(2.0d, schedule.rateAt(Duration.standardHours(6)), 0.00001);
assertEquals(2.0d, schedule.rateAt(Duration.standardHours(6).plus(Duration.standardMinutes(30))), 0.00001);
assertEquals(2.0d, schedule.rateAt(Duration.standardHours(7).minus(Duration.standardSeconds(1))), 0.00001);
assertEquals(3.0d, schedule.rateAt(Duration.standardHours(7)), 0.00001);
assertEquals(3.0d, schedule.rateAt(Duration.standardHours(19)), 0.00001);
assertEquals(3.0d, schedule.rateAt(Duration.standardHours(20).minus(Duration.standardSeconds(1))), 0.00001);
assertEquals(4.0d, schedule.rateAt(Duration.standardHours(20)), 0.00001);
assertEquals(4.0d, schedule.rateAt(Duration.standardHours(24).minus(Duration.standardSeconds(1))), 0.00001);
Assertions.assertEquals(1.0d, schedule.rateAt(Duration.ZERO), 0.00001);
Assertions.assertEquals(1.0d, schedule.rateAt(Duration.standardHours(6).minus(Duration.standardSeconds(1))), 0.00001);
Assertions.assertEquals(2.0d, schedule.rateAt(Duration.standardHours(6)), 0.00001);
Assertions.assertEquals(2.0d, schedule.rateAt(Duration.standardHours(6).plus(Duration.standardMinutes(30))), 0.00001);
Assertions.assertEquals(2.0d, schedule.rateAt(Duration.standardHours(7).minus(Duration.standardSeconds(1))), 0.00001);
Assertions.assertEquals(3.0d, schedule.rateAt(Duration.standardHours(7)), 0.00001);
Assertions.assertEquals(3.0d, schedule.rateAt(Duration.standardHours(19)), 0.00001);
Assertions.assertEquals(3.0d, schedule.rateAt(Duration.standardHours(20).minus(Duration.standardSeconds(1))), 0.00001);
Assertions.assertEquals(4.0d, schedule.rateAt(Duration.standardHours(20)), 0.00001);
Assertions.assertEquals(4.0d, schedule.rateAt(Duration.standardHours(24).minus(Duration.standardSeconds(1))), 0.00001);
}
@Test
public void testEquals() {
void testEquals() {
List<BasalScheduleEntry> entries = new ArrayList<>();
entries.add(new BasalScheduleEntry(1.0d, Duration.ZERO));
entries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
@ -45,13 +43,13 @@ public class BasalScheduleTest {
otherEntries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
otherEntries.add(new BasalScheduleEntry(3.0d, Duration.standardHours(7)));
otherEntries.add(new BasalScheduleEntry(4.0d, Duration.standardHours(20)));
BasalSchedule otherschedule = new BasalSchedule(otherEntries);
BasalSchedule otherSchedule = new BasalSchedule(otherEntries);
assertEquals(schedule, otherschedule);
Assertions.assertEquals(schedule, otherSchedule);
}
@Test
public void testNotEquals() {
void testNotEquals() {
List<BasalScheduleEntry> entries = new ArrayList<>();
entries.add(new BasalScheduleEntry(1.0d, Duration.ZERO));
entries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
@ -64,13 +62,13 @@ public class BasalScheduleTest {
otherEntries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
otherEntries.add(new BasalScheduleEntry(3.0d, Duration.standardHours(7)));
otherEntries.add(new BasalScheduleEntry(4.1d, Duration.standardHours(20)));
BasalSchedule otherschedule = new BasalSchedule(otherEntries);
BasalSchedule otherSchedule = new BasalSchedule(otherEntries);
assertNotEquals(schedule, otherschedule);
Assertions.assertNotEquals(schedule, otherSchedule);
}
@Test
public void testNotEquals2() {
void testNotEquals2() {
List<BasalScheduleEntry> entries = new ArrayList<>();
entries.add(new BasalScheduleEntry(1.0d, Duration.ZERO));
entries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
@ -82,9 +80,9 @@ public class BasalScheduleTest {
otherEntries.add(new BasalScheduleEntry(1.0d, Duration.ZERO));
otherEntries.add(new BasalScheduleEntry(2.0d, Duration.standardHours(6)));
otherEntries.add(new BasalScheduleEntry(3.0d, Duration.standardHours(7)));
BasalSchedule otherschedule = new BasalSchedule(otherEntries);
BasalSchedule otherSchedule = new BasalSchedule(otherEntries);
assertNotEquals(schedule, otherschedule);
Assertions.assertNotEquals(schedule, otherSchedule);
}
}

View file

@ -1,52 +1,50 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class TimeUtilTest {
class TimeUtilTest {
@BeforeEach
public void setUp() {
void setUp() {
DateTimeZone.setDefault(DateTimeZone.forID("Europe/Amsterdam"));
}
@Test
public void testDateTimeToDuration() {
void testDateTimeToDuration() {
DateTime dateTime = new DateTime(1991, 8, 13, 23, 5, 1);
assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
Assertions.assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
}
@Test
public void testDateTimeToDurationAtDstChange() {
void testDateTimeToDurationAtDstChange() {
DateTime dateTime = new DateTime(2020, 10, 25, 23, 5, 1);
assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
Assertions.assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
}
@Test
public void testDateTimeToDurationAtDstReverseChange() {
void testDateTimeToDurationAtDstReverseChange() {
DateTime dateTime = new DateTime(2020, 3, 29, 23, 5, 1);
assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
Assertions.assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
}
@Test
public void testDateTimeInOtherZone() {
void testDateTimeInOtherZone() {
DateTime dateTime = new DateTime(2020, 3, 29, 23, 5, 1, DateTimeZone.forID("America/Los_Angeles"));
assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
Assertions.assertEquals(83101, TimeUtil.toDuration(dateTime).getStandardSeconds());
}
@Test
public void testDateTimeToDurationWithNullDateTime() {
IllegalArgumentException ex = assertThrows(IllegalArgumentException.class, () -> TimeUtil.toDuration(null));
assertEquals("dateTime can not be null", ex.getMessage());
void testDateTimeToDurationWithNullDateTime() {
IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class, () -> TimeUtil.toDuration(null));
Assertions.assertEquals("dateTime can not be null", ex.getMessage());
}
}

View file

@ -1,17 +1,17 @@
package info.nightscout.androidaps.plugins.pump.omnipod.eros.manager
import info.nightscout.androidaps.TestBase
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.FirmwareVersion
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodProgressStatus
import info.nightscout.rx.TestAapsSchedulers
import info.nightscout.rx.bus.RxBus
import info.nightscout.shared.sharedPreferences.SP
import info.nightscout.sharedtests.TestBase
import org.joda.time.DateTime
import org.joda.time.DateTimeUtils
import org.joda.time.DateTimeZone
import org.joda.time.Duration
import org.junit.Assert
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.mockito.Mock
@ -32,8 +32,8 @@ class AapsErosPodStateManagerTest : TestBase() {
0, 0, FirmwareVersion(1, 1, 1),
FirmwareVersion(2, 2, 2), timeZone, PodProgressStatus.ABOVE_FIFTY_UNITS
)
Assert.assertEquals(now, podStateManager.time)
Assert.assertEquals(
Assertions.assertEquals(now, podStateManager.time)
Assertions.assertEquals(
Duration.standardHours(1)
.plus(Duration.standardMinutes(2).plus(Duration.standardSeconds(3))),
podStateManager.scheduleOffset
@ -56,8 +56,8 @@ class AapsErosPodStateManagerTest : TestBase() {
// The system time zone has been updated, but the pod session state's time zone hasn't
// So the pods time should not have been changed
Assert.assertEquals(now, podStateManager.time)
Assert.assertEquals(
Assertions.assertEquals(now, podStateManager.time)
Assertions.assertEquals(
Duration.standardHours(1)
.plus(Duration.standardMinutes(2).plus(Duration.standardSeconds(3))),
podStateManager.scheduleOffset
@ -81,8 +81,8 @@ class AapsErosPodStateManagerTest : TestBase() {
// Both the system time zone have been updated
// So the pods time should have been changed (to +2 hours)
Assert.assertEquals(now.withZone(newTimeZone), podStateManager.time)
Assert.assertEquals(
Assertions.assertEquals(now.withZone(newTimeZone), podStateManager.time)
Assertions.assertEquals(
Duration.standardHours(3)
.plus(Duration.standardMinutes(2).plus(Duration.standardSeconds(3))),
podStateManager.scheduleOffset