Insulin tests

This commit is contained in:
Milos Kozak 2020-03-11 23:42:16 +01:00
parent 2f527169d9
commit 64184f164f
4 changed files with 37 additions and 31 deletions

View file

@ -26,12 +26,13 @@ class InsulinOrefBasePluginTest {
var shortDiaNotificationSend = false
inner class InsulinBaseTest(
injector: HasAndroidInjector,
resourceHelper: ResourceHelper,
profileFunction: ProfileFunction,
rxBus: RxBusWrapper,
aapsLogger: AAPSLogger
) : InsulinOrefBasePlugin(
resourceHelper, profileFunction, rxBus, aapsLogger
injector, resourceHelper, profileFunction, rxBus, aapsLogger
) {
override fun sendShortDiaNotification(dia: Double) {
@ -61,7 +62,7 @@ class InsulinOrefBasePluginTest {
@Mock lateinit var aapsLogger: AAPSLogger
@Mock lateinit var configBuilderPlugin: ConfigBuilderPlugin
private var treatmentInjector: HasAndroidInjector = HasAndroidInjector {
private var injector: HasAndroidInjector = HasAndroidInjector {
AndroidInjector {
if (it is Treatment) {
it.defaultValueHelper = defaultValueHelper
@ -74,7 +75,7 @@ class InsulinOrefBasePluginTest {
@Before
fun setUp() {
sut = InsulinBaseTest(resourceHelper, profileFunction, rxBus, aapsLogger)
sut = InsulinBaseTest(injector, resourceHelper, profileFunction, rxBus, aapsLogger)
}
@Test
@ -94,7 +95,7 @@ class InsulinOrefBasePluginTest {
@Test
fun testIobCalcForTreatment() {
val treatment = Treatment(treatmentInjector) //TODO: this should be a separate sut. I'd prefer a separate class.
val treatment = Treatment(injector) //TODO: this should be a separate sut. I'd prefer a separate class.
val expected = Iob()
Assert.assertEquals(expected, sut.iobCalcForTreatment(treatment, 0, 0.0))
testPeak = 30

View file

@ -1,5 +1,8 @@
package info.nightscout.androidaps.plugins.insulin
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.TestBase
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.logging.AAPSLogger
@ -23,14 +26,7 @@ import org.mockito.junit.MockitoRule
* Created by adrian on 2019-12-25.
*/
class InsulinOrefFreePeakPluginTest {
// TODO: move to a base class
// Add a JUnit rule that will setup the @Mock annotated vars and log.
// Another possibility would be to add `MockitoAnnotations.initMocks(this) to the setup method.
@get:Rule
val mockitoRule: MockitoRule = MockitoJUnit.rule()
class InsulinOrefFreePeakPluginTest : TestBase() {
lateinit var sut: InsulinOrefFreePeakPlugin
@ -40,13 +36,20 @@ class InsulinOrefFreePeakPluginTest {
@Mock lateinit var profileFunction: ProfileFunction
@Mock lateinit var aapsLogger: AAPSLogger
private var injector: HasAndroidInjector = HasAndroidInjector {
AndroidInjector {
}
}
@Before
fun setup() {
sut = InsulinOrefFreePeakPlugin(sp = sp,
resourceHelper = resourceHelper,
rxBus = rxBus,
profileFunction = profileFunction,
aapsLogger = aapsLogger)
sut = InsulinOrefFreePeakPlugin(
injector,
sp,
resourceHelper,
profileFunction,
rxBus,
aapsLogger)
}
@Test
@ -72,16 +75,4 @@ class InsulinOrefFreePeakPluginTest {
`when`(resourceHelper.gs(eq(R.string.free_peak_oref))).thenReturn("Free-Peak Oref")
assertEquals("Free-Peak Oref", sut.friendlyName)
}
// Workaround for Kotlin nullability. TODO: move to a base class
// https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791
// https://stackoverflow.com/questions/30305217/is-it-possible-to-use-mockito-in-kotlin
private fun <T> anyObject(): T {
Mockito.any<T>()
return uninitialized()
}
@Suppress("Unchecked_Cast")
private fun <T> uninitialized(): T = null as T
}

View file

@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.insulin
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.logging.AAPSLogger
@ -28,9 +30,14 @@ class InsulinOrefRapidActingPluginTest {
@Mock lateinit var profileFunction: ProfileFunction
@Mock lateinit var aapsLogger: AAPSLogger
private var injector: HasAndroidInjector = HasAndroidInjector {
AndroidInjector {
}
}
@Before
fun setup() {
sut = InsulinOrefRapidActingPlugin(resourceHelper, profileFunction, rxBus, aapsLogger)
sut = InsulinOrefRapidActingPlugin(injector, resourceHelper, profileFunction, rxBus, aapsLogger)
}
@Test

View file

@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.insulin
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.InsulinInterface
import info.nightscout.androidaps.logging.AAPSLogger
@ -28,9 +30,14 @@ class InsulinOrefUltraRapidActingPluginTest {
@Mock lateinit var profileFunction: ProfileFunction
@Mock lateinit var aapsLogger: AAPSLogger
private var injector: HasAndroidInjector = HasAndroidInjector {
AndroidInjector {
}
}
@Before
fun setup() {
sut = InsulinOrefUltraRapidActingPlugin(resourceHelper, profileFunction, rxBus, aapsLogger)
sut = InsulinOrefUltraRapidActingPlugin(injector, resourceHelper, profileFunction, rxBus, aapsLogger)
}
@Test