From 8ceaaa4119a8158460c49409ba67683918f853fa Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 24 Dec 2022 09:47:05 +0100 Subject: [PATCH] NSCarbs unit tests --- .../nightscout/database/entities/Bolus.kt | 10 ---- .../nightscout/database/entities/Carbs.kt | 2 +- .../entities/interfaces/TraceableDBEntry.kt | 11 ++++ .../extensions/CarbsExtensionKtTest.kt | 51 +++++++++++++++++++ 4 files changed, 63 insertions(+), 11 deletions(-) create mode 100644 plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtensionKtTest.kt diff --git a/database/entities/src/main/java/info/nightscout/database/entities/Bolus.kt b/database/entities/src/main/java/info/nightscout/database/entities/Bolus.kt index f296700e84..4fc7ca0e15 100644 --- a/database/entities/src/main/java/info/nightscout/database/entities/Bolus.kt +++ b/database/entities/src/main/java/info/nightscout/database/entities/Bolus.kt @@ -58,16 +58,6 @@ data class Bolus( notes == other.notes && isBasalInsulin == other.isBasalInsulin - fun interfaceIdsEqualsTo(other: Bolus): Boolean = - interfaceIDs.nightscoutId == interfaceIDs.nightscoutId && - interfaceIDs.nightscoutSystemId == interfaceIDs.nightscoutSystemId && - interfaceIDs.pumpType == interfaceIDs.pumpType && - interfaceIDs.pumpSerial == interfaceIDs.pumpSerial && - interfaceIDs.temporaryId == interfaceIDs.temporaryId && - interfaceIDs.pumpId == interfaceIDs.pumpId && - interfaceIDs.startId == interfaceIDs.startId && - interfaceIDs.endId == interfaceIDs.endId - fun onlyNsIdAdded(previous: Bolus): Boolean = previous.id != id && contentEqualsTo(previous) && diff --git a/database/entities/src/main/java/info/nightscout/database/entities/Carbs.kt b/database/entities/src/main/java/info/nightscout/database/entities/Carbs.kt index 704869b38e..dacd73aeec 100644 --- a/database/entities/src/main/java/info/nightscout/database/entities/Carbs.kt +++ b/database/entities/src/main/java/info/nightscout/database/entities/Carbs.kt @@ -38,7 +38,7 @@ data class Carbs( var notes: String? = null ) : TraceableDBEntry, DBEntryWithTimeAndDuration { - private fun contentEqualsTo(other: Carbs): Boolean = + fun contentEqualsTo(other: Carbs): Boolean = isValid == other.isValid && timestamp == other.timestamp && utcOffset == other.utcOffset && diff --git a/database/entities/src/main/java/info/nightscout/database/entities/interfaces/TraceableDBEntry.kt b/database/entities/src/main/java/info/nightscout/database/entities/interfaces/TraceableDBEntry.kt index 63e83bd822..b219478c27 100644 --- a/database/entities/src/main/java/info/nightscout/database/entities/interfaces/TraceableDBEntry.kt +++ b/database/entities/src/main/java/info/nightscout/database/entities/interfaces/TraceableDBEntry.kt @@ -25,4 +25,15 @@ interface TraceableDBEntry: DBEntry { set(value) { interfaceIDs_backing = value } + + fun interfaceIdsEqualsTo(other: TraceableDBEntry): Boolean = + interfaceIDs.nightscoutId == interfaceIDs.nightscoutId && + interfaceIDs.nightscoutSystemId == interfaceIDs.nightscoutSystemId && + interfaceIDs.pumpType == interfaceIDs.pumpType && + interfaceIDs.pumpSerial == interfaceIDs.pumpSerial && + interfaceIDs.temporaryId == interfaceIDs.temporaryId && + interfaceIDs.pumpId == interfaceIDs.pumpId && + interfaceIDs.startId == interfaceIDs.startId && + interfaceIDs.endId == interfaceIDs.endId + } \ No newline at end of file diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtensionKtTest.kt new file mode 100644 index 0000000000..f071299570 --- /dev/null +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/CarbsExtensionKtTest.kt @@ -0,0 +1,51 @@ +package info.nightscout.plugins.sync.nsclientV3.extensions + +import info.nightscout.database.entities.Carbs +import info.nightscout.database.entities.embedments.InterfaceIDs +import info.nightscout.sdk.localmodel.treatment.NSCarbs +import info.nightscout.sdk.mapper.convertToRemoteAndBack +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Test + +@Suppress("SpellCheckingInspection") +internal class CarbsExtensionKtTest { + + @Test + fun toCarbs() { + var carbs = Carbs( + timestamp = 10000, + isValid = true, + amount = 1.0, + duration = 0, + notes = "aaaa", + interfaceIDs_backing = InterfaceIDs( + nightscoutId = "nightscoutId", + pumpId = 11000, + pumpType = InterfaceIDs.PumpType.DANA_I, + pumpSerial = "bbbb" + ) + ) + + var carbs2 = (carbs.toNSCarbs().convertToRemoteAndBack() as NSCarbs).toCarbs() + Assertions.assertTrue(carbs.contentEqualsTo(carbs2)) + Assertions.assertTrue(carbs.interfaceIdsEqualsTo(carbs2)) + + carbs = Carbs( + timestamp = 10000, + isValid = false, + amount = 1.0, + duration = 60000, + notes = null, + interfaceIDs_backing = InterfaceIDs( + nightscoutId = "nightscoutId", + pumpId = 11000, + pumpType = InterfaceIDs.PumpType.DANA_I, + pumpSerial = "bbbb" + ) + ) + + carbs2 = (carbs.toNSCarbs().convertToRemoteAndBack() as NSCarbs).toCarbs() + Assertions.assertTrue(carbs.contentEqualsTo(carbs2)) + Assertions.assertTrue(carbs.interfaceIdsEqualsTo(carbs2)) + } +} \ No newline at end of file