2020-03-19 18:02:24 +01:00
|
|
|
package info.nightscout.androidaps
|
|
|
|
|
|
|
|
import dagger.android.AndroidInjector
|
|
|
|
import dagger.android.HasAndroidInjector
|
|
|
|
import info.nightscout.androidaps.data.Profile
|
|
|
|
import info.nightscout.androidaps.data.ProfileStore
|
|
|
|
import info.nightscout.androidaps.db.ProfileSwitch
|
|
|
|
import info.nightscout.androidaps.interfaces.ActivePluginProvider
|
|
|
|
import info.nightscout.androidaps.logging.AAPSLogger
|
2020-03-31 15:49:57 +02:00
|
|
|
import info.nightscout.androidaps.logging.AAPSLoggerTest
|
2020-03-19 18:02:24 +01:00
|
|
|
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
2020-04-20 19:27:54 +02:00
|
|
|
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
|
|
|
|
import info.nightscout.androidaps.plugins.treatments.Treatment
|
2020-03-19 18:02:24 +01:00
|
|
|
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin
|
2020-04-20 19:27:54 +02:00
|
|
|
import info.nightscout.androidaps.utils.DefaultValueHelper
|
2020-03-19 21:24:48 +01:00
|
|
|
import info.nightscout.androidaps.utils.FabricPrivacy
|
2020-03-19 18:02:24 +01:00
|
|
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
|
|
|
import org.json.JSONObject
|
|
|
|
import org.junit.Before
|
|
|
|
import org.mockito.Mock
|
2020-03-19 21:24:48 +01:00
|
|
|
import org.powermock.core.classloader.annotations.PrepareForTest
|
2020-03-19 18:02:24 +01:00
|
|
|
|
2020-03-19 21:24:48 +01:00
|
|
|
@PrepareForTest(FabricPrivacy::class)
|
2020-03-19 18:02:24 +01:00
|
|
|
open class TestBaseWithProfile : TestBase() {
|
|
|
|
@Mock lateinit var activePluginProvider: ActivePluginProvider
|
|
|
|
@Mock lateinit var resourceHelper: ResourceHelper
|
2020-03-19 21:24:48 +01:00
|
|
|
@Mock lateinit var treatmentsPlugin: TreatmentsPlugin
|
|
|
|
@Mock lateinit var fabricPrivacy: FabricPrivacy
|
2020-04-20 19:27:54 +02:00
|
|
|
@Mock lateinit var profileFunction: ProfileFunction
|
|
|
|
@Mock lateinit var defaultValueHelper: DefaultValueHelper
|
2020-03-19 18:02:24 +01:00
|
|
|
|
|
|
|
val rxBus = RxBusWrapper()
|
|
|
|
|
|
|
|
val profileInjector = HasAndroidInjector {
|
|
|
|
AndroidInjector {
|
|
|
|
if (it is Profile) {
|
|
|
|
it.aapsLogger = aapsLogger
|
|
|
|
it.activePlugin = activePluginProvider
|
|
|
|
it.resourceHelper = resourceHelper
|
|
|
|
it.rxBus = rxBus
|
2020-03-19 21:24:48 +01:00
|
|
|
it.fabricPrivacy = fabricPrivacy
|
2020-03-19 18:02:24 +01:00
|
|
|
}
|
|
|
|
if (it is ProfileSwitch) {
|
|
|
|
it.treatmentsPlugin = treatmentsPlugin
|
|
|
|
it.aapsLogger = aapsLogger
|
|
|
|
it.rxBus = rxBus
|
|
|
|
it.resourceHelper = resourceHelper
|
|
|
|
}
|
2020-04-20 19:27:54 +02:00
|
|
|
if (it is Treatment) {
|
|
|
|
it.activePlugin = activePluginProvider
|
|
|
|
it.profileFunction = profileFunction
|
|
|
|
it.defaultValueHelper = defaultValueHelper
|
|
|
|
it.resourceHelper = resourceHelper
|
|
|
|
}
|
2020-03-19 18:02:24 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-03-19 21:24:48 +01:00
|
|
|
lateinit var validProfileJSON: String
|
2020-03-19 18:02:24 +01:00
|
|
|
lateinit var validProfile: Profile
|
|
|
|
val TESTPROFILENAME = "someProfile"
|
|
|
|
|
|
|
|
@Before
|
|
|
|
fun prepareMock() {
|
|
|
|
validProfileJSON = "{\"dia\":\"3\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"30\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"100\"},{\"time\":\"2:00\",\"value\":\"110\"}],\"timezone\":\"UTC\",\"basal\":[{\"time\":\"00:00\",\"value\":\"1\"}],\"target_low\":[{\"time\":\"00:00\",\"value\":\"4\"}],\"target_high\":[{\"time\":\"00:00\",\"value\":\"5\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}"
|
|
|
|
validProfile = Profile(profileInjector, JSONObject(validProfileJSON), Constants.MGDL)
|
|
|
|
}
|
|
|
|
|
|
|
|
fun getValidProfileStore(): ProfileStore {
|
|
|
|
val json = JSONObject()
|
|
|
|
val store = JSONObject()
|
|
|
|
store.put(TESTPROFILENAME, JSONObject(validProfileJSON))
|
|
|
|
json.put("defaultProfile", TESTPROFILENAME)
|
|
|
|
json.put("store", store)
|
|
|
|
return ProfileStore(profileInjector, json)
|
|
|
|
}
|
|
|
|
}
|