From c8113bf4fc5251c597f538f7e5ba6dbd6468deb9 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 9 Dec 2022 16:49:33 +0100 Subject: [PATCH] Instantiator --- .../nightscout/androidaps/di/AppModule.kt | 6 +++- .../implementations/InstantiatorImpl.kt | 28 +++++++++++++++++++ .../interfaces/ConstraintsCheckerTest.kt | 6 ++-- .../info/nightscout/interfaces/aps/Loop.kt | 2 -- .../interfaces/iob/IobCobCalculator.kt | 2 -- .../interfaces/profile/Instantiator.kt | 12 ++++++++ .../interfaces/profile/ProfileInstantiator.kt | 7 ----- .../implementation/di/ImplementationModule.kt | 3 -- .../profile/ProfileInstantiatorImpl.kt | 17 ----------- .../nightscout/plugins/aps/loop/LoopPlugin.kt | 3 -- .../general/autotune/AutotuneFragment.kt | 8 +++--- .../general/autotune/AutotunePlugin.kt | 6 ++-- .../general/autotune/data/ATProfile.kt | 6 ++-- .../automation/actions/ActionsTestBase.kt | 7 +---- .../IobCobCalculatorPlugin.kt | 3 -- .../plugins/profile/ProfilePlugin.kt | 10 +++---- .../data/ProcessedDeviceStatusDataImpl.kt | 7 ++--- .../info/nightscout/pump/dana/DanaPump.kt | 6 ++-- .../androidaps/dana/DanaPumpTest.kt | 10 +++---- .../plugins/pump/danaR/DanaRPluginTest.kt | 26 +++++++++-------- .../plugins/pump/danaR/comm/DanaRTestBase.kt | 8 ++---- .../pump/danaRKorean/DanaRKoreanPluginTest.kt | 20 ++++++------- .../plugins/pump/danaRv2/DanaRv2PluginTest.kt | 19 +++++++------ .../nightscout/pump/danars/DanaRSTestBase.kt | 10 ++----- .../workflow/iob/IobCobOref1Worker.kt | 4 ++- .../workflow/iob/IobCobOrefWorker.kt | 4 ++- 26 files changed, 121 insertions(+), 119 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt create mode 100644 core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt delete mode 100644 core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt delete mode 100644 implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt diff --git a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt index 1611893464..5c38128af0 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt @@ -7,13 +7,15 @@ import dagger.Module import dagger.Provides import dagger.android.HasAndroidInjector import info.nightscout.androidaps.MainApp -import info.nightscout.androidaps.implementations.UiInteractionImpl import info.nightscout.androidaps.implementations.ConfigImpl +import info.nightscout.androidaps.implementations.InstantiatorImpl +import info.nightscout.androidaps.implementations.UiInteractionImpl import info.nightscout.androidaps.workflow.CalculationWorkflowImpl import info.nightscout.androidaps.workflow.WorkerClassesImpl import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.interfaces.Config import info.nightscout.interfaces.plugin.PluginBase +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.workflow.WorkerClasses @@ -53,6 +55,8 @@ open class AppModule { @Binds fun bindActivityNames(activityNames: UiInteractionImpl): UiInteraction @Binds fun bindWorkerClasses(workerClassesImpl: WorkerClassesImpl): WorkerClasses @Binds fun bindCalculationWorkflow(calculationWorkflow: CalculationWorkflowImpl): CalculationWorkflow + @Binds fun bindInstantiator(instantiatorImpl: InstantiatorImpl): Instantiator + } } diff --git a/app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt b/app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt new file mode 100644 index 0000000000..eaab048da7 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt @@ -0,0 +1,28 @@ +package info.nightscout.androidaps.implementations + +import dagger.Reusable +import dagger.android.HasAndroidInjector +import info.nightscout.implementation.profile.ProfileStoreObject +import info.nightscout.interfaces.aps.APSResult +import info.nightscout.interfaces.aps.AutosensData +import info.nightscout.interfaces.profile.Instantiator +import info.nightscout.interfaces.profile.ProfileStore +import info.nightscout.plugins.aps.APSResultObject +import info.nightscout.plugins.iob.iobCobCalculator.data.AutosensDataObject +import info.nightscout.shared.utils.DateUtil +import org.json.JSONObject +import javax.inject.Inject + +@Reusable +class InstantiatorImpl @Inject constructor( + private val injector: HasAndroidInjector, + private val dateUtil: DateUtil +) : Instantiator { + + override fun provideProfileStore(jsonObject: JSONObject): ProfileStore = + ProfileStoreObject(injector, jsonObject, dateUtil) + + override fun provideAPSResultObject(): APSResult = APSResultObject(injector) + + override fun provideAutosensDataObject(): AutosensData = AutosensDataObject(injector) +} \ No newline at end of file diff --git a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt index 2a64a243cb..d9af92f46c 100644 --- a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt @@ -20,7 +20,7 @@ import info.nightscout.interfaces.maintenance.PrefFileListProvider import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.pump.DetailedBolusInfoStorage import info.nightscout.interfaces.pump.PumpEnactResult @@ -70,7 +70,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() { @Mock lateinit var insightDatabaseDao: InsightDatabaseDao @Mock lateinit var ruffyScripter: RuffyScripter @Mock lateinit var uiInteraction: UiInteraction - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @Mock lateinit var insightDatabase: InsightDatabase @Mock lateinit var bgQualityCheck: BgQualityCheck @@ -145,7 +145,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() { hardLimits = HardLimitsMock(sp, rh) insightDbHelper = InsightDbHelper(insightDatabaseDao) - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) objectivesPlugin = ObjectivesPlugin(injector, aapsLogger, rh, activePlugin, sp, config) comboPlugin = ComboPlugin(injector, aapsLogger, rxBus, rh, profileFunction, sp, commandQueue, pumpSync, dateUtil, ruffyScripter, uiInteraction) danaRPlugin = DanaRPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePlugin, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt index dc96f4ea91..c0eac9f4eb 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/Loop.kt @@ -57,6 +57,4 @@ interface Loop { runningConfiguration: RunningConfiguration, version: String ): DeviceStatus? - - fun provideEmptyAPSResultObject(): APSResult } \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/iob/IobCobCalculator.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/iob/IobCobCalculator.kt index 66a1af0fd6..a88237a838 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/iob/IobCobCalculator.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/iob/IobCobCalculator.kt @@ -104,6 +104,4 @@ interface IobCobCalculator { * @return IobTotal */ fun calculateIobFromTempBasalsIncludingConvertedExtended(): IobTotal - - fun provideEmptyAutosensDataObject(): AutosensData } \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt new file mode 100644 index 0000000000..e4d88b4eb6 --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt @@ -0,0 +1,12 @@ +package info.nightscout.interfaces.profile + +import info.nightscout.interfaces.aps.APSResult +import info.nightscout.interfaces.aps.AutosensData +import org.json.JSONObject + +interface Instantiator { + + fun provideProfileStore(jsonObject: JSONObject): ProfileStore + fun provideAPSResultObject(): APSResult + fun provideAutosensDataObject(): AutosensData +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt deleted file mode 100644 index 6537cb1862..0000000000 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt +++ /dev/null @@ -1,7 +0,0 @@ -package info.nightscout.interfaces.profile - -import org.json.JSONObject - -interface ProfileInstantiator { - fun storeInstance(jsonObject: JSONObject): ProfileStore -} \ No newline at end of file diff --git a/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt b/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt index 3fce4b146b..5a665df59c 100644 --- a/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt +++ b/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt @@ -18,7 +18,6 @@ import info.nightscout.implementation.logging.LoggerUtilsImpl import info.nightscout.implementation.overview.OverviewDataImpl import info.nightscout.implementation.plugin.PluginStore import info.nightscout.implementation.profile.ProfileFunctionImpl -import info.nightscout.implementation.profile.ProfileInstantiatorImpl import info.nightscout.implementation.profile.ProfileStoreObject import info.nightscout.implementation.profiling.ProfilerImpl import info.nightscout.implementation.protection.PasswordCheckImpl @@ -49,7 +48,6 @@ import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.protection.PasswordCheck import info.nightscout.interfaces.protection.ProtectionCheck @@ -100,7 +98,6 @@ abstract class ImplementationModule { @Binds fun bindWarnColors(warnColorsImpl: WarnColorsImpl): WarnColors @Binds fun bindHardLimits(hardLimitsImpl: HardLimitsImpl): HardLimits @Binds fun bindResourceHelper(resourceHelperImpl: ResourceHelperImpl): ResourceHelper - @Binds fun bindProfileStoreInstantiator(profileStoreInstantiatorImpl: ProfileInstantiatorImpl): ProfileInstantiator @Binds fun bindBlePreCheck(blePreCheckImpl: BlePreCheckImpl): BlePreCheck @Binds fun bindTrendCalculatorInterface(trendCalculator: TrendCalculatorImpl): TrendCalculator diff --git a/implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt b/implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt deleted file mode 100644 index e801af2193..0000000000 --- a/implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt +++ /dev/null @@ -1,17 +0,0 @@ -package info.nightscout.implementation.profile - -import dagger.android.HasAndroidInjector -import info.nightscout.interfaces.profile.ProfileInstantiator -import info.nightscout.interfaces.profile.ProfileStore -import info.nightscout.shared.utils.DateUtil -import org.json.JSONObject -import javax.inject.Inject - -class ProfileInstantiatorImpl @Inject constructor( - private val injector: HasAndroidInjector, - private val dateUtil: DateUtil -): ProfileInstantiator { - - override fun storeInstance(jsonObject: JSONObject): ProfileStore = - ProfileStoreObject(injector, jsonObject, dateUtil) -} \ No newline at end of file diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt index 7ae6516800..05faef4c3f 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/loop/LoopPlugin.kt @@ -57,7 +57,6 @@ import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.aps.APSResultObject import info.nightscout.plugins.aps.R import info.nightscout.plugins.aps.loop.events.EventLoopSetLastRunGui import info.nightscout.plugins.aps.loop.extensions.json @@ -784,8 +783,6 @@ class LoopPlugin @Inject constructor( ) } - override fun provideEmptyAPSResultObject(): APSResult = APSResultObject(injector) - companion object { private const val CHANNEL_ID = "AAPS-OpenLoop" diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt index e66b5db497..2bfd3b5e14 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt @@ -30,7 +30,7 @@ import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.MidnightTime @@ -70,7 +70,7 @@ class AutotuneFragment : DaggerFragment() { @Inject lateinit var injector: HasAndroidInjector @Inject lateinit var aapsSchedulers: AapsSchedulers @Inject lateinit var uiInteraction: UiInteraction - @Inject lateinit var profileInstantiator: ProfileInstantiator + @Inject lateinit var instantiator: Instantiator private var disposable: CompositeDisposable = CompositeDisposable() private var handler = Handler(HandlerThread(this::class.simpleName + "Handler").also { it.start() }.looper) @@ -97,7 +97,7 @@ class AutotuneFragment : DaggerFragment() { if (autotunePlugin.lastNbDays.isEmpty()) autotunePlugin.lastNbDays = sp.getInt(info.nightscout.core.utils.R.string.key_autotune_default_tune_days, 5).toString() val defaultValue = sp.getInt(info.nightscout.core.utils.R.string.key_autotune_default_tune_days, 5).toDouble() - profileStore = activePlugin.activeProfileSource.profile ?: profileInstantiator.storeInstance(JSONObject()) + profileStore = activePlugin.activeProfileSource.profile ?: instantiator.provideProfileStore(JSONObject()) profileName = if (binding.profileList.text.toString() == rh.gs(info.nightscout.core.ui.R.string.active)) "" else binding.profileList.text.toString() profileFunction.getProfile()?.let { currentProfile -> profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector) @@ -295,7 +295,7 @@ class AutotuneFragment : DaggerFragment() { @Synchronized private fun updateGui() { _binding ?: return - profileStore = activePlugin.activeProfileSource.profile ?: profileInstantiator.storeInstance(JSONObject()) + profileStore = activePlugin.activeProfileSource.profile ?: instantiator.provideProfileStore(JSONObject()) profileName = if (binding.profileList.text.toString() == rh.gs(info.nightscout.core.ui.R.string.active)) "" else binding.profileList.text.toString() profileFunction.getProfile()?.let { currentProfile -> profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector) diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt index 35349cc00d..50c4ab61c2 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt @@ -16,7 +16,7 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.interfaces.utils.MidnightTime import info.nightscout.plugins.aps.R @@ -61,7 +61,7 @@ class AutotunePlugin @Inject constructor( private val config: Config, private val uel: UserEntryLogger, aapsLogger: AAPSLogger, - private val profileInstantiator: ProfileInstantiator + private val instantiator: Instantiator ) : PluginBase( PluginDescription() .mainType(PluginType.GENERAL) @@ -325,7 +325,7 @@ class AutotunePlugin @Inject constructor( if (newProfile == null) return val profilePlugin = activePlugin.activeProfileSource val circadian = sp.getBoolean(info.nightscout.core.utils.R.string.key_autotune_circadian_ic_isf, false) - val profileStore = activePlugin.activeProfileSource.profile ?: profileInstantiator.storeInstance(JSONObject()) + val profileStore = activePlugin.activeProfileSource.profile ?: instantiator.provideProfileStore(JSONObject()) val profileList: ArrayList = profileStore.getProfileList() var indexLocalProfile = -1 for (p in profileList.indices) diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt index d6ecea8797..f8b139736a 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt @@ -12,7 +12,7 @@ import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.profile.PureProfile import info.nightscout.interfaces.utils.Round @@ -38,7 +38,7 @@ class ATProfile(profile: Profile, var localInsulin: LocalInsulin, val injector: @Inject lateinit var config: Config @Inject lateinit var rxBus: RxBus @Inject lateinit var rh: ResourceHelper - @Inject lateinit var profileInstantiator: ProfileInstantiator + @Inject lateinit var instantiator: Instantiator var profile: ProfileSealed var circadianProfile: ProfileSealed @@ -179,7 +179,7 @@ class ATProfile(profile: Profile, var localInsulin: LocalInsulin, val injector: json.put("defaultProfile", profilename) json.put("store", store) json.put("startDate", dateUtil.toISOAsUTC(dateUtil.now())) - profileStore = profileInstantiator.storeInstance(json) + profileStore = instantiator.provideProfileStore(json) } catch (e: JSONException) { } return profileStore diff --git a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt index c8972b3510..f4dc4bb946 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt @@ -10,7 +10,6 @@ import info.nightscout.database.entities.DeviceStatus import info.nightscout.database.entities.OfflineEvent import info.nightscout.interfaces.ConfigBuilder import info.nightscout.interfaces.GlucoseUnit -import info.nightscout.interfaces.aps.APSResult import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.configBuilder.RunningConfiguration import info.nightscout.interfaces.constraints.Constraint @@ -43,8 +42,7 @@ ActionsTestBase : TestBaseWithProfile() { aapsLogger: AAPSLogger, rh: ResourceHelper, injector: HasAndroidInjector, - pluginDescription: PluginDescription, - private val apsResult: APSResult + pluginDescription: PluginDescription ) : PluginBase( pluginDescription, aapsLogger, rh, injector ), Loop { @@ -78,8 +76,6 @@ ActionsTestBase : TestBaseWithProfile() { version: String ): DeviceStatus? = null - override fun provideEmptyAPSResultObject(): APSResult = apsResult - override fun setPluginEnabled(type: PluginType, newState: Boolean) {} } @@ -92,7 +88,6 @@ ActionsTestBase : TestBaseWithProfile() { @Mock lateinit var loopPlugin: TestLoopPlugin @Mock lateinit var uel: UserEntryLogger @Mock lateinit var context: Context - @Mock lateinit var apsResult: APSResult private val pluginDescription = PluginDescription() lateinit var testPumpPlugin: TestPumpPlugin diff --git a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt index 44d4f8b4ff..b63d5f81e8 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt @@ -38,7 +38,6 @@ import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.utils.DecimalFormatter import info.nightscout.interfaces.utils.MidnightTime import info.nightscout.plugins.R -import info.nightscout.plugins.iob.iobCobCalculator.data.AutosensDataObject import info.nightscout.plugins.iob.iobCobCalculator.data.AutosensDataStoreObject import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus @@ -600,8 +599,6 @@ class IobCobCalculatorPlugin @Inject constructor( override fun calculateIobFromTempBasalsIncludingConvertedExtended(): IobTotal = calculateIobToTimeFromTempBasalsIncludingConvertedExtended(dateUtil.now()) - override fun provideEmptyAutosensDataObject(): AutosensData = AutosensDataObject(injector) - override fun calculateIobToTimeFromTempBasalsIncludingConvertedExtended(toTime: Long): IobTotal { val total = IobTotal(toTime) val now = dateUtil.now() diff --git a/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt index f0c83c1e40..bbcec9b28b 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt @@ -24,7 +24,7 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileSource import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.profile.PureProfile @@ -60,7 +60,7 @@ class ProfilePlugin @Inject constructor( private val hardLimits: HardLimits, private val dateUtil: DateUtil, private val config: Config, - private val profileInstantiator: ProfileInstantiator + private val instantiator: Instantiator ) : PluginBase( PluginDescription() .mainType(PluginType.PROFILE) @@ -419,7 +419,7 @@ class ProfilePlugin @Inject constructor( aapsLogger.error("Unhandled exception", e) } - return profileInstantiator.storeInstance(json) + return instantiator.provideProfileStore(json) } override val profile: ProfileStore? @@ -444,14 +444,14 @@ class ProfilePlugin @Inject constructor( @Inject lateinit var config: Config @Inject lateinit var profilePlugin: ProfilePlugin @Inject lateinit var xDripBroadcast: XDripBroadcast - @Inject lateinit var profileInstantiator: ProfileInstantiator + @Inject lateinit var instantiator: Instantiator override fun doWorkAndLog(): Result { val profileJson = dataWorkerStorage.pickupJSONObject(inputData.getLong(DataWorkerStorage.STORE_KEY, -1)) ?: return Result.failure(workDataOf("Error" to "missing input data")) xDripBroadcast.sendProfile(profileJson) if (sp.getBoolean(info.nightscout.core.utils.R.string.key_ns_receive_profile_store, true) || config.NSCLIENT) { - val store = profileInstantiator.storeInstance(profileJson) + val store = instantiator.provideProfileStore(profileJson) val createdAt = store.getStartDate() val lastLocalChange = sp.getLong(info.nightscout.core.utils.R.string.key_local_profile_last_change, 0) aapsLogger.debug(LTag.PROFILE, "Received profileStore: createdAt: $createdAt Local last modification: $lastLocalChange") diff --git a/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt index 9f71a1bdb2..d65d63dad4 100644 --- a/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt @@ -1,12 +1,11 @@ package info.nightscout.plugins.sync.nsclient.data import android.text.Spanned -import dagger.Lazy import dagger.android.HasAndroidInjector import info.nightscout.interfaces.aps.APSResult -import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.utils.HtmlHelper import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.interfaces.utils.Round @@ -24,7 +23,7 @@ class ProcessedDeviceStatusDataImpl @Inject constructor( private val rh: ResourceHelper, private val dateUtil: DateUtil, private val sp: SP, - private val loop: Lazy + private val instantiator: Instantiator ) : ProcessedDeviceStatusData { override var pumpData: ProcessedDeviceStatusData.PumpData? = null @@ -116,7 +115,7 @@ class ProcessedDeviceStatusDataImpl @Inject constructor( get() = if (openAPSData.clockSuggested != 0L) openAPSData.clockSuggested else -1 override fun getAPSResult(injector: HasAndroidInjector): APSResult = - loop.get().provideEmptyAPSResultObject().also { + instantiator.provideAPSResultObject().also { it.json = openAPSData.suggested it.date = openAPSData.clockSuggested } diff --git a/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt b/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt index d4a6fb50d0..f266dae18e 100644 --- a/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt +++ b/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt @@ -2,7 +2,7 @@ package info.nightscout.pump.dana import info.nightscout.interfaces.Constants import info.nightscout.interfaces.profile.Profile -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.defs.PumpType @@ -33,7 +33,7 @@ class DanaPump @Inject constructor( private val aapsLogger: AAPSLogger, private val sp: SP, private val dateUtil: DateUtil, - private val profileInstantiator: ProfileInstantiator + private val instantiator: Instantiator ) { @Suppress("unused") @@ -380,7 +380,7 @@ class DanaPump @Inject constructor( } catch (e: Exception) { return null } - return profileInstantiator.storeInstance(json) + return instantiator.provideProfileStore(json) } return null } diff --git a/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt b/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt index 2c874d7f48..7dab933399 100644 --- a/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt +++ b/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt @@ -1,10 +1,10 @@ package info.nightscout.androidaps.dana import info.nightscout.androidaps.TestBaseWithProfile -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.pump.dana.DanaPump import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -12,18 +12,18 @@ import org.mockito.Mock class DanaPumpTest : TestBaseWithProfile() { @Mock lateinit var sp: SP - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator private lateinit var sut: DanaPump @BeforeEach fun setup() { - sut = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + sut = DanaPump(aapsLogger, sp, dateUtil, instantiator) } @Test fun detectDanaRS() { sut.hwModel = 0x05 - Assert.assertTrue(sut.modelFriendlyName().contains("DanaRS")) + Assertions.assertTrue(sut.modelFriendlyName().contains("DanaRS")) } } \ No newline at end of file diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt index 88df0104e5..ad3e1b068a 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt @@ -8,14 +8,14 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -27,7 +27,7 @@ class DanaRPluginTest : TestBaseWithProfile() { @Mock lateinit var sp: SP @Mock lateinit var commandQueue: CommandQueue @Mock lateinit var pumpSync: PumpSync - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @@ -47,9 +47,11 @@ class DanaRPluginTest : TestBaseWithProfile() { `when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s") - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) - danaRPlugin = DanaRPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, - uiInteraction, danaHistoryDatabase) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) + danaRPlugin = DanaRPlugin( + injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, + uiInteraction, danaHistoryDatabase + ) } @Test @Throws(Exception::class) @@ -59,9 +61,9 @@ class DanaRPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHBASALRATE) danaRPlugin.applyBasalConstraints(c, validProfile) - Assert.assertEquals(0.8, c.value(), 0.01) - Assert.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(0.8, c.value(), 0.01) + Assertions.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) } @Test @Throws(Exception::class) @@ -71,8 +73,8 @@ class DanaRPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHPERCENTBASALRATE) danaRPlugin.applyBasalPercentConstraints(c, validProfile) - Assert.assertEquals(200, c.value()) - Assert.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(200, c.value()) + Assertions.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) } } \ No newline at end of file diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt index 8e40bf2cae..b14fad7e87 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt @@ -11,8 +11,7 @@ import info.nightscout.androidaps.danar.comm.MessageBase import info.nightscout.interfaces.ConfigBuilder import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.DetailedBolusInfoStorage import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.queue.CommandQueue @@ -33,7 +32,6 @@ import org.mockito.kotlin.doNothing open class DanaRTestBase : TestBase() { @Mock lateinit var sp: SP - @Mock lateinit var profileFunction: ProfileFunction @Mock lateinit var activePlugin: ActivePlugin @Mock lateinit var dateUtil: DateUtil @Mock lateinit var danaRPlugin: DanaRPlugin @@ -46,14 +44,14 @@ open class DanaRTestBase : TestBase() { @Mock lateinit var constraintChecker: Constraints @Mock lateinit var pumpSync: PumpSync @Mock lateinit var danaHistoryRecordDao: DanaHistoryRecordDao - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction private lateinit var testPumpPlugin: TestPumpPlugin @BeforeEach fun setup() { - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) testPumpPlugin = TestPumpPlugin(injector) `when`(activePlugin.activePump).thenReturn(testPumpPlugin) doNothing().`when`(danaRKoreanPlugin).setPluginEnabled(anyObject(), anyBoolean()) diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt index 6079c62d6a..2c593f191a 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt @@ -8,14 +8,14 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -27,7 +27,7 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { @Mock lateinit var sp: SP @Mock lateinit var commandQueue: CommandQueue @Mock lateinit var pumpSync: PumpSync - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @@ -47,7 +47,7 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { `when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s") - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) danaRPlugin = DanaRKoreanPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, uiInteraction, danaHistoryDatabase) } @@ -59,9 +59,9 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHBASALRATE) danaRPlugin.applyBasalConstraints(c, validProfile) - Assert.assertEquals(0.8, c.value(), 0.01) - Assert.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(0.8, c.value(), 0.01) + Assertions.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) } @Test @Throws(Exception::class) @@ -71,8 +71,8 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHPERCENTBASALRATE) danaRPlugin.applyBasalPercentConstraints(c, validProfile) - Assert.assertEquals(200, c.value()) - Assert.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(200, c.value()) + Assertions.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) } } \ No newline at end of file diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt index 06ed276026..39fb63ab9b 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt @@ -8,7 +8,7 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.DetailedBolusInfoStorage import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.TemporaryBasalStorage @@ -17,6 +17,7 @@ import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.shared.sharedPreferences.SP +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -30,7 +31,7 @@ class DanaRv2PluginTest : TestBaseWithProfile() { @Mock lateinit var detailedBolusInfoStorage: DetailedBolusInfoStorage @Mock lateinit var temporaryBasalStorage: TemporaryBasalStorage @Mock lateinit var pumpSync: PumpSync - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @@ -50,7 +51,7 @@ class DanaRv2PluginTest : TestBaseWithProfile() { `when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s") - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) danaRv2Plugin = DanaRv2Plugin( injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, temporaryBasalStorage, dateUtil, fabricPrivacy, pumpSync, uiInteraction, danaHistoryDatabase @@ -64,9 +65,9 @@ class DanaRv2PluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHBASALRATE) danaRv2Plugin.applyBasalConstraints(c, validProfile) - org.junit.Assert.assertEquals(0.8, c.value(), 0.01) - org.junit.Assert.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) - org.junit.Assert.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(0.8, c.value(), 0.01) + Assertions.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) } @Test @@ -76,8 +77,8 @@ class DanaRv2PluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHPERCENTBASALRATE) danaRv2Plugin.applyBasalPercentConstraints(c, validProfile) - org.junit.Assert.assertEquals(200, c.value()) - org.junit.Assert.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) - org.junit.Assert.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(200, c.value()) + Assertions.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) } } \ No newline at end of file diff --git a/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt b/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt index 49ca424f53..19881b22a2 100644 --- a/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt +++ b/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt @@ -1,9 +1,7 @@ package info.nightscout.pump.danars -import dagger.android.AndroidInjector -import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBaseWithProfile -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.danars.comm.DanaRSPacket @@ -16,11 +14,9 @@ import org.mockito.Mockito open class DanaRSTestBase : TestBaseWithProfile() { @Mock lateinit var sp: SP - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction - val injector = HasAndroidInjector { AndroidInjector { } } - lateinit var danaPump: DanaPump @BeforeEach @@ -58,6 +54,6 @@ open class DanaRSTestBase : TestBaseWithProfile() { @BeforeEach fun setup() { - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) } } \ No newline at end of file diff --git a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt index fa06f39be7..95657f8da3 100644 --- a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt @@ -19,6 +19,7 @@ import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.utils.DecimalFormatter @@ -56,6 +57,7 @@ class IobCobOref1Worker( @Inject lateinit var dateUtil: DateUtil @Inject lateinit var repository: AppRepository @Inject lateinit var dataWorkerStorage: DataWorkerStorage + @Inject lateinit var instantiator: Instantiator class IobCobOref1WorkerData( val injector: HasAndroidInjector, @@ -114,7 +116,7 @@ class IobCobOref1Worker( } aapsLogger.debug(LTag.AUTOSENS, "Processing calculation thread: ${data.reason} ($i/${bucketedData.size})") val sens = profile.getIsfMgdl(bgTime) - val autosensData = data.iobCobCalculator.provideEmptyAutosensDataObject() + val autosensData = instantiator.provideAutosensDataObject() autosensData.time = bgTime if (previous != null) autosensData.activeCarbsList = previous.cloneCarbsList() else autosensData.activeCarbsList = ArrayList() diff --git a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt index d371a78f74..39b02048fe 100644 --- a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt @@ -17,6 +17,7 @@ import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.utils.DecimalFormatter @@ -52,6 +53,7 @@ class IobCobOrefWorker @Inject internal constructor( @Inject lateinit var dateUtil: DateUtil @Inject lateinit var repository: AppRepository @Inject lateinit var dataWorkerStorage: DataWorkerStorage + @Inject lateinit var instantiator: Instantiator class IobCobOrefWorkerData( val injector: HasAndroidInjector, @@ -109,7 +111,7 @@ class IobCobOrefWorker @Inject internal constructor( } aapsLogger.debug(LTag.AUTOSENS, "Processing calculation thread: ${data.reason} ($i/${bucketedData.size})") val sens = profile.getIsfMgdl(bgTime) - val autosensData = data.iobCobCalculator.provideEmptyAutosensDataObject() + val autosensData = instantiator.provideAutosensDataObject() autosensData.time = bgTime if (previous != null) autosensData.activeCarbsList = previous.cloneCarbsList() else autosensData.activeCarbsList = ArrayList()