AndroidAPS/app/src/test/java/info/nightscout/androidaps/data/QuickWizardTest.kt
2022-11-10 16:55:18 +01:00

96 lines
No EOL
3.2 KiB
Kotlin

package info.nightscout.androidaps.data
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
import info.nightscout.androidaps.TestBase
import info.nightscout.androidaps.interfaces.Loop
import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.utils.wizard.QuickWizard
import info.nightscout.androidaps.utils.wizard.QuickWizardEntry
import info.nightscout.shared.sharedPreferences.SP
import org.json.JSONArray
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito.`when`
class QuickWizardTest : TestBase() {
@Mock lateinit var sp: SP
@Mock lateinit var profileFunction: ProfileFunction
@Mock lateinit var loop: Loop
private val data1 = "{\"buttonText\":\"Meal\",\"carbs\":36,\"validFrom\":0,\"validTo\":18000," +
"\"useBG\":0,\"useCOB\":0,\"useBolusIOB\":0,\"useBasalIOB\":0,\"useTrend\":0,\"useSuperBolus\":0,\"useTemptarget\":0}"
private val data2 = "{\"buttonText\":\"Lunch\",\"carbs\":18,\"validFrom\":36000,\"validTo\":39600," +
"\"useBG\":0,\"useCOB\":0,\"useBolusIOB\":1,\"useBasalIOB\":2,\"useTrend\":0,\"useSuperBolus\":0,\"useTemptarget\":0}"
private var array: JSONArray = JSONArray("[$data1,$data2]")
class MockedTime : QuickWizardEntry.Time() {
override fun secondsFromMidnight() = 0
}
private val mockedTime = MockedTime()
private val injector = HasAndroidInjector {
AndroidInjector {
if (it is QuickWizardEntry) {
it.aapsLogger = aapsLogger
it.sp = sp
it.profileFunction = profileFunction
it.loop = loop
it.time = mockedTime
}
}
}
private lateinit var quickWizard: QuickWizard
@Before
fun mock() {
`when`(sp.getString(R.string.key_quickwizard, "[]")).thenReturn("[]")
quickWizard = QuickWizard(sp, injector)
}
@Test fun setDataTest() {
quickWizard.setData(array)
Assert.assertEquals(2, quickWizard.size())
}
@Test fun test() {
quickWizard.setData(array)
Assert.assertEquals("Lunch", quickWizard[1].buttonText())
}
@Test fun active() {
quickWizard.setData(array)
val e: QuickWizardEntry = quickWizard.getActive()!!
Assert.assertEquals(36.0, e.carbs().toDouble(), 0.01)
quickWizard.remove(0)
quickWizard.remove(0)
Assert.assertNull(quickWizard.getActive())
}
@Test fun newEmptyItemTest() {
Assert.assertNotNull(quickWizard.newEmptyItem())
}
@Test fun addOrUpdate() {
quickWizard.setData(array)
Assert.assertEquals(2, quickWizard.size())
quickWizard.addOrUpdate(quickWizard.newEmptyItem())
Assert.assertEquals(3, quickWizard.size())
val q: QuickWizardEntry = quickWizard.newEmptyItem()
q.position = 0
quickWizard.addOrUpdate(q)
Assert.assertEquals(3, quickWizard.size())
}
@Test fun remove() {
quickWizard.setData(array)
quickWizard.remove(0)
Assert.assertEquals(1, quickWizard.size())
}
}