diff --git a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt index 573c9dcbcc..a85bc45764 100644 --- a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt +++ b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt @@ -5,6 +5,7 @@ import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.androidaps.utils.rx.TestAapsSchedulers import org.junit.Before import org.junit.Rule +import org.mockito.ArgumentMatcher import org.mockito.Mockito import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoRule @@ -35,6 +36,17 @@ open class TestBase { return uninitialized() } + fun argThatKotlin(matcher: ArgumentMatcher): T { + Mockito.argThat(matcher) + return uninitialized() + } + + + fun eqObject(expected: T): T { + Mockito.eq(expected) + return uninitialized() + } + @Suppress("Unchecked_Cast") fun uninitialized(): T = null as T } \ No newline at end of file diff --git a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt index 4924585d72..54866e5815 100644 --- a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt +++ b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt @@ -13,6 +13,7 @@ import org.junit.Assert import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.ArgumentMatcher import org.mockito.Mockito import org.mockito.Mockito.`when` import org.powermock.modules.junit4.PowerMockRunner @@ -45,15 +46,36 @@ class ActionStartTempTargetTest : ActionsTestBase() { } @Test fun doActionTest() { + + val expectedTarget = TemporaryTarget( + id = 0, + version = 0, + dateCreated = -1, + isValid = true, + referenceId = null, + interfaceIDs_backing = null, + timestamp = 0, + utcOffset = 0, + reason = TemporaryTarget.Reason.AUTOMATION, + highTarget = 110.0, + lowTarget = 110.0, + duration = 1800000 + ) + val inserted = mutableListOf().apply { - // insert all inserted TTs + add(expectedTarget) } + val updated = mutableListOf().apply { - // add(TemporaryTarget(id = 0, version = 0, dateCreated = 0, isValid = false, referenceId = null, interfaceIDs_backing = null, timestamp = 0, utcOffset = 0, reason =, highTarget = 0.0, lowTarget = 0.0, duration = 0)) - // insert all updated TTs + // TODO insert all updated TTs } + `when`( - repository.runTransactionForResult(anyObject>()) + repository.runTransactionForResult(argThatKotlin { + it.temporaryTarget + .copy(timestamp = expectedTarget.timestamp, utcOffset = expectedTarget.utcOffset) // those can be different + .contentEqualsTo(expectedTarget) + }) ).thenReturn(Single.just(InsertTemporaryTargetAndCancelCurrentTransaction.TransactionResult().apply { inserted.addAll(inserted) updated.addAll(updated) diff --git a/database/src/main/java/info/nightscout/androidaps/database/transactions/InsertTemporaryTargetAndCancelCurrentTransaction.kt b/database/src/main/java/info/nightscout/androidaps/database/transactions/InsertTemporaryTargetAndCancelCurrentTransaction.kt index 3fad55f196..c100d0c358 100644 --- a/database/src/main/java/info/nightscout/androidaps/database/transactions/InsertTemporaryTargetAndCancelCurrentTransaction.kt +++ b/database/src/main/java/info/nightscout/androidaps/database/transactions/InsertTemporaryTargetAndCancelCurrentTransaction.kt @@ -4,7 +4,7 @@ import info.nightscout.androidaps.database.entities.TemporaryTarget import info.nightscout.androidaps.database.interfaces.end class InsertTemporaryTargetAndCancelCurrentTransaction( - private val temporaryTarget: TemporaryTarget + val temporaryTarget: TemporaryTarget ) : Transaction() { constructor(timestamp: Long, duration: Long, reason: TemporaryTarget.Reason, lowTarget: Double, highTarget: Double) :