Add tests (doActionTest commented I couldn't fix it)
This commit is contained in:
parent
ec627ae48c
commit
a9a3586d07
2 changed files with 129 additions and 0 deletions
|
@ -0,0 +1,110 @@
|
|||
package info.nightscout.androidaps.plugins.general.automation.actions
|
||||
|
||||
import dagger.android.AndroidInjector
|
||||
import dagger.android.HasAndroidInjector
|
||||
import info.nightscout.androidaps.TestBase
|
||||
import info.nightscout.androidaps.automation.R
|
||||
import info.nightscout.androidaps.database.AppRepository
|
||||
import info.nightscout.androidaps.database.transactions.InsertIfNewByTimestampTherapyEventTransaction
|
||||
import info.nightscout.androidaps.database.transactions.Transaction
|
||||
import info.nightscout.androidaps.interfaces.GlucoseUnit
|
||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||
import info.nightscout.androidaps.plugins.general.automation.elements.InputCarePortalMenu
|
||||
import info.nightscout.androidaps.plugins.general.automation.elements.InputDuration
|
||||
import info.nightscout.androidaps.plugins.general.automation.elements.InputString
|
||||
import info.nightscout.androidaps.queue.Callback
|
||||
import info.nightscout.androidaps.utils.DateUtil
|
||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||
import info.nightscout.androidaps.utils.sharedPreferences.SP
|
||||
import io.reactivex.Completable
|
||||
import io.reactivex.Single
|
||||
import org.junit.Assert
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentMatchers
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.Mockito.any
|
||||
import org.mockito.Mockito.doNothing
|
||||
|
||||
class ActionCarePortalEventTest : TestBase() {
|
||||
|
||||
@Mock lateinit var resourceHelper: ResourceHelper
|
||||
@Mock lateinit var repository: AppRepository
|
||||
@Mock lateinit var sp: SP
|
||||
@Mock lateinit var dateUtil: DateUtil
|
||||
@Mock lateinit var profileFunction: ProfileFunction
|
||||
|
||||
private lateinit var sut: ActionCarePortalEvent
|
||||
var injector: HasAndroidInjector = HasAndroidInjector {
|
||||
AndroidInjector {
|
||||
if (it is ActionCarePortalEvent) {
|
||||
it.resourceHelper = resourceHelper
|
||||
it.repository = repository
|
||||
it.sp = sp
|
||||
it.dateUtil = dateUtil
|
||||
it.profileFunction = profileFunction
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
`when`(sp.getString(ArgumentMatchers.anyString(), ArgumentMatchers.anyString())).thenReturn("AndroidAPS")
|
||||
`when`(
|
||||
resourceHelper.gs(
|
||||
ArgumentMatchers.eq(R.string.careportal_note_message),
|
||||
ArgumentMatchers.anyString()
|
||||
)
|
||||
).thenReturn("Note : %s")
|
||||
`when`(dateUtil.now()).thenReturn(0)
|
||||
`when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL)
|
||||
`when`(repository.runTransaction(anyObject<Transaction<InsertIfNewByTimestampTherapyEventTransaction.TransactionResult>>()))
|
||||
.thenReturn(Completable.fromAction {})
|
||||
sut = ActionCarePortalEvent(injector)
|
||||
sut.cpEvent = InputCarePortalMenu(resourceHelper)
|
||||
sut.cpEvent.value = InputCarePortalMenu.EventType.NOTE
|
||||
sut.note = InputString("Asd")
|
||||
sut.duration = InputDuration(5, InputDuration.TimeUnit.MINUTES)
|
||||
}
|
||||
|
||||
@Test fun friendlyNameTest() {
|
||||
Assert.assertEquals(R.string.careportal, sut.friendlyName())
|
||||
}
|
||||
|
||||
@Test fun shortDescriptionTest() {
|
||||
Assert.assertEquals("Note : %s", sut.shortDescription())
|
||||
}
|
||||
|
||||
@Test fun iconTest() {
|
||||
Assert.assertEquals(R.drawable.ic_cp_note, sut.icon())
|
||||
}
|
||||
/*
|
||||
@Test fun doActionTest() {
|
||||
sut.doAction(object : Callback() {
|
||||
override fun run() {
|
||||
Assert.assertTrue(result.success)
|
||||
}
|
||||
})
|
||||
}
|
||||
*/
|
||||
@Test fun hasDialogTest() {
|
||||
Assert.assertTrue(sut.hasDialog())
|
||||
}
|
||||
|
||||
@Test fun toJSONTest() {
|
||||
Assert.assertEquals(
|
||||
"{\"data\":{\"note\":\"Asd\",\"cpEvent\":\"NOTE\",\"durationInMinutes\":5},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionCarePortalEvent\"}",
|
||||
sut.toJSON()
|
||||
)
|
||||
}
|
||||
|
||||
@Test fun fromJSONTest() {
|
||||
sut.note = InputString("Asd")
|
||||
sut.fromJSON("{\"note\":\"Asd\",\"cpEvent\":\"NOTE\",\"durationInMinutes\":5}")
|
||||
Assert.assertEquals("Asd", sut.note.value)
|
||||
Assert.assertEquals(5, sut.duration.value)
|
||||
Assert.assertEquals(InputCarePortalMenu.EventType.NOTE, sut.cpEvent.value)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||
|
||||
import info.nightscout.androidaps.plugins.general.automation.triggers.TriggerTestBase
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
|
||||
class InputCarePortalEventTest : TriggerTestBase() {
|
||||
|
||||
@Test
|
||||
fun labelsTest() {
|
||||
Assert.assertEquals(4, InputCarePortalMenu.EventType.labels(resourceHelper).size)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun setValueTest() {
|
||||
val cp = InputCarePortalMenu(resourceHelper, InputCarePortalMenu.EventType.EXERCISE)
|
||||
Assert.assertEquals(InputCarePortalMenu.EventType.EXERCISE, cp.value)
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue