diff --git a/app/src/test/java/info/nightscout/plugins/aps/loop/LoopPluginTest.kt b/app/src/test/java/info/nightscout/plugins/aps/loop/LoopPluginTest.kt index c49b5b8f0d..e929d32adf 100644 --- a/app/src/test/java/info/nightscout/plugins/aps/loop/LoopPluginTest.kt +++ b/app/src/test/java/info/nightscout/plugins/aps/loop/LoopPluginTest.kt @@ -2,6 +2,7 @@ package info.nightscout.plugins.aps.loop import android.app.NotificationManager import android.content.Context +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -24,7 +25,6 @@ import info.nightscout.sdk.interfaces.RunningConfiguration import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/app/src/test/java/info/nightscout/plugins/configBuilder/ConfigBuilderPluginTest.kt b/app/src/test/java/info/nightscout/plugins/configBuilder/ConfigBuilderPluginTest.kt index 3061e18835..7bc5c0dd2d 100644 --- a/app/src/test/java/info/nightscout/plugins/configBuilder/ConfigBuilderPluginTest.kt +++ b/app/src/test/java/info/nightscout/plugins/configBuilder/ConfigBuilderPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.configBuilder +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.configuration.configBuilder.ConfigBuilderPlugin @@ -10,7 +11,6 @@ import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/app/src/test/java/info/nightscout/plugins/constraints/ConstraintsCheckerTest.kt b/app/src/test/java/info/nightscout/plugins/constraints/ConstraintsCheckerTest.kt index 4f8f66662a..c33c3bfd64 100644 --- a/app/src/test/java/info/nightscout/plugins/constraints/ConstraintsCheckerTest.kt +++ b/app/src/test/java/info/nightscout/plugins/constraints/ConstraintsCheckerTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.constraints +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -42,7 +43,6 @@ import info.nightscout.pump.dana.R import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.pump.danars.DanaRSPlugin import info.nightscout.pump.virtual.VirtualPumpPlugin -import info.nightscout.sharedtests.TestBaseWithProfile import info.nightscout.source.GlimpPlugin import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/app/src/test/java/info/nightscout/plugins/general/maintenance/MaintenancePluginTest.kt b/app/src/test/java/info/nightscout/plugins/general/maintenance/MaintenancePluginTest.kt index 380f8f167f..43b9342787 100644 --- a/app/src/test/java/info/nightscout/plugins/general/maintenance/MaintenancePluginTest.kt +++ b/app/src/test/java/info/nightscout/plugins/general/maintenance/MaintenancePluginTest.kt @@ -1,6 +1,7 @@ package info.nightscout.plugins.general.maintenance import android.content.Context +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import dagger.android.HasAndroidInjector import info.nightscout.configuration.maintenance.MaintenancePlugin @@ -10,7 +11,6 @@ import info.nightscout.interfaces.maintenance.PrefFileListProvider import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/app/src/test/java/info/nightscout/plugins/safety/SafetyPluginTest.kt b/app/src/test/java/info/nightscout/plugins/safety/SafetyPluginTest.kt index 95500cb348..1cf0e57513 100644 --- a/app/src/test/java/info/nightscout/plugins/safety/SafetyPluginTest.kt +++ b/app/src/test/java/info/nightscout/plugins/safety/SafetyPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.safety +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -20,7 +21,6 @@ import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin import info.nightscout.plugins.aps.openAPSSMB.OpenAPSSMBPlugin import info.nightscout.plugins.constraints.safety.SafetyPlugin import info.nightscout.pump.virtual.VirtualPumpPlugin -import info.nightscout.sharedtests.TestBaseWithProfile import info.nightscout.source.GlimpPlugin import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/app/src/test/java/info/nightscout/plugins/sensitivity/AbstractSensitivityPluginTest.kt b/app/src/test/java/info/nightscout/plugins/sensitivity/AbstractSensitivityPluginTest.kt index eb94a9e2ca..2e1dafc996 100644 --- a/app/src/test/java/info/nightscout/plugins/sensitivity/AbstractSensitivityPluginTest.kt +++ b/app/src/test/java/info/nightscout/plugins/sensitivity/AbstractSensitivityPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.sensitivity +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -11,7 +12,6 @@ import info.nightscout.rx.logging.AAPSLogger import info.nightscout.sensitivity.AbstractSensitivityPlugin import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.json.JSONObject import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/app/src/test/java/info/nightscout/pump/PumpEnactResultTest.kt b/app/src/test/java/info/nightscout/pump/PumpEnactResultTest.kt index 11d61c0d0f..460ea6a8f4 100644 --- a/app/src/test/java/info/nightscout/pump/PumpEnactResultTest.kt +++ b/app/src/test/java/info/nightscout/pump/PumpEnactResultTest.kt @@ -1,5 +1,6 @@ package info.nightscout.pump +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -7,7 +8,6 @@ import info.nightscout.core.pump.toHtml import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.plugins.aps.loop.extensions.json import info.nightscout.pump.virtual.extensions.toText -import info.nightscout.sharedtests.TestBaseWithProfile import org.json.JSONObject import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/core/main/src/test/java/info/nightscout/core/data/ConstraintTest.kt b/core/main/src/test/java/info/nightscout/core/data/ConstraintTest.kt index 7cca04c37b..16943880c4 100644 --- a/core/main/src/test/java/info/nightscout/core/data/ConstraintTest.kt +++ b/core/main/src/test/java/info/nightscout/core/data/ConstraintTest.kt @@ -1,9 +1,8 @@ package info.nightscout.core.data +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.core.constraints.ConstraintObject -import info.nightscout.sharedtests.TestBase -import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test /** diff --git a/core/main/src/test/java/info/nightscout/core/data/DetailedBolusInfoTest.kt b/core/main/src/test/java/info/nightscout/core/data/DetailedBolusInfoTest.kt index dfb995168b..47ae4b1a62 100644 --- a/core/main/src/test/java/info/nightscout/core/data/DetailedBolusInfoTest.kt +++ b/core/main/src/test/java/info/nightscout/core/data/DetailedBolusInfoTest.kt @@ -1,13 +1,13 @@ package info.nightscout.core.data -import com.google.common.truth.Truth.assertThat import android.content.Context +import app.aaps.shared.tests.TestBase +import com.google.common.truth.Truth.assertThat import com.google.gson.Gson import info.nightscout.database.entities.Bolus import info.nightscout.database.entities.BolusCalculatorResult import info.nightscout.database.entities.TherapyEvent import info.nightscout.interfaces.pump.DetailedBolusInfo -import info.nightscout.sharedtests.TestBase import org.apache.commons.lang3.builder.EqualsBuilder import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/core/main/src/test/java/info/nightscout/core/data/IobTotalTest.kt b/core/main/src/test/java/info/nightscout/core/data/IobTotalTest.kt index ffba7842da..e777299404 100644 --- a/core/main/src/test/java/info/nightscout/core/data/IobTotalTest.kt +++ b/core/main/src/test/java/info/nightscout/core/data/IobTotalTest.kt @@ -2,6 +2,7 @@ package info.nightscout.core.data import android.content.Context import app.aaps.shared.impl.utils.DateUtilImpl +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.core.iob.combine import info.nightscout.core.iob.copy @@ -11,7 +12,6 @@ import info.nightscout.core.iob.plus import info.nightscout.core.iob.round import info.nightscout.interfaces.iob.IobTotal import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/core/main/src/test/java/info/nightscout/core/data/ProfileTest.kt b/core/main/src/test/java/info/nightscout/core/data/ProfileTest.kt index da3a1cd402..e42fd22d0f 100644 --- a/core/main/src/test/java/info/nightscout/core/data/ProfileTest.kt +++ b/core/main/src/test/java/info/nightscout/core/data/ProfileTest.kt @@ -2,6 +2,9 @@ package info.nightscout.core.data import android.content.Context import app.aaps.shared.impl.utils.DateUtilImpl +import app.aaps.shared.tests.HardLimitsMock +import app.aaps.shared.tests.TestBase +import app.aaps.shared.tests.TestPumpPlugin import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import info.nightscout.core.extensions.pureProfileFromJson @@ -12,9 +15,6 @@ import info.nightscout.interfaces.utils.HardLimits import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.HardLimitsMock -import info.nightscout.sharedtests.TestBase -import info.nightscout.sharedtests.TestPumpPlugin import org.json.JSONObject import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/core/main/src/test/java/info/nightscout/core/utils/CryptoUtilTest.kt b/core/main/src/test/java/info/nightscout/core/utils/CryptoUtilTest.kt index 824b4dc183..09145c37d4 100644 --- a/core/main/src/test/java/info/nightscout/core/utils/CryptoUtilTest.kt +++ b/core/main/src/test/java/info/nightscout/core/utils/CryptoUtilTest.kt @@ -1,8 +1,8 @@ package info.nightscout.core.utils +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import com.google.common.truth.TruthJUnit.assume -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Test // https://stackoverflow.com/questions/52344522/joseexception-couldnt-create-aes-gcm-nopadding-cipher-illegal-key-size diff --git a/core/main/src/test/java/info/nightscout/core/utils/DateUtilTest.kt b/core/main/src/test/java/info/nightscout/core/utils/DateUtilTest.kt index 43784277df..96329a0a0e 100644 --- a/core/main/src/test/java/info/nightscout/core/utils/DateUtilTest.kt +++ b/core/main/src/test/java/info/nightscout/core/utils/DateUtilTest.kt @@ -2,10 +2,10 @@ package info.nightscout.core.utils import android.content.Context import app.aaps.shared.impl.utils.DateUtilImpl +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test diff --git a/core/main/src/test/java/info/nightscout/core/wizard/QuickWizardTest.kt b/core/main/src/test/java/info/nightscout/core/wizard/QuickWizardTest.kt index d89c0dfcd6..9be234a458 100644 --- a/core/main/src/test/java/info/nightscout/core/wizard/QuickWizardTest.kt +++ b/core/main/src/test/java/info/nightscout/core/wizard/QuickWizardTest.kt @@ -1,12 +1,12 @@ package info.nightscout.core.wizard +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.json.JSONArray import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/implementation/src/test/java/info/nightscout/implementation/iob/GlucoseStatusTest.kt b/implementation/src/test/java/info/nightscout/implementation/iob/GlucoseStatusTest.kt index fa0cbfbcf4..822eeb5929 100644 --- a/implementation/src/test/java/info/nightscout/implementation/iob/GlucoseStatusTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/iob/GlucoseStatusTest.kt @@ -1,5 +1,6 @@ package info.nightscout.implementation.iob +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import info.nightscout.core.iob.asRounded import info.nightscout.core.iob.log @@ -9,7 +10,6 @@ import info.nightscout.interfaces.iob.GlucoseStatus import info.nightscout.interfaces.iob.InMemoryGlucoseValue import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/implementation/src/test/java/info/nightscout/implementation/overview/OverviewDataImplTest.kt b/implementation/src/test/java/info/nightscout/implementation/overview/OverviewDataImplTest.kt index 4fce738688..4307bdf53b 100644 --- a/implementation/src/test/java/info/nightscout/implementation/overview/OverviewDataImplTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/overview/OverviewDataImplTest.kt @@ -1,5 +1,6 @@ package info.nightscout.implementation.overview +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import info.nightscout.database.ValueWrapper import info.nightscout.database.entities.GlucoseValue @@ -9,7 +10,6 @@ import info.nightscout.interfaces.aps.AutosensDataStore import info.nightscout.interfaces.iob.InMemoryGlucoseValue import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import io.reactivex.rxjava3.core.Single import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/implementation/src/test/java/info/nightscout/implementation/profile/ProfileStoreTest.kt b/implementation/src/test/java/info/nightscout/implementation/profile/ProfileStoreTest.kt index 0c142e8ba7..84b8ac7ed2 100644 --- a/implementation/src/test/java/info/nightscout/implementation/profile/ProfileStoreTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/profile/ProfileStoreTest.kt @@ -1,8 +1,8 @@ package info.nightscout.implementation.profile +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import info.nightscout.interfaces.profile.PureProfile -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Test internal class ProfileStoreTest : TestBaseWithProfile() { diff --git a/implementation/src/test/java/info/nightscout/implementation/profile/ProfileUtilImplTest.kt b/implementation/src/test/java/info/nightscout/implementation/profile/ProfileUtilImplTest.kt index b9b02c1847..afebff8fad 100644 --- a/implementation/src/test/java/info/nightscout/implementation/profile/ProfileUtilImplTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/profile/ProfileUtilImplTest.kt @@ -1,12 +1,12 @@ package info.nightscout.implementation.profile +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.database.entities.GlucoseValue import info.nightscout.implementation.utils.DecimalFormatterImpl import info.nightscout.interfaces.GlucoseUnit import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/implementation/src/test/java/info/nightscout/implementation/pump/DetailedBolusInfoStorageTest.kt b/implementation/src/test/java/info/nightscout/implementation/pump/DetailedBolusInfoStorageTest.kt index 3de4e26a24..fff2fa0267 100644 --- a/implementation/src/test/java/info/nightscout/implementation/pump/DetailedBolusInfoStorageTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/pump/DetailedBolusInfoStorageTest.kt @@ -1,11 +1,11 @@ package info.nightscout.implementation.pump +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.implementation.R import info.nightscout.interfaces.pump.DetailedBolusInfo import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/implementation/src/test/java/info/nightscout/implementation/pump/TemporaryBasalStorageTest.kt b/implementation/src/test/java/info/nightscout/implementation/pump/TemporaryBasalStorageTest.kt index 881bd46aa9..b9cdb340ae 100644 --- a/implementation/src/test/java/info/nightscout/implementation/pump/TemporaryBasalStorageTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/pump/TemporaryBasalStorageTest.kt @@ -1,8 +1,8 @@ package info.nightscout.implementation.pump +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.interfaces.pump.PumpSync -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt b/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt index b1654c2b1c..d18d2c7d78 100644 --- a/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt @@ -1,9 +1,11 @@ package info.nightscout.implementation.queue -import com.google.common.truth.Truth.assertThat import android.content.Context import android.os.Handler import android.os.PowerManager +import app.aaps.shared.tests.TestBaseWithProfile +import app.aaps.shared.tests.TestPumpPlugin +import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject @@ -36,8 +38,6 @@ import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBaseWithProfile -import info.nightscout.sharedtests.TestPumpPlugin import io.reactivex.rxjava3.core.Single import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/implementation/src/test/java/info/nightscout/implementation/queue/QueueThreadTest.kt b/implementation/src/test/java/info/nightscout/implementation/queue/QueueThreadTest.kt index ca01e108a2..c87830ac13 100644 --- a/implementation/src/test/java/info/nightscout/implementation/queue/QueueThreadTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/queue/QueueThreadTest.kt @@ -1,8 +1,10 @@ package info.nightscout.implementation.queue -import com.google.common.truth.Truth.assertThat import android.content.Context import android.os.PowerManager +import app.aaps.shared.tests.TestBaseWithProfile +import app.aaps.shared.tests.TestPumpPlugin +import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject @@ -15,8 +17,6 @@ import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.defs.PumpDescription import info.nightscout.interfaces.queue.Command import info.nightscout.interfaces.ui.UiInteraction -import info.nightscout.sharedtests.TestBaseWithProfile -import info.nightscout.sharedtests.TestPumpPlugin import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.ArgumentMatchers diff --git a/implementation/src/test/java/info/nightscout/implementation/utils/DecimalFormatterTest.kt b/implementation/src/test/java/info/nightscout/implementation/utils/DecimalFormatterTest.kt index 2b5938656c..9adc51d743 100644 --- a/implementation/src/test/java/info/nightscout/implementation/utils/DecimalFormatterTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/utils/DecimalFormatterTest.kt @@ -1,9 +1,9 @@ package info.nightscout.implementation.utils +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.interfaces.utils.DecimalFormatter import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/implementation/src/test/java/info/nightscout/implementation/wizard/BolusWizardTest.kt b/implementation/src/test/java/info/nightscout/implementation/wizard/BolusWizardTest.kt index 1435c70843..b18036fa2d 100644 --- a/implementation/src/test/java/info/nightscout/implementation/wizard/BolusWizardTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/wizard/BolusWizardTest.kt @@ -1,5 +1,6 @@ package info.nightscout.implementation.wizard +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -13,7 +14,6 @@ import info.nightscout.interfaces.iob.IobTotal import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.pump.defs.PumpDescription import info.nightscout.interfaces.queue.CommandQueue -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Test import org.mockito.Mock import org.mockito.Mockito diff --git a/plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt b/plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt index 939e85f1c7..1222fd41e8 100644 --- a/plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt +++ b/plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.aps.loop +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject @@ -10,7 +11,6 @@ import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.ConstraintsChecker import info.nightscout.interfaces.pump.defs.PumpType import info.nightscout.plugins.aps.APSResultObject -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotuneCoreTest.kt b/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotuneCoreTest.kt index daa4dd7287..50218bf598 100644 --- a/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotuneCoreTest.kt +++ b/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotuneCoreTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.general.autotune +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.core.profile.ProfileSealed import info.nightscout.core.utils.JsonHelper import info.nightscout.database.entities.data.Block @@ -10,7 +11,6 @@ import info.nightscout.plugins.general.autotune.data.ATProfile import info.nightscout.plugins.general.autotune.data.PreppedGlucose import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.json.JSONArray import org.json.JSONObject import org.junit.jupiter.api.Assertions diff --git a/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotunePrepTest.kt b/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotunePrepTest.kt index f5e0038be1..1f10ee2dfb 100644 --- a/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotunePrepTest.kt +++ b/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/AutotunePrepTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.general.autotune +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.core.extensions.shiftBlock import info.nightscout.core.profile.ProfileSealed import info.nightscout.core.utils.JsonHelper @@ -18,7 +19,6 @@ import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.json.JSONArray import org.json.JSONObject import org.junit.jupiter.api.Assertions diff --git a/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/PreppedGlucoseTest.kt b/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/PreppedGlucoseTest.kt index 4ec827289b..88a0f6cb98 100644 --- a/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/PreppedGlucoseTest.kt +++ b/plugins/aps/src/test/java/info/nightscout/plugins/general/autotune/PreppedGlucoseTest.kt @@ -1,9 +1,9 @@ package info.nightscout.plugins.general.autotune +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.plugins.general.autotune.data.BGDatum import info.nightscout.plugins.general.autotune.data.CRDatum import info.nightscout.plugins.general.autotune.data.PreppedGlucose -import info.nightscout.sharedtests.TestBaseWithProfile import org.json.JSONObject import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach diff --git a/plugins/automation/src/test/java/info/nightscout/automation/AutomationEventTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/AutomationEventTest.kt index 84e723e73d..4c02090d76 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/AutomationEventTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/AutomationEventTest.kt @@ -1,5 +1,6 @@ package info.nightscout.automation +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.actions.Action @@ -11,7 +12,6 @@ import info.nightscout.automation.triggers.TriggerDummy import info.nightscout.interfaces.ConfigBuilder import info.nightscout.interfaces.aps.Loop import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.json.JSONObject import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt index 7d255287ef..93ce4be0d3 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt @@ -2,6 +2,7 @@ package info.nightscout.automation import android.content.Context import app.aaps.shared.impl.utils.DateUtilImpl +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.services.LocationServiceHelper @@ -17,7 +18,6 @@ import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt index c2743c5d59..05496f96c2 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt @@ -2,6 +2,7 @@ package info.nightscout.automation import android.content.Context import app.aaps.shared.impl.utils.DateUtilImpl +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.services.LocationServiceHelper @@ -17,7 +18,6 @@ import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/automation/src/test/java/info/nightscout/automation/ComposeTriggerTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/ComposeTriggerTest.kt index 5db066b4fb..e90b901f9d 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/ComposeTriggerTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/ComposeTriggerTest.kt @@ -1,11 +1,11 @@ package info.nightscout.automation +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.triggers.Trigger import info.nightscout.automation.triggers.TriggerConnector import info.nightscout.automation.triggers.TriggerDummy -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionAlarmTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionAlarmTest.kt index b4ff42be96..119277f906 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionAlarmTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionAlarmTest.kt @@ -1,6 +1,7 @@ package info.nightscout.automation.actions import android.content.Context +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.R @@ -11,7 +12,6 @@ import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.queue.Callback import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionNotificationTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionNotificationTest.kt index 1cf9a096c7..18e2da1998 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionNotificationTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionNotificationTest.kt @@ -1,6 +1,7 @@ package info.nightscout.automation.actions import android.content.Context +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.R @@ -12,7 +13,6 @@ import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.queue.Callback import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import io.reactivex.rxjava3.core.Completable import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach 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 086d57b44f..822ceb517b 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 @@ -1,5 +1,6 @@ package info.nightscout.automation.actions +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.triggers.Trigger @@ -21,7 +22,6 @@ import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.smsCommunicator.SmsCommunicator import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.mockito.Mock import org.mockito.Mockito.`when` diff --git a/plugins/automation/src/test/java/info/nightscout/automation/elements/LayoutBuilderTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/elements/LayoutBuilderTest.kt index a790a991f8..843b97bfa7 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/elements/LayoutBuilderTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/elements/LayoutBuilderTest.kt @@ -1,8 +1,8 @@ package info.nightscout.automation.elements +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt b/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt index 825a61499a..587b824703 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerTestBase.kt @@ -1,5 +1,6 @@ package info.nightscout.automation.triggers +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.automation.AutomationPlugin @@ -8,7 +9,6 @@ import info.nightscout.database.impl.AppRepository import info.nightscout.implementation.iob.GlucoseStatusProviderImpl import info.nightscout.interfaces.aps.AutosensDataStore import info.nightscout.interfaces.receivers.ReceiverStatusStore -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.mockito.Mock import org.mockito.Mockito.`when` diff --git a/plugins/configuration/src/test/java/info/nightscout/configuration/maintenance/formats/EncryptedPrefsFormatTest.kt b/plugins/configuration/src/test/java/info/nightscout/configuration/maintenance/formats/EncryptedPrefsFormatTest.kt index 57c5ce8135..fce24882b2 100644 --- a/plugins/configuration/src/test/java/info/nightscout/configuration/maintenance/formats/EncryptedPrefsFormatTest.kt +++ b/plugins/configuration/src/test/java/info/nightscout/configuration/maintenance/formats/EncryptedPrefsFormatTest.kt @@ -1,5 +1,6 @@ package info.nightscout.configuration.maintenance.formats +import app.aaps.shared.tests.TestBase import com.google.common.truth.TruthJUnit.assume import info.nightscout.configuration.maintenance.PrefsMetadataKeyImpl import info.nightscout.core.utils.CryptoUtil @@ -9,7 +10,6 @@ import info.nightscout.interfaces.maintenance.Prefs import info.nightscout.interfaces.maintenance.PrefsFormat import info.nightscout.interfaces.maintenance.PrefsStatusImpl import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt index a77eebc91c..96da8d5162 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.constraints.bgQualityCheck +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject @@ -14,7 +15,6 @@ import info.nightscout.plugins.constraints.R import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt index 73e8444493..dc9ca4a726 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt @@ -1,12 +1,12 @@ package info.nightscout.plugins.constraints.dstHelper +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt index 1c2578dd00..a7df698dbb 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.constraints.objectives +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject @@ -11,7 +12,6 @@ import info.nightscout.plugins.constraints.objectives.objectives.Objective import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt index 10431b0875..3e78a1f826 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt @@ -1,8 +1,8 @@ package info.nightscout.plugins.constraints.objectives +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Test import org.mockito.Mock import kotlin.math.abs diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt index 8d605674ab..9200256806 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt @@ -1,6 +1,6 @@ package info.nightscout.plugins.constraints.signatureVerifier -import info.nightscout.sharedtests.TestBase +import app.aaps.shared.tests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt index f86ddb9157..f651aa9516 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.constraints.signatureVerifier +import app.aaps.shared.tests.TestBase import dagger.Lazy import info.nightscout.interfaces.Config import info.nightscout.interfaces.receivers.ReceiverStatusStore @@ -10,7 +11,6 @@ import info.nightscout.plugins.constraints.versionChecker.numericVersionPart import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt index 5d092d95da..296ce0c0c3 100644 --- a/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt @@ -1,12 +1,12 @@ package info.nightscout.plugins.constraints.storage +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -27,7 +27,7 @@ class StorageConstraintPluginTest : TestBase() { `when`(rh.gs(anyInt(), anyLong())).thenReturn("") } - class MockedStorageConstraintPlugin constructor( + class MockedStorageConstraintPlugin( injector: HasAndroidInjector, aapsLogger: AAPSLogger, rh: ResourceHelper, diff --git a/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt index af3df55f01..d086c2146e 100644 --- a/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt +++ b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.insulin +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config @@ -9,7 +10,6 @@ import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/main/src/test/java/info/nightscout/core/extensions/BolusExtensionKtTest.kt b/plugins/main/src/test/java/info/nightscout/core/extensions/BolusExtensionKtTest.kt index a2f9579ebb..7f91eda217 100644 --- a/plugins/main/src/test/java/info/nightscout/core/extensions/BolusExtensionKtTest.kt +++ b/plugins/main/src/test/java/info/nightscout/core/extensions/BolusExtensionKtTest.kt @@ -1,12 +1,12 @@ package info.nightscout.core.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.Bolus import info.nightscout.insulin.InsulinLyumjevPlugin import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/main/src/test/java/info/nightscout/core/extensions/ExtendedBolusExtensionKtTest.kt b/plugins/main/src/test/java/info/nightscout/core/extensions/ExtendedBolusExtensionKtTest.kt index 1b15668892..2bbda0705c 100644 --- a/plugins/main/src/test/java/info/nightscout/core/extensions/ExtendedBolusExtensionKtTest.kt +++ b/plugins/main/src/test/java/info/nightscout/core/extensions/ExtendedBolusExtensionKtTest.kt @@ -1,5 +1,6 @@ package info.nightscout.core.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.ExtendedBolus import info.nightscout.database.entities.TemporaryBasal import info.nightscout.insulin.InsulinLyumjevPlugin @@ -9,7 +10,6 @@ import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -54,9 +54,22 @@ class ExtendedBolusExtensionKtTest : TestBaseWithProfile() { // there should be significant IOB at EB finish Assertions.assertTrue(0.8 < bolus.iobCalc(now + T.hours(1).msecs(), validProfile, asResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, true, insulin).iob) // there should be less that 5% after DIA -1 - Assertions.assertTrue(0.05 > bolus.iobCalc(now + T.hours(dia.toLong() - 1).msecs(), validProfile, asResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, true, insulin).iob) + Assertions.assertTrue( + 0.05 > bolus.iobCalc( + now + T.hours(dia.toLong() - 1).msecs(), + validProfile, + asResult, + SMBDefaults.exercise_mode, + SMBDefaults.half_basal_exercise_target, + true, + insulin + ).iob + ) // there should be zero after DIA - Assertions.assertEquals(0.0, bolus.iobCalc(now + T.hours(dia.toLong() + 1).msecs(), validProfile, asResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, true, insulin).iob) + Assertions.assertEquals( + 0.0, + bolus.iobCalc(now + T.hours(dia.toLong() + 1).msecs(), validProfile, asResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, true, insulin).iob + ) // no IOB for invalid record bolus.isValid = false Assertions.assertEquals(0.0, bolus.iobCalc(now + T.hours(1).msecs(), validProfile, asResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, true, insulin).iob) diff --git a/plugins/main/src/test/java/info/nightscout/core/extensions/GlucoseValueExtensionKtTest.kt b/plugins/main/src/test/java/info/nightscout/core/extensions/GlucoseValueExtensionKtTest.kt index 6f0a684591..f9b55ccd57 100644 --- a/plugins/main/src/test/java/info/nightscout/core/extensions/GlucoseValueExtensionKtTest.kt +++ b/plugins/main/src/test/java/info/nightscout/core/extensions/GlucoseValueExtensionKtTest.kt @@ -1,25 +1,29 @@ package info.nightscout.core.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.core.main.R import info.nightscout.database.entities.GlucoseValue import info.nightscout.interfaces.GlucoseUnit import info.nightscout.interfaces.iob.InMemoryGlucoseValue -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test class GlucoseValueExtensionKtTest : TestBaseWithProfile() { - private val glucoseValue = GlucoseValue(raw = 0.0, noise = 0.0, value = 100.0, timestamp = 1514766900000, sourceSensor = GlucoseValue.SourceSensor.UNKNOWN, trendArrow = GlucoseValue.TrendArrow.FLAT) + private val glucoseValue = + GlucoseValue(raw = 0.0, noise = 0.0, value = 100.0, timestamp = 1514766900000, sourceSensor = GlucoseValue.SourceSensor.UNKNOWN, trendArrow = GlucoseValue.TrendArrow.FLAT) private val inMemoryGlucoseValue = InMemoryGlucoseValue(1000, 100.0, sourceSensor = GlucoseValue.SourceSensor.UNKNOWN) + @Test fun valueToUnitsString() { } + @Test fun inMemoryValueToUnits() { Assertions.assertEquals(100.0, inMemoryGlucoseValue.valueToUnits(GlucoseUnit.MGDL)) Assertions.assertEquals(5.55, inMemoryGlucoseValue.valueToUnits(GlucoseUnit.MMOL), 0.01) } + @Test fun directionToIcon() { Assertions.assertEquals(R.drawable.ic_flat, glucoseValue.trendArrow.directionToIcon()) diff --git a/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryBasalExtensionKtTest.kt b/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryBasalExtensionKtTest.kt index e74f1c0a8d..2989b345c9 100644 --- a/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryBasalExtensionKtTest.kt +++ b/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryBasalExtensionKtTest.kt @@ -1,5 +1,6 @@ package info.nightscout.core.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.TemporaryBasal import info.nightscout.insulin.InsulinLyumjevPlugin import info.nightscout.interfaces.aps.AutosensResult @@ -8,7 +9,6 @@ import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryTargetExtensionKtTest.kt b/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryTargetExtensionKtTest.kt index a42e1ba3f9..c5c31a99ab 100644 --- a/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryTargetExtensionKtTest.kt +++ b/plugins/main/src/test/java/info/nightscout/core/extensions/TemporaryTargetExtensionKtTest.kt @@ -1,8 +1,8 @@ package info.nightscout.core.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.TemporaryTarget import info.nightscout.interfaces.GlucoseUnit -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test @@ -22,16 +22,19 @@ class TemporaryTargetExtensionKtTest : TestBaseWithProfile() { lowTarget = 110.0, duration = 1800000 ) + @Test fun lowValueToUnitsToString() { Assertions.assertEquals("110", temporaryTarget.lowValueToUnitsToString(GlucoseUnit.MGDL, decimalFormatter)) Assertions.assertEquals("6.1", temporaryTarget.lowValueToUnitsToString(GlucoseUnit.MMOL, decimalFormatter)) } + @Test fun highValueToUnitsToString() { Assertions.assertEquals("120", temporaryTarget.highValueToUnitsToString(GlucoseUnit.MGDL, decimalFormatter)) Assertions.assertEquals("6.7", temporaryTarget.highValueToUnitsToString(GlucoseUnit.MMOL, decimalFormatter)) } + @Test fun target() { Assertions.assertEquals(115.0, temporaryTarget.target()) diff --git a/plugins/main/src/test/java/info/nightscout/core/extensions/TherapyEventExtensionKtTest.kt b/plugins/main/src/test/java/info/nightscout/core/extensions/TherapyEventExtensionKtTest.kt index e8e0346eae..1819478c7d 100644 --- a/plugins/main/src/test/java/info/nightscout/core/extensions/TherapyEventExtensionKtTest.kt +++ b/plugins/main/src/test/java/info/nightscout/core/extensions/TherapyEventExtensionKtTest.kt @@ -1,14 +1,15 @@ package info.nightscout.core.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.TherapyEvent import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.mockito.Mockito class TherapyEventExtensionKtTest : TestBaseWithProfile() { + @Test fun isOlderThan() { val therapyEvent = TherapyEvent( diff --git a/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/AuthRequestTest.kt b/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/AuthRequestTest.kt index dd78ed0f2f..c88216b01d 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/AuthRequestTest.kt +++ b/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/AuthRequestTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.general.smsCommunicator +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Constants @@ -11,7 +12,6 @@ import info.nightscout.plugins.general.smsCommunicator.otp.OneTimePasswordValida import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.kt b/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.kt index 5b70b36fb1..67f3aa8af7 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.kt +++ b/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.kt @@ -1,6 +1,7 @@ package info.nightscout.plugins.general.smsCommunicator import android.telephony.SmsManager +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -33,7 +34,6 @@ import info.nightscout.plugins.general.smsCommunicator.otp.OneTimePassword import info.nightscout.plugins.general.smsCommunicator.otp.OneTimePasswordValidationResult import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBaseWithProfile import io.reactivex.rxjava3.core.Single import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsTest.kt b/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsTest.kt index 550fee778f..2dafbd4cf2 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsTest.kt +++ b/plugins/main/src/test/java/info/nightscout/plugins/general/smsCommunicator/SmsTest.kt @@ -1,8 +1,8 @@ package info.nightscout.plugins.general.smsCommunicator import android.telephony.SmsMessage +import app.aaps.shared.tests.TestBase import info.nightscout.interfaces.smsCommunicator.Sms -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.mockito.Mockito diff --git a/plugins/main/src/test/java/info/nightscout/plugins/iob/AutosensDataStoreTest.kt b/plugins/main/src/test/java/info/nightscout/plugins/iob/AutosensDataStoreTest.kt index 4fdb05a80e..3726c646b6 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/iob/AutosensDataStoreTest.kt +++ b/plugins/main/src/test/java/info/nightscout/plugins/iob/AutosensDataStoreTest.kt @@ -3,6 +3,7 @@ package info.nightscout.plugins.iob import android.content.Context import androidx.collection.LongSparseArray import app.aaps.shared.impl.utils.DateUtilImpl +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.database.entities.GlucoseValue @@ -14,7 +15,6 @@ import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt index d7c6ddfea9..2c704800dc 100644 --- a/plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt @@ -1,8 +1,8 @@ package info.nightscout.source +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt index 798a4e651a..60d2193db1 100644 --- a/plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt @@ -1,8 +1,8 @@ package info.nightscout.source +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt index bd652009cc..8843974a6c 100644 --- a/plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt @@ -1,9 +1,9 @@ package info.nightscout.source +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import info.nightscout.interfaces.Config import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/source/src/test/java/info/nightscout/source/XdripSourcePluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/XdripSourcePluginTest.kt index ecc9439a0e..4e75aa6bae 100644 --- a/plugins/source/src/test/java/info/nightscout/source/XdripSourcePluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/XdripSourcePluginTest.kt @@ -1,8 +1,8 @@ package info.nightscout.source +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/dataBroadcaster/DataBroadcastPluginTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/dataBroadcaster/DataBroadcastPluginTest.kt index e061835edd..e411feb219 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/dataBroadcaster/DataBroadcastPluginTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/dataBroadcaster/DataBroadcastPluginTest.kt @@ -1,5 +1,7 @@ package info.nightscout.plugins.sync.dataBroadcaster +import app.aaps.shared.tests.BundleMock +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.database.entities.GlucoseValue @@ -17,7 +19,6 @@ import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.rx.events.EventOverviewBolusProgress -import info.nightscout.sharedtests.TestBaseWithProfile import org.json.JSONObject import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach @@ -53,7 +54,8 @@ internal class DataBroadcastPluginTest : TestBaseWithProfile() { Mockito.`when`(iobCobCalculator.calculateIobFromBolus()).thenReturn(IobTotal(System.currentTimeMillis())) Mockito.`when`(iobCobCalculator.getCobInfo("broadcast")).thenReturn(CobInfo(1000, 100.0, 10.0)) Mockito.`when`(iobCobCalculator.calculateIobFromTempBasalsIncludingConvertedExtended()).thenReturn(IobTotal(System.currentTimeMillis())) - Mockito.`when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(anyLong())).thenReturn(TemporaryBasal(timestamp = 1000, duration = 60000, isAbsolute = true, rate = 1.0, type = TemporaryBasal.Type.NORMAL)) + Mockito.`when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(anyLong())) + .thenReturn(TemporaryBasal(timestamp = 1000, duration = 60000, isAbsolute = true, rate = 1.0, type = TemporaryBasal.Type.NORMAL)) Mockito.`when`(processedDeviceStatusData.uploaderStatus).thenReturn("100%") Mockito.`when`(loop.lastRun).thenReturn(Loop.LastRun().also { it.lastTBREnact = 1000 @@ -77,7 +79,7 @@ internal class DataBroadcastPluginTest : TestBaseWithProfile() { it.status = "Some status" it.percent = 100 } - val bundle = info.nightscout.sharedtests.BundleMock.mock() + val bundle = BundleMock.mock() sut.prepareData(event, bundle) Assertions.assertTrue(bundle.containsKey("progressPercent")) Assertions.assertTrue(bundle.containsKey("progressStatus")) @@ -119,7 +121,7 @@ internal class DataBroadcastPluginTest : TestBaseWithProfile() { it.status = "Some status" it.percent = 100 } - val bundle = info.nightscout.sharedtests.BundleMock.mock() + val bundle = BundleMock.mock() sut.prepareData(event, bundle) Assertions.assertTrue(bundle.containsKey("progressPercent")) Assertions.assertTrue(bundle.containsKey("progressStatus")) diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclient/ReceiverDelegateTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclient/ReceiverDelegateTest.kt index ea9149f0c7..fea76676e8 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclient/ReceiverDelegateTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclient/ReceiverDelegateTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.sync.nsclient +import app.aaps.shared.tests.TestBase import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.plugins.sync.R @@ -7,7 +8,6 @@ import info.nightscout.rx.events.EventChargingState import info.nightscout.rx.events.EventNetworkChange import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3PluginTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3PluginTest.kt index 182fcb4566..dbdcc3c91f 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3PluginTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/NSClientV3PluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.sync.nsclientV3 +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.extensions.fromConstant @@ -34,7 +35,6 @@ import info.nightscout.plugins.sync.nsclient.data.NSDeviceStatusHandler import info.nightscout.plugins.sync.nsclient.extensions.fromConstant import info.nightscout.sdk.interfaces.NSAndroidClient import info.nightscout.sdk.localmodel.treatment.CreateUpdateResponse -import info.nightscout.sharedtests.TestBaseWithProfile import kotlinx.coroutines.test.runTest import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/DeviceStatusExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/DeviceStatusExtensionKtTest.kt index 9edd9225db..e747af9ec7 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/DeviceStatusExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/DeviceStatusExtensionKtTest.kt @@ -1,17 +1,17 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBase import info.nightscout.database.entities.DeviceStatus import info.nightscout.interfaces.Config -import info.nightscout.sdk.interfaces.RunningConfiguration import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData import info.nightscout.interfaces.profile.Instantiator import info.nightscout.plugins.sync.nsclient.data.NSDeviceStatusHandler import info.nightscout.plugins.sync.nsclient.data.ProcessedDeviceStatusDataImpl +import info.nightscout.sdk.interfaces.RunningConfiguration import info.nightscout.sdk.mapper.convertToRemoteAndBack import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtensionKtTest.kt index 1e464938fe..96f0bd872e 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/EffectiveProfileSwitchExtensionKtTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.EffectiveProfileSwitch import info.nightscout.database.entities.embedments.InsulinConfiguration import info.nightscout.database.entities.embedments.InterfaceIDs @@ -7,7 +8,6 @@ import info.nightscout.interfaces.insulin.Insulin import info.nightscout.plugins.sync.nsclient.extensions.fromConstant import info.nightscout.sdk.localmodel.treatment.NSEffectiveProfileSwitch import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -26,6 +26,7 @@ internal class EffectiveProfileSwitchExtensionKtTest : TestBaseWithProfile() { Mockito.`when`(insulin.insulinConfiguration).thenReturn(insulinConfiguration) Mockito.`when`(activePlugin.activeInsulin).thenReturn(insulin) } + @Test fun toEffectiveProfileSwitch() { val profileSwitch = EffectiveProfileSwitch( diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtensionKtTest.kt index 47855ffdc4..6a05e34943 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ExtendedBolusExtensionKtTest.kt @@ -1,11 +1,11 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.ExtendedBolus import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.sdk.localmodel.treatment.NSExtendedBolus import info.nightscout.sdk.localmodel.treatment.NSTemporaryBasal import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/GlucoseValueExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/GlucoseValueExtensionKtTest.kt index ad44d2463a..14e9e8fd6c 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/GlucoseValueExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/GlucoseValueExtensionKtTest.kt @@ -1,9 +1,9 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.GlucoseValue import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtensionKtTest.kt index 7be1c5d7eb..7d682db78a 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/ProfileSwitchExtensionKtTest.kt @@ -1,5 +1,6 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.core.extensions.fromConstant import info.nightscout.database.entities.ProfileSwitch import info.nightscout.database.entities.embedments.InsulinConfiguration @@ -7,7 +8,6 @@ import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.interfaces.insulin.Insulin import info.nightscout.sdk.localmodel.treatment.NSProfileSwitch import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -26,6 +26,7 @@ internal class ProfileSwitchExtensionKtTest : TestBaseWithProfile() { Mockito.`when`(insulin.insulinConfiguration).thenReturn(insulinConfiguration) Mockito.`when`(activePlugin.activeInsulin).thenReturn(insulin) } + @Test fun toProfileSwitch() { var profileSwitch = ProfileSwitch( diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtensionKtTest.kt index 758f31dbc7..2a4aa46388 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryBasalExtensionKtTest.kt @@ -1,10 +1,10 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.TemporaryBasal import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.sdk.localmodel.treatment.NSTemporaryBasal import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtensionKtTest.kt index 3079a0241e..835e8dcb96 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TemporaryTargetExtensionKtTest.kt @@ -1,10 +1,10 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.TemporaryTarget import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.sdk.localmodel.treatment.NSTemporaryTarget import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtensionKtTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtensionKtTest.kt index aefa5bac9e..17423a6146 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtensionKtTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/extensions/TherapyEventExtensionKtTest.kt @@ -1,10 +1,10 @@ package info.nightscout.plugins.sync.nsclientV3.extensions +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.database.entities.TherapyEvent import info.nightscout.database.entities.embedments.InterfaceIDs import info.nightscout.sdk.localmodel.treatment.NSTherapyEvent import info.nightscout.sdk.mapper.convertToRemoteAndBack -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/DataSyncWorkerTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/DataSyncWorkerTest.kt index 4173e6e8e6..846bdcf2bd 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/DataSyncWorkerTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/DataSyncWorkerTest.kt @@ -3,6 +3,7 @@ package info.nightscout.plugins.sync.nsclientV3.workers import android.content.Context import androidx.work.ListenableWorker.Result.Success import androidx.work.testing.TestListenableWorkerBuilder +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.utils.fabric.FabricPrivacy @@ -10,7 +11,6 @@ import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.sync.NsClient import info.nightscout.plugins.sync.nsclientV3.DataSyncSelectorV3 import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin -import info.nightscout.sharedtests.TestBase import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.jupiter.api.Assertions diff --git a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorkerTest.kt b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorkerTest.kt index 6e88ae34d7..cd6d6cbed1 100644 --- a/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorkerTest.kt +++ b/plugins/sync/src/test/java/info/nightscout/plugins/sync/nsclientV3/workers/LoadBgWorkerTest.kt @@ -6,6 +6,7 @@ import androidx.work.OneTimeWorkRequest import androidx.work.WorkContinuation import androidx.work.WorkManager import androidx.work.testing.TestListenableWorkerBuilder +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.utils.fabric.FabricPrivacy @@ -31,7 +32,6 @@ import info.nightscout.sdk.remotemodel.LastModified import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import kotlinx.coroutines.test.runTest import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach diff --git a/pump/combo/src/test/java/info/nightscout/pump/combo/ComboPluginTest.kt b/pump/combo/src/test/java/info/nightscout/pump/combo/ComboPluginTest.kt index bd74be68e6..ef7c69b91d 100644 --- a/pump/combo/src/test/java/info/nightscout/pump/combo/ComboPluginTest.kt +++ b/pump/combo/src/test/java/info/nightscout/pump/combo/ComboPluginTest.kt @@ -1,6 +1,7 @@ package info.nightscout.pump.combo import android.content.Context +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.core.constraints.ConstraintObject @@ -15,7 +16,6 @@ import info.nightscout.pump.combo.ruffyscripter.history.Bolus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/pump/dana/src/test/java/info/nightscout/pump/dana/DanaPumpTest.kt b/pump/dana/src/test/java/info/nightscout/pump/dana/DanaPumpTest.kt index 78e87039ed..b11ddca0a6 100644 --- a/pump/dana/src/test/java/info/nightscout/pump/dana/DanaPumpTest.kt +++ b/pump/dana/src/test/java/info/nightscout/pump/dana/DanaPumpTest.kt @@ -1,8 +1,8 @@ package info.nightscout.pump.dana +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import info.nightscout.interfaces.profile.Instantiator -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/pump/danar/src/test/java/info/nightscout/pump/danaR/DanaRPluginTest.kt b/pump/danar/src/test/java/info/nightscout/pump/danaR/DanaRPluginTest.kt index d481c6797b..78d4cd7308 100644 --- a/pump/danar/src/test/java/info/nightscout/pump/danaR/DanaRPluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/pump/danaR/DanaRPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.pump.danaR +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.danar.DanaRPlugin @@ -12,7 +13,6 @@ 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.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/DanaRTestBase.kt b/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/DanaRTestBase.kt index 964bd8341d..12b48c95f5 100644 --- a/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/DanaRTestBase.kt +++ b/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/DanaRTestBase.kt @@ -1,5 +1,6 @@ package info.nightscout.pump.danaR.comm +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin @@ -15,7 +16,6 @@ import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryRecordDao -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.mockito.ArgumentMatchers import org.mockito.Mock diff --git a/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/MessageOriginalNamesTest.kt b/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/MessageOriginalNamesTest.kt index d4196ec20f..23f652e903 100644 --- a/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/MessageOriginalNamesTest.kt +++ b/pump/danar/src/test/java/info/nightscout/pump/danaR/comm/MessageOriginalNamesTest.kt @@ -1,7 +1,7 @@ package info.nightscout.pump.danaR.comm +import app.aaps.shared.tests.TestBase import info.nightscout.androidaps.danar.comm.MessageOriginalNames -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/pump/danar/src/test/java/info/nightscout/pump/danaRKorean/DanaRKoreanPluginTest.kt b/pump/danar/src/test/java/info/nightscout/pump/danaRKorean/DanaRKoreanPluginTest.kt index e32940b390..9e10128c17 100644 --- a/pump/danar/src/test/java/info/nightscout/pump/danaRKorean/DanaRKoreanPluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/pump/danaRKorean/DanaRKoreanPluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.pump.danaRKorean +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin @@ -12,7 +13,6 @@ 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.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/pump/danar/src/test/java/info/nightscout/pump/danaRv2/DanaRv2PluginTest.kt b/pump/danar/src/test/java/info/nightscout/pump/danaRv2/DanaRv2PluginTest.kt index 6f97ea681a..a52b0ce50f 100644 --- a/pump/danar/src/test/java/info/nightscout/pump/danaRv2/DanaRv2PluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/pump/danaRv2/DanaRv2PluginTest.kt @@ -1,5 +1,6 @@ package info.nightscout.pump.danaRv2 +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.danaRv2.DanaRv2Plugin @@ -14,7 +15,6 @@ 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.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test 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 6fd3667c95..a40f1aa570 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,12 +1,12 @@ package info.nightscout.pump.danars +import app.aaps.shared.tests.TestBaseWithProfile import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector 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 -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.mockito.ArgumentMatchers import org.mockito.Mock diff --git a/pump/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/MedtronicTestBase.kt b/pump/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/MedtronicTestBase.kt index 615560d348..df9273df9e 100644 --- a/pump/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/MedtronicTestBase.kt +++ b/pump/medtronic/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/MedtronicTestBase.kt @@ -1,5 +1,6 @@ package info.nightscout.androidaps.plugins.pump.medtronic +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkUtil @@ -12,7 +13,6 @@ import info.nightscout.interfaces.pump.PumpSync import info.nightscout.pump.common.sync.PumpSyncStorage import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.mockito.Answers import org.mockito.Mock diff --git a/pump/medtrum/src/test/java/info/nightscout/pump/medtrum/MedtrumTestBase.kt b/pump/medtrum/src/test/java/info/nightscout/pump/medtrum/MedtrumTestBase.kt index a5b804f0cb..d01b550d0d 100644 --- a/pump/medtrum/src/test/java/info/nightscout/pump/medtrum/MedtrumTestBase.kt +++ b/pump/medtrum/src/test/java/info/nightscout/pump/medtrum/MedtrumTestBase.kt @@ -1,9 +1,9 @@ package info.nightscout.pump.medtrum +import app.aaps.shared.tests.TestBaseWithProfile import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.TemporaryBasalStorage import info.nightscout.interfaces.stats.TddCalculator -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.BeforeEach import org.mockito.Mock import org.mockito.Mockito diff --git a/pump/omnipod-dash/src/androidTest/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/history/DashHistoryTest.kt b/pump/omnipod-dash/src/androidTest/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/history/DashHistoryTest.kt index 8c9ea1cd8f..5cb3de649e 100644 --- a/pump/omnipod-dash/src/androidTest/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/history/DashHistoryTest.kt +++ b/pump/omnipod-dash/src/androidTest/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/history/DashHistoryTest.kt @@ -4,11 +4,11 @@ import android.content.Context import androidx.room.Room import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 +import app.aaps.shared.tests.AAPSLoggerTest import info.nightscout.androidaps.plugins.pump.omnipod.common.definition.OmnipodCommandType import info.nightscout.androidaps.plugins.pump.omnipod.dash.history.database.DashHistoryDatabase import info.nightscout.androidaps.plugins.pump.omnipod.dash.history.database.HistoryRecordDao import info.nightscout.androidaps.plugins.pump.omnipod.dash.history.mapper.HistoryMapper -import info.nightscout.sharedtests.AAPSLoggerTest import org.junit.Before import org.junit.jupiter.api.Test import org.junit.runner.RunWith diff --git a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/endecrypt/EnDecryptTest.kt b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/endecrypt/EnDecryptTest.kt index d8ef9a4200..fd26a0c76c 100644 --- a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/endecrypt/EnDecryptTest.kt +++ b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/endecrypt/EnDecryptTest.kt @@ -1,8 +1,8 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.comm.endecrypt +import app.aaps.shared.tests.AAPSLoggerTest import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.comm.message.MessagePacket import info.nightscout.core.utils.toHex -import info.nightscout.sharedtests.AAPSLoggerTest import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.spongycastle.util.encoders.Hex diff --git a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/pair/KeyExchangeTest.kt b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/pair/KeyExchangeTest.kt index 0b95e71c27..1d444e1f5c 100644 --- a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/pair/KeyExchangeTest.kt +++ b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/pair/KeyExchangeTest.kt @@ -1,11 +1,11 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.comm.pair +import app.aaps.shared.tests.AAPSLoggerTest +import app.aaps.shared.tests.TestBase import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.util.RandomByteGenerator import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.util.X25519KeyGenerator import info.nightscout.core.utils.toHex import info.nightscout.interfaces.Config -import info.nightscout.sharedtests.AAPSLoggerTest -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.mockito.ArgumentMatchers.anyInt diff --git a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/EapMessageTest.kt b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/EapMessageTest.kt index c399939cd3..0151ca5bc5 100644 --- a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/EapMessageTest.kt +++ b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/EapMessageTest.kt @@ -1,7 +1,7 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.comm.session +import app.aaps.shared.tests.AAPSLoggerTest import info.nightscout.core.utils.toHex -import info.nightscout.sharedtests.AAPSLoggerTest import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.spongycastle.util.encoders.Hex diff --git a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/MilenageTest.kt b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/MilenageTest.kt index 2c7914eb24..b0671f0157 100644 --- a/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/MilenageTest.kt +++ b/pump/omnipod-dash/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/session/MilenageTest.kt @@ -1,9 +1,9 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.comm.session +import app.aaps.shared.tests.AAPSLoggerTest +import app.aaps.shared.tests.TestBase import info.nightscout.core.utils.toHex import info.nightscout.interfaces.Config -import info.nightscout.sharedtests.AAPSLoggerTest -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.mockito.Mock diff --git a/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPluginTest.kt b/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPluginTest.kt index a4dae6e21f..61738697fa 100644 --- a/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPluginTest.kt +++ b/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPluginTest.kt @@ -1,5 +1,7 @@ package info.nightscout.androidaps.plugins.pump.omnipod.eros +import app.aaps.shared.tests.TestBase +import app.aaps.shared.tests.rx.TestAapsSchedulers import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkUtil @@ -15,8 +17,6 @@ import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.DecimalFormatter import info.nightscout.pump.common.defs.TempBasalPair import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.sharedtests.TestBase -import info.nightscout.sharedtests.rx.TestAapsSchedulers import org.joda.time.DateTimeZone import org.joda.time.tz.UTCProvider import org.junit.jupiter.api.Assertions diff --git a/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/manager/AapsErosPodStateManagerTest.kt b/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/manager/AapsErosPodStateManagerTest.kt index f798368d1c..e159fb8005 100644 --- a/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/manager/AapsErosPodStateManagerTest.kt +++ b/pump/omnipod-eros/src/test/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/manager/AapsErosPodStateManagerTest.kt @@ -1,9 +1,9 @@ package info.nightscout.androidaps.plugins.pump.omnipod.eros.manager +import app.aaps.shared.tests.TestBase import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.FirmwareVersion import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.PodProgressStatus import info.nightscout.shared.sharedPreferences.SP -import info.nightscout.sharedtests.TestBase import org.joda.time.DateTime import org.joda.time.DateTimeUtils import org.joda.time.DateTimeZone diff --git a/pump/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFSpyTest.kt b/pump/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFSpyTest.kt index b08ea9a481..85ecd40eda 100644 --- a/pump/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFSpyTest.kt +++ b/pump/rileylink/src/test/java/info/nightscout/androidaps/plugins/pump/common/hw/rileylink/ble/RFSpyTest.kt @@ -1,7 +1,7 @@ package info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble +import app.aaps.shared.tests.TestBase import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RileyLinkFirmwareVersion -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test diff --git a/pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt b/pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt index 87722bf9b4..7f911a84c1 100644 --- a/pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt +++ b/pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt @@ -1,5 +1,6 @@ package info.nightscout.pump.virtual +import app.aaps.shared.tests.TestBase import dagger.android.AndroidInjector import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.interfaces.Config @@ -12,7 +13,6 @@ import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/di/SharedImplModule.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/di/SharedImplModule.kt new file mode 100644 index 0000000000..686e9d151a --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/di/SharedImplModule.kt @@ -0,0 +1,50 @@ +package app.aaps.shared.impl.di + +import android.content.Context +import androidx.preference.PreferenceManager +import app.aaps.shared.impl.logging.AAPSLoggerProduction +import app.aaps.shared.impl.logging.LImpl +import app.aaps.shared.impl.rx.AapsSchedulersImpl +import app.aaps.shared.impl.rx.bus.RxBusImpl +import app.aaps.shared.impl.sharedPreferences.SPImplementation +import app.aaps.shared.impl.utils.DateUtilImpl +import dagger.Module +import dagger.Provides +import info.nightscout.rx.AapsSchedulers +import info.nightscout.rx.bus.RxBus +import info.nightscout.rx.interfaces.L +import info.nightscout.rx.logging.AAPSLogger +import info.nightscout.shared.sharedPreferences.SP +import info.nightscout.shared.utils.DateUtil +import javax.inject.Singleton + +@Module( + includes = [ + ] +) +open class SharedImplModule { + + @Provides + @Singleton + fun provideSharedPreferences(context: Context): SP = SPImplementation(PreferenceManager.getDefaultSharedPreferences(context), context) + + @Provides + @Singleton + fun provideL(sp: SP): L = LImpl(sp) + + @Provides + @Singleton + fun provideDateUtil(context: Context): DateUtil = DateUtilImpl(context) + + @Provides + @Singleton + fun provideAAPSLogger(l: L): AAPSLogger = AAPSLoggerProduction(l) + + @Provides + @Singleton + fun provideRxBus(aapsSchedulers: AapsSchedulers, aapsLogger: AAPSLogger): RxBus = RxBusImpl(aapsSchedulers, aapsLogger) + + @Provides + @Singleton + internal fun provideSchedulers(): AapsSchedulers = AapsSchedulersImpl() +} \ No newline at end of file diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/extensions/PackageManagerExtension.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/extensions/PackageManagerExtension.kt new file mode 100644 index 0000000000..902849a61a --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/extensions/PackageManagerExtension.kt @@ -0,0 +1,32 @@ +package app.aaps.shared.impl.extensions + +import android.content.Intent +import android.content.pm.PackageInfo +import android.content.pm.PackageManager +import android.content.pm.ResolveInfo + +/** + * Safe version of getInstalledPackages depending on Android version running + */ +fun PackageManager.safeGetInstalledPackages(flags: Int): List = + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) getInstalledPackages(PackageManager.PackageInfoFlags.of(flags.toLong())) + else @Suppress("DEPRECATION") getInstalledPackages(flags) + +/** + * Safe version of queryBroadcastReceivers depending on Android version running + */ +fun PackageManager.safeQueryBroadcastReceivers(intent: Intent, flags: Int): List = + try { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) queryBroadcastReceivers(intent, PackageManager.ResolveInfoFlags.of(flags.toLong())) + else @Suppress("DEPRECATION") queryBroadcastReceivers(intent, flags) + } catch (ignored: Exception) { + emptyList() + } + +/** + * Safe version of getPackageInfo depending on Android version running + */ +@Throws(PackageManager.NameNotFoundException::class) +fun PackageManager.safeGetPackageInfo(packageName: String, flags: Int): PackageInfo = + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(flags.toLong())) + else @Suppress("DEPRECATION") getPackageInfo(packageName, flags) diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/logging/AAPSLoggerProduction.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/logging/AAPSLoggerProduction.kt new file mode 100644 index 0000000000..ea5783d347 --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/logging/AAPSLoggerProduction.kt @@ -0,0 +1,106 @@ +package app.aaps.shared.impl.logging + +import info.nightscout.rx.interfaces.L +import info.nightscout.rx.logging.AAPSLogger +import info.nightscout.rx.logging.LTag +import org.slf4j.LoggerFactory + +/** + * Created by adrian on 2019-12-27. + */ + +class AAPSLoggerProduction(val l: L) : AAPSLogger { + + override fun debug(message: String) { + LoggerFactory.getLogger(LTag.CORE.tag).debug(stackLogMarker() + message) + } + + override fun debug(enable: Boolean, tag: LTag, message: String) { + if (enable && l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).debug(stackLogMarker() + message) + } + + override fun debug(tag: LTag, message: String) { + if (l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).debug(stackLogMarker() + message) + } + + override fun debug(tag: LTag, accessor: () -> String) { + if (l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).debug(stackLogMarker() + accessor.invoke()) + } + + override fun debug(tag: LTag, format: String, vararg arguments: Any?) { + if (l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).debug(stackLogMarker() + format, arguments) + } + + override fun warn(tag: LTag, message: String) { + if (l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).warn(stackLogMarker() + message) + } + + override fun warn(tag: LTag, format: String, vararg arguments: Any?) { + LoggerFactory.getLogger(tag.tag).warn(stackLogMarker() + format, arguments) + } + + override fun info(tag: LTag, message: String) { + if (l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).info(stackLogMarker() + message) + } + + override fun info(tag: LTag, format: String, vararg arguments: Any?) { + if (l.findByName(tag.tag).enabled) + LoggerFactory.getLogger(tag.tag).info(stackLogMarker() + format, arguments) + } + + override fun error(tag: LTag, message: String) { + LoggerFactory.getLogger(tag.tag).error(stackLogMarker() + message) + } + + override fun error(message: String) { + LoggerFactory.getLogger(LTag.CORE.tag).error(stackLogMarker() + message) + } + + override fun error(message: String, throwable: Throwable) { + LoggerFactory.getLogger(LTag.CORE.tag).error(stackLogMarker() + message, throwable) + } + + override fun error(format: String, vararg arguments: Any?) { + LoggerFactory.getLogger(LTag.CORE.tag).error(stackLogMarker() + format, arguments) + } + + override fun error(tag: LTag, message: String, throwable: Throwable) { + LoggerFactory.getLogger(tag.tag).error(stackLogMarker() + message, throwable) + } + + override fun error(tag: LTag, format: String, vararg arguments: Any?) { + LoggerFactory.getLogger(tag.tag).error(stackLogMarker() + format, arguments) + } + + override fun debug(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + LoggerFactory.getLogger(tag.tag).debug(logLocationPrefix(className, methodName, lineNumber) + message) + } + + override fun info(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + LoggerFactory.getLogger(tag.tag).info(logLocationPrefix(className, methodName, lineNumber) + message) + } + + override fun warn(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + LoggerFactory.getLogger(tag.tag).warn(logLocationPrefix(className, methodName, lineNumber) + message) + } + + override fun error(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + LoggerFactory.getLogger(tag.tag).error(logLocationPrefix(className, methodName, lineNumber) + message) + } +} + +private fun logLocationPrefix(className: String, methodName: String, lineNumber: Int) = + "[$className.$methodName():$lineNumber]: " + +fun StackTraceElement.toLogString(): String = + logLocationPrefix(this.className.substringAfterLast("."), this.methodName, this.lineNumber) + +/* Needs to be inline. Don't remove even if IDE suggests it. */ +@Suppress("NOTHING_TO_INLINE") +inline fun stackLogMarker() = Throwable().stackTrace[1].toLogString() \ No newline at end of file diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/logging/LImpl.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/logging/LImpl.kt new file mode 100644 index 0000000000..738cd739bd --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/logging/LImpl.kt @@ -0,0 +1,72 @@ +package app.aaps.shared.impl.logging + +import info.nightscout.rx.interfaces.L +import info.nightscout.rx.interfaces.LogElement +import info.nightscout.rx.logging.LTag +import info.nightscout.shared.sharedPreferences.SP +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class LImpl @Inject constructor( + private val sp: SP +) : L { + + private var logElements: MutableList = ArrayList() + + init { + LTag.values().forEach { logElements.add(LogElementImpl(it, sp)) } + } + + override fun findByName(name: String): LogElement { + for (element in logElements) { + if (element.name == name) return element + } + return LogElementImpl(false, sp) + } + + override fun getLogElements(): List { + return logElements + } + + override fun resetToDefaults() { + for (element in logElements) { + element.resetToDefault() + } + } + + class LogElementImpl : LogElement { + + var sp: SP + override var name: String + override var defaultValue: Boolean + override var enabled: Boolean + private var requiresRestart = false + + internal constructor(tag: LTag, sp: SP) { + this.sp = sp + this.name = tag.tag + this.defaultValue = tag.defaultValue + this.requiresRestart = tag.requiresRestart + enabled = sp.getBoolean(getSPName(), defaultValue) + } + + internal constructor(defaultValue: Boolean, sp: SP) { + this.sp = sp + name = "NONEXISTENT" + this.defaultValue = defaultValue + enabled = defaultValue + } + + private fun getSPName(): String = "log_$name" + + override fun enable(enabled: Boolean) { + this.enabled = enabled + sp.putBoolean(getSPName(), enabled) + } + + override fun resetToDefault() { + enable(defaultValue) + } + } +} \ No newline at end of file diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/rx/AapsSchedulersImpl.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/rx/AapsSchedulersImpl.kt new file mode 100644 index 0000000000..fe7d18f878 --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/rx/AapsSchedulersImpl.kt @@ -0,0 +1,16 @@ +package app.aaps.shared.impl.rx + +import info.nightscout.rx.AapsSchedulers +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.schedulers.Schedulers +import javax.inject.Singleton + +@Singleton +class AapsSchedulersImpl : AapsSchedulers { + + override val main: Scheduler = AndroidSchedulers.mainThread() + override val io: Scheduler = Schedulers.io() + override val cpu: Scheduler = Schedulers.computation() + override val newThread: Scheduler = Schedulers.newThread() +} \ No newline at end of file diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/rx/bus/RxBusImpl.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/rx/bus/RxBusImpl.kt new file mode 100644 index 0000000000..c8eef42754 --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/rx/bus/RxBusImpl.kt @@ -0,0 +1,34 @@ +package app.aaps.shared.impl.rx.bus + +import info.nightscout.annotations.OpenForTesting +import info.nightscout.rx.AapsSchedulers +import info.nightscout.rx.bus.RxBus +import info.nightscout.rx.events.Event +import info.nightscout.rx.logging.AAPSLogger +import info.nightscout.rx.logging.LTag +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.PublishSubject +import javax.inject.Inject +import javax.inject.Singleton + +@OpenForTesting +@Singleton +class RxBusImpl @Inject constructor( + val aapsSchedulers: AapsSchedulers, + val aapsLogger: AAPSLogger +) : RxBus { + + private val publisher = PublishSubject.create() + + override fun send(event: Event) { + aapsLogger.debug(LTag.EVENTS, "Sending $event") + publisher.onNext(event) + } + + // Listen should return an Observable and not the publisher + // Using ofType we filter only events that match that class type + override fun toObservable(eventType: Class): Observable = + publisher + .subscribeOn(aapsSchedulers.io) + .ofType(eventType) +} \ No newline at end of file diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt new file mode 100644 index 0000000000..b5a019869d --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/sharedPreferences/SPImplementation.kt @@ -0,0 +1,204 @@ +package app.aaps.shared.impl.sharedPreferences + +import android.annotation.SuppressLint +import android.content.Context +import android.content.SharedPreferences +import androidx.annotation.StringRes +import info.nightscout.shared.SafeParse +import info.nightscout.shared.sharedPreferences.SP +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class SPImplementation @Inject constructor( + private val sharedPreferences: SharedPreferences, + private val context: Context +) : SP { + + @SuppressLint("ApplySharedPref") + override fun edit(commit: Boolean, block: SP.Editor.() -> Unit) { + val spEdit = sharedPreferences.edit() + + val edit = object : SP.Editor { + override fun clear() { + spEdit.clear() + } + + override fun remove(@StringRes resourceID: Int) { + spEdit.remove(context.getString(resourceID)) + } + + override fun remove(key: String) { + spEdit.remove(key) + } + + override fun putBoolean(key: String, value: Boolean) { + spEdit.putBoolean(key, value) + } + + override fun putBoolean(@StringRes resourceID: Int, value: Boolean) { + spEdit.putBoolean(context.getString(resourceID), value) + } + + override fun putDouble(key: String, value: Double) { + spEdit.putString(key, value.toString()) + } + + override fun putDouble(@StringRes resourceID: Int, value: Double) { + spEdit.putString(context.getString(resourceID), value.toString()) + } + + override fun putLong(key: String, value: Long) { + spEdit.putLong(key, value) + } + + override fun putLong(@StringRes resourceID: Int, value: Long) { + spEdit.putLong(context.getString(resourceID), value) + } + + override fun putInt(key: String, value: Int) { + spEdit.putInt(key, value) + } + + override fun putInt(@StringRes resourceID: Int, value: Int) { + spEdit.putInt(context.getString(resourceID), value) + } + + override fun putString(key: String, value: String) { + spEdit.putString(key, value) + } + + override fun putString(@StringRes resourceID: Int, value: String) { + spEdit.putString(context.getString(resourceID), value) + } + } + + block(edit) + + if (commit) + spEdit.commit() + else + spEdit.apply() + } + + override fun getAll(): Map = sharedPreferences.all + + override fun clear() = sharedPreferences.edit().clear().apply() + + override fun contains(key: String): Boolean = sharedPreferences.contains(key) + + override fun contains(resourceId: Int): Boolean = sharedPreferences.contains(context.getString(resourceId)) + + override fun remove(resourceID: Int) = + sharedPreferences.edit().remove(context.getString(resourceID)).apply() + + override fun remove(key: String) = + sharedPreferences.edit().remove(key).apply() + + override fun getString(resourceID: Int, defaultValue: String): String = + sharedPreferences.getString(context.getString(resourceID), defaultValue) ?: defaultValue + + override fun getString(key: String, defaultValue: String): String = + sharedPreferences.getString(key, defaultValue) ?: defaultValue + + override fun getStringOrNull(resourceID: Int, defaultValue: String?): String? = + sharedPreferences.getString(context.getString(resourceID), defaultValue) ?: defaultValue + + override fun getStringOrNull(key: String, defaultValue: String?): String? = + sharedPreferences.getString(key, defaultValue) + + override fun getBoolean(resourceID: Int, defaultValue: Boolean): Boolean { + return try { + sharedPreferences.getBoolean(context.getString(resourceID), defaultValue) + } catch (e: Exception) { + defaultValue + } + } + + override fun getBoolean(key: String, defaultValue: Boolean): Boolean { + return try { + sharedPreferences.getBoolean(key, defaultValue) + } catch (e: Exception) { + defaultValue + } + } + + override fun getDouble(resourceID: Int, defaultValue: Double): Double = + SafeParse.stringToDouble(sharedPreferences.getString(context.getString(resourceID), defaultValue.toString()), defaultValue) + + override fun getDouble(key: String, defaultValue: Double): Double = + SafeParse.stringToDouble(sharedPreferences.getString(key, defaultValue.toString()), defaultValue) + + override fun getInt(resourceID: Int, defaultValue: Int): Int { + return try { + sharedPreferences.getInt(context.getString(resourceID), defaultValue) + } catch (e: Exception) { + SafeParse.stringToInt(sharedPreferences.getString(context.getString(resourceID), defaultValue.toString()), defaultValue) + } + } + + override fun getInt(key: String, defaultValue: Int): Int { + return try { + sharedPreferences.getInt(key, defaultValue) + } catch (e: Exception) { + SafeParse.stringToInt(sharedPreferences.getString(key, defaultValue.toString()), defaultValue) + } + } + + override fun getLong(resourceID: Int, defaultValue: Long): Long { + return try { + sharedPreferences.getLong(context.getString(resourceID), defaultValue) + } catch (e: Exception) { + SafeParse.stringToLong(sharedPreferences.getString(context.getString(resourceID), defaultValue.toString()), defaultValue) + } + } + + override fun getLong(key: String, defaultValue: Long): Long { + return try { + sharedPreferences.getLong(key, defaultValue) + } catch (e: Exception) { + SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString()), defaultValue) + } + } + + override fun incLong(resourceID: Int) { + val value = getLong(resourceID, 0) + 1L + sharedPreferences.edit().putLong(context.getString(resourceID), value).apply() + } + + override fun putBoolean(key: String, value: Boolean) = sharedPreferences.edit().putBoolean(key, value).apply() + + override fun putBoolean(resourceID: Int, value: Boolean) = + sharedPreferences.edit().putBoolean(context.getString(resourceID), value).apply() + + override fun putDouble(key: String, value: Double) = + sharedPreferences.edit().putString(key, value.toString()).apply() + + override fun putDouble(resourceID: Int, value: Double) { + sharedPreferences.edit().putString(context.getString(resourceID), value.toString()).apply() + } + + override fun putLong(key: String, value: Long) = + sharedPreferences.edit().putLong(key, value).apply() + + override fun putLong(resourceID: Int, value: Long) = + sharedPreferences.edit().putLong(context.getString(resourceID), value).apply() + + override fun putInt(key: String, value: Int) = + sharedPreferences.edit().putInt(key, value).apply() + + override fun putInt(resourceID: Int, value: Int) = + sharedPreferences.edit().putInt(context.getString(resourceID), value).apply() + + override fun incInt(resourceID: Int) { + val value = getInt(resourceID, 0) + 1 + sharedPreferences.edit().putInt(context.getString(resourceID), value).apply() + } + + override fun putString(resourceID: Int, value: String) = + sharedPreferences.edit().putString(context.getString(resourceID), value).apply() + + override fun putString(key: String, value: String) = + sharedPreferences.edit().putString(key, value).apply() + +} \ No newline at end of file diff --git a/shared/impl/src/main/kotlin/app/aaps/shared/impl/utils/DateUtilImpl.kt b/shared/impl/src/main/kotlin/app/aaps/shared/impl/utils/DateUtilImpl.kt new file mode 100644 index 0000000000..b1c4fc90a7 --- /dev/null +++ b/shared/impl/src/main/kotlin/app/aaps/shared/impl/utils/DateUtilImpl.kt @@ -0,0 +1,472 @@ +package app.aaps.shared.impl.utils + +import android.content.Context +import android.os.Build +import androidx.annotation.RequiresApi +import androidx.collection.LongSparseArray +import info.nightscout.annotations.OpenForTesting +import info.nightscout.interfaces.R +import info.nightscout.shared.SafeParse +import info.nightscout.shared.interfaces.ResourceHelper +import info.nightscout.shared.utils.DateUtil +import info.nightscout.shared.utils.T +import org.apache.commons.lang3.time.DateUtils.isSameDay +import org.joda.time.DateTime +import org.joda.time.format.DateTimeFormat +import org.joda.time.format.ISODateTimeFormat +import java.security.SecureRandom +import java.text.DateFormat +import java.text.DecimalFormat +import java.text.DecimalFormatSymbols +import java.text.SimpleDateFormat +import java.time.Instant +import java.time.ZoneId +import java.time.ZoneOffset +import java.util.Calendar +import java.util.Date +import java.util.EnumSet +import java.util.GregorianCalendar +import java.util.Locale +import java.util.TimeZone +import java.util.concurrent.TimeUnit +import java.util.regex.Pattern +import java.util.stream.Collectors +import javax.inject.Inject +import javax.inject.Singleton +import kotlin.math.ceil +import kotlin.math.floor + +/** + * The Class DateUtil. A simple wrapper around SimpleDateFormat to ease the handling of iso date string <-> date obj + * with TZ + */ +@OpenForTesting +@Singleton +class DateUtilImpl @Inject constructor(private val context: Context) : DateUtil { + + /** + * The date format in iso. + */ + @Suppress("PrivatePropertyName", "SpellCheckingInspection") + private val FORMAT_DATE_ISO_OUT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" + + /** + * Takes in an ISO date string of the following format: + * yyyy-mm-ddThh:mm:ss.ms+HoMo + * + * @param isoDateString the iso date string + * @return the date + */ + override fun fromISODateString(isoDateString: String): Long { + val parser = ISODateTimeFormat.dateTimeParser() + val dateTime = DateTime.parse(isoDateString, parser) + return dateTime.toDate().time + } + + /** + * Render date + * + * @param date the date obj + * @return the iso-formatted date string + */ + override fun toISOString(date: Long): String { + val f: DateFormat = SimpleDateFormat(FORMAT_DATE_ISO_OUT, Locale.getDefault()) + f.timeZone = TimeZone.getTimeZone("UTC") + return f.format(date) + } + + @Suppress("SpellCheckingInspection") + override fun toISOAsUTC(timestamp: Long): String { + val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'0000Z'", Locale.US) + format.timeZone = TimeZone.getTimeZone("UTC") + return format.format(timestamp) + } + + @Suppress("SpellCheckingInspection") + override fun toISONoZone(timestamp: Long): String { + val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US) + format.timeZone = TimeZone.getDefault() + return format.format(timestamp) + } + + override fun secondsOfTheDayToMilliseconds(seconds: Int): Long { + val calendar: Calendar = GregorianCalendar() + calendar[Calendar.MONTH] = 0 // Set january to be sure we miss DST changing + calendar[Calendar.HOUR_OF_DAY] = seconds / 60 / 60 + calendar[Calendar.MINUTE] = seconds / 60 % 60 + calendar[Calendar.SECOND] = 0 + return calendar.timeInMillis + } + + override fun toSeconds(hhColonMm: String): Int { + val p = Pattern.compile("(\\d+):(\\d+)( a.m.| p.m.| AM| PM|AM|PM|)") + val m = p.matcher(hhColonMm) + var retVal = 0 + if (m.find()) { + retVal = SafeParse.stringToInt(m.group(1)) * 60 * 60 + SafeParse.stringToInt(m.group(2)) * 60 + if ((m.group(3) == " a.m." || m.group(3) == " AM" || m.group(3) == "AM") && m.group(1) == "12") retVal -= 12 * 60 * 60 + if ((m.group(3) == " p.m." || m.group(3) == " PM" || m.group(3) == "PM") && m.group(1) != "12") retVal += 12 * 60 * 60 + } + return retVal + } + + override fun dateString(mills: Long): String { + val df = DateFormat.getDateInstance(DateFormat.SHORT) + return df.format(mills) + } + + override fun dateStringRelative(mills: Long, rh: ResourceHelper): String { + val df = DateFormat.getDateInstance(DateFormat.SHORT) + val day = df.format(mills) + val beginOfToday = beginOfDay(now()) + return if (mills < now()) // Past + when { + mills > beginOfToday -> rh.gs(R.string.today) + mills > beginOfToday - T.days(1).msecs() -> rh.gs(R.string.yesterday) + mills > beginOfToday - T.days(7).msecs() -> dayAgo(mills, rh, true) + else -> day + } + else // Future + when { + mills < beginOfToday + T.days(1).msecs() -> rh.gs(R.string.later_today) + mills < beginOfToday + T.days(2).msecs() -> rh.gs(R.string.tomorrow) + mills < beginOfToday + T.days(7).msecs() -> dayAgo(mills, rh, true) + else -> day + } + } + + override fun dateStringShort(mills: Long): String { + var format = "MM/dd" + if (android.text.format.DateFormat.is24HourFormat(context)) { + format = "dd/MM" + } + return DateTime(mills).toString(DateTimeFormat.forPattern(format)) + } + + override fun timeString(): String = timeString(now()) + override fun timeString(mills: Long): String { + var format = "hh:mma" + if (android.text.format.DateFormat.is24HourFormat(context)) { + format = "HH:mm" + } + return DateTime(mills).toString(DateTimeFormat.forPattern(format)) + } + + override fun secondString(): String = secondString(now()) + override fun secondString(mills: Long): String = + DateTime(mills).toString(DateTimeFormat.forPattern("ss")) + + override fun minuteString(): String = minuteString(now()) + override fun minuteString(mills: Long): String = + DateTime(mills).toString(DateTimeFormat.forPattern("mm")) + + override fun hourString(): String = hourString(now()) + override fun hourString(mills: Long): String { + var format = "hh" + if (android.text.format.DateFormat.is24HourFormat(context)) { + format = "HH" + } + return DateTime(mills).toString(DateTimeFormat.forPattern(format)) + } + + override fun amPm(): String = amPm(now()) + override fun amPm(mills: Long): String = + DateTime(mills).toString(DateTimeFormat.forPattern("a")) + + override fun dayNameString(format: String): String = dayNameString(now(), format) + override fun dayNameString(mills: Long, format: String): String = + DateTime(mills).toString(DateTimeFormat.forPattern(format)) + + override fun dayString(): String = dayString(now()) + override fun dayString(mills: Long): String = + DateTime(mills).toString(DateTimeFormat.forPattern("dd")) + + override fun monthString(format: String): String = monthString(now(), format) + override fun monthString(mills: Long, format: String): String = + DateTime(mills).toString(DateTimeFormat.forPattern(format)) + + override fun weekString(): String = weekString(now()) + override fun weekString(mills: Long): String = + DateTime(mills).toString(DateTimeFormat.forPattern("ww")) + + override fun timeStringWithSeconds(mills: Long): String { + var format = "hh:mm:ssa" + if (android.text.format.DateFormat.is24HourFormat(context)) { + format = "HH:mm:ss" + } + return DateTime(mills).toString(DateTimeFormat.forPattern(format)) + } + + override fun dateAndTimeRangeString(start: Long, end: Long): String { + return dateAndTimeString(start) + " - " + timeString(end) + } + + override fun timeRangeString(start: Long, end: Long): String { + return timeString(start) + " - " + timeString(end) + } + + override fun dateAndTimeString(mills: Long): String { + return if (mills == 0L) "" else dateString(mills) + " " + timeString(mills) + } + + override fun dateAndTimeAndSecondsString(mills: Long): String { + return if (mills == 0L) "" else dateString(mills) + " " + timeStringWithSeconds(mills) + } + + override fun minAgo(rh: ResourceHelper, time: Long?): String { + if (time == null) return "" + val minutes = ((now() - time) / 1000 / 60).toInt() + return rh.gs(R.string.minago, minutes) + } + + override fun minAgoShort(time: Long?): String { + if (time == null) return "" + val minutes = ((time - now()) / 1000 / 60).toInt() + return (if (minutes > 0) "+" else "") + minutes + } + + override fun minAgoLong(rh: ResourceHelper, time: Long?): String { + if (time == null) return "" + val minutes = ((now() - time) / 1000 / 60).toInt() + return rh.gs(R.string.minago_long, minutes) + } + + override fun hourAgo(time: Long, rh: ResourceHelper): String { + val hours = (now() - time) / 1000.0 / 60 / 60 + return rh.gs(R.string.hoursago, hours) + } + + override fun dayAgo(time: Long, rh: ResourceHelper, round: Boolean): String { + var days = (now() - time) / 1000.0 / 60 / 60 / 24 + if (round) { + return if (now() > time) { + days = ceil(days) + rh.gs(R.string.days_ago_round, days) + } else { + days = floor(days) + rh.gs(R.string.in_days_round, days) + } + } + return if (now() > time) + rh.gs(R.string.days_ago, days) + else + rh.gs(R.string.in_days, days) + } + + override fun beginOfDay(mills: Long): Long { + val givenDate = Calendar.getInstance() + givenDate.timeInMillis = mills + givenDate[Calendar.HOUR_OF_DAY] = 0 + givenDate[Calendar.MINUTE] = 0 + givenDate[Calendar.SECOND] = 0 + givenDate[Calendar.MILLISECOND] = 0 + return givenDate.timeInMillis + } + + override fun timeStringFromSeconds(seconds: Int): String { + val cached = timeStrings[seconds.toLong()] + if (cached != null) return cached + val t = timeString(secondsOfTheDayToMilliseconds(seconds)) + timeStrings.put(seconds.toLong(), t) + return t + } + + override fun timeFrameString(timeInMillis: Long, rh: ResourceHelper): String { + var remainingTimeMinutes = timeInMillis / (1000 * 60) + val remainingTimeHours = remainingTimeMinutes / 60 + remainingTimeMinutes %= 60 + return "(" + (if (remainingTimeHours > 0) remainingTimeHours.toString() + rh.gs(R.string.shorthour) + " " else "") + remainingTimeMinutes + "')" + } + + override fun sinceString(timestamp: Long, rh: ResourceHelper): String { + return timeFrameString(System.currentTimeMillis() - timestamp, rh) + } + + override fun untilString(timestamp: Long, rh: ResourceHelper): String { + return timeFrameString(timestamp - System.currentTimeMillis(), rh) + } + + override fun now(): Long { + return System.currentTimeMillis() + } + + override fun nowWithoutMilliseconds(): Long { + var n = System.currentTimeMillis() + n -= n % 1000 + return n + } + + override fun isOlderThan(date: Long, minutes: Long): Boolean { + val diff = now() - date + return diff > T.mins(minutes).msecs() + } + + override fun getTimeZoneOffsetMs(): Long { + return GregorianCalendar().timeZone.rawOffset.toLong() + } + + override fun getTimeZoneOffsetMinutes(timestamp: Long): Int { + return TimeZone.getDefault().getOffset(timestamp) / 60000 + } + + override fun isSameDay(timestamp1: Long, timestamp2: Long) = isSameDay(Date(timestamp1), Date(timestamp2)) + + override fun isSameDayGroup(timestamp1: Long, timestamp2: Long): Boolean { + val now = now() + if (now in (timestamp1 + 1) until timestamp2 || now in (timestamp2 + 1) until timestamp1) + return false + return isSameDay(Date(timestamp1), Date(timestamp2)) + } + + //Map:{DAYS=1, HOURS=3, MINUTES=46, SECONDS=40, MILLISECONDS=0, MICROSECONDS=0, NANOSECONDS=0} + override fun computeDiff(date1: Long, date2: Long): Map { + val units: MutableList = ArrayList(EnumSet.allOf(TimeUnit::class.java)) + units.reverse() + val result: MutableMap = LinkedHashMap() + var millisecondsRest = date2 - date1 + for (unit in units) { + val diff = unit.convert(millisecondsRest, TimeUnit.MILLISECONDS) + val diffInMillisecondsForUnit = unit.toMillis(diff) + millisecondsRest -= diffInMillisecondsForUnit + result[unit] = diff + } + return result + } + + override fun age(milliseconds: Long, useShortText: Boolean, rh: ResourceHelper): String { + val diff = computeDiff(0L, milliseconds) + var days = " " + rh.gs(R.string.days) + " " + var hours = " " + rh.gs(R.string.hours) + " " + var minutes = " " + rh.gs(R.string.unit_minutes) + " " + if (useShortText) { + days = rh.gs(R.string.shortday) + hours = rh.gs(R.string.shorthour) + minutes = rh.gs(R.string.shortminute) + } + var result = "" + if (diff.getOrDefault(TimeUnit.DAYS, -1) > 0) result += diff[TimeUnit.DAYS].toString() + days + if (diff.getOrDefault(TimeUnit.HOURS, -1) > 0) result += diff[TimeUnit.HOURS].toString() + hours + if (diff[TimeUnit.DAYS] == 0L) result += diff[TimeUnit.MINUTES].toString() + minutes + return result + } + + override fun niceTimeScalar(time: Long, rh: ResourceHelper): String { + var t = time + var unit = rh.gs(R.string.unit_second) + t /= 1000 + if (t != 1L) unit = rh.gs(R.string.unit_seconds) + if (t > 59) { + unit = rh.gs(R.string.unit_minute) + t /= 60 + if (t != 1L) unit = rh.gs(R.string.unit_minutes) + if (t > 59) { + unit = rh.gs(R.string.unit_hour) + t /= 60 + if (t != 1L) unit = rh.gs(R.string.unit_hours) + if (t > 24) { + unit = rh.gs(R.string.unit_day) + t /= 24 + if (t != 1L) unit = rh.gs(R.string.unit_days) + if (t > 28) { + unit = rh.gs(R.string.unit_week) + t /= 7 + @Suppress("KotlinConstantConditions") + if (t != 1L) unit = rh.gs(R.string.unit_weeks) + } + } + } + } + //if (t != 1) unit = unit + "s"; //implemented plurality in every step, because in other languages plurality of time is not every time adding the same character + return qs(t.toDouble(), 0) + " " + unit + } + + override fun qs(x: Double, numDigits: Int): String { + var digits = numDigits + if (digits == -1) { + digits = 0 + if ((x.toInt() % x == 0.0)) { + digits++ + if ((x.toInt() * 10 / 10).toDouble() != x) { + digits++ + if ((x.toInt() * 100 / 100).toDouble() != x) digits++ + } + } + } + if (dfs == null) { + val localDfs = DecimalFormatSymbols() + localDfs.decimalSeparator = '.' + dfs = localDfs // avoid race condition + } + val thisDf: DecimalFormat? + // use singleton if on ui thread otherwise allocate new as DecimalFormat is not thread safe + if (Thread.currentThread().id == 1L) { + if (df == null) { + val localDf = DecimalFormat("#", dfs) + localDf.minimumIntegerDigits = 1 + df = localDf // avoid race condition + } + thisDf = df + } else { + thisDf = DecimalFormat("#", dfs) + } + thisDf?.maximumFractionDigits = digits + return thisDf?.format(x) ?: "" + } + + override fun formatHHMM(timeAsSeconds: Int): String { + val hour = timeAsSeconds / 60 / 60 + val minutes = (timeAsSeconds - hour * 60 * 60) / 60 + val df = DecimalFormat("00") + return df.format(hour.toLong()) + ":" + df.format(minutes.toLong()) + } + + @RequiresApi(Build.VERSION_CODES.O) + override fun timeZoneByOffset(offsetInMilliseconds: Long): TimeZone = + TimeZone.getTimeZone( + if (offsetInMilliseconds == 0L) ZoneId.of("UTC") + else ZoneId.getAvailableZoneIds() + .stream() + .map(ZoneId::of) + .filter { z -> z.rules.getOffset(Instant.now()).totalSeconds == ZoneOffset.ofHours((offsetInMilliseconds / 1000 / 3600).toInt()).totalSeconds } + .collect(Collectors.toList()) + .firstOrNull() ?: ZoneId.of("UTC") + ) + + override fun timeStampToUtcDateMillis(timestamp: Long): Long { + val current = Calendar.getInstance().apply { timeInMillis = timestamp } + return Calendar.getInstance().apply { + set(Calendar.YEAR, current[Calendar.YEAR]) + set(Calendar.MONTH, current[Calendar.MONTH]) + set(Calendar.DAY_OF_MONTH, current[Calendar.DAY_OF_MONTH]) + }.timeInMillis + } + + override fun mergeUtcDateToTimestamp(timestamp: Long, dateUtcMillis: Long): Long { + val selected = Calendar.getInstance().apply { timeInMillis = dateUtcMillis } + return Calendar.getInstance().apply { + timeInMillis = timestamp + set(Calendar.YEAR, selected[Calendar.YEAR]) + set(Calendar.MONTH, selected[Calendar.MONTH]) + set(Calendar.DAY_OF_MONTH, selected[Calendar.DAY_OF_MONTH]) + }.timeInMillis + } + + override fun mergeHourMinuteToTimestamp(timestamp: Long, hour: Int, minute: Int, randomSecond: Boolean): Long { + return Calendar.getInstance().apply { + timeInMillis = timestamp + set(Calendar.HOUR_OF_DAY, hour) + set(Calendar.MINUTE, minute) + if (randomSecond) set(Calendar.SECOND, seconds++) + }.timeInMillis + } + + companion object { + + private val timeStrings = LongSparseArray() + private var seconds: Int = (SecureRandom().nextDouble() * 59.0).toInt() + + // singletons to avoid repeated allocation + private var dfs: DecimalFormatSymbols? = null + private var df: DecimalFormat? = null + } +} diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/AAPSLoggerTest.kt b/shared/tests/src/main/kotlin/app/aaps/shared/tests/AAPSLoggerTest.kt new file mode 100644 index 0000000000..225deb83c3 --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/AAPSLoggerTest.kt @@ -0,0 +1,87 @@ +package app.aaps.shared.tests + +import info.nightscout.rx.logging.AAPSLogger +import info.nightscout.rx.logging.LTag + +/** + * Created by adrian on 2019-12-27. + */ + +class AAPSLoggerTest : AAPSLogger { + + override fun debug(message: String) { + println("DEBUG: $message") + } + + override fun debug(enable: Boolean, tag: LTag, message: String) { + println("DEBUG: " + message) + } + + override fun debug(tag: LTag, message: String) { + println("DEBUG: : " + tag.tag + " " + message) + } + + override fun debug(tag: LTag, accessor: () -> String) { + println("DEBUG: : " + tag.tag + " " + accessor.invoke()) + } + + override fun debug(tag: LTag, format: String, vararg arguments: Any?) { + println("DEBUG: : " + tag.tag + " " + String.format(format, arguments)) + } + + override fun warn(tag: LTag, message: String) { + println("WARN: " + tag.tag + " " + message) + } + + override fun warn(tag: LTag, format: String, vararg arguments: Any?) { + println("INFO: : " + tag.tag + " " + String.format(format, arguments)) + } + + override fun info(tag: LTag, message: String) { + println("INFO: " + tag.tag + " " + message) + } + + override fun info(tag: LTag, format: String, vararg arguments: Any?) { + println("INFO: : " + tag.tag + " " + String.format(format, arguments)) + } + + override fun error(tag: LTag, message: String) { + println("ERROR: " + tag.tag + " " + message) + } + + override fun error(message: String) { + println("ERROR: " + message) + } + + override fun error(message: String, throwable: Throwable) { + println("ERROR: " + message + " " + throwable) + } + + override fun error(format: String, vararg arguments: Any?) { + println("ERROR: : " + String.format(format, arguments)) + } + + override fun error(tag: LTag, message: String, throwable: Throwable) { + println("ERROR: " + tag.tag + " " + message + " " + throwable) + } + + override fun error(tag: LTag, format: String, vararg arguments: Any?) { + println("ERROR: : " + tag.tag + " " + String.format(format, arguments)) + } + + override fun debug(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + println("DEBUG: : ${tag.tag} $className.$methodName():$lineNumber $message") + } + + override fun info(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + println("INFO: : ${tag.tag} $className.$methodName():$lineNumber $message") + } + + override fun warn(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + println("WARN: : ${tag.tag} $className.$methodName():$lineNumber $message") + } + + override fun error(className: String, methodName: String, lineNumber: Int, tag: LTag, message: String) { + println("ERROR: : ${tag.tag} $className.$methodName():$lineNumber $message") + } +} \ No newline at end of file diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/BundleMock.java b/shared/tests/src/main/kotlin/app/aaps/shared/tests/BundleMock.java new file mode 100644 index 0000000000..2244f4befb --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/BundleMock.java @@ -0,0 +1,173 @@ +package app.aaps.shared.tests; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyByte; +import static org.mockito.ArgumentMatchers.anyChar; +import static org.mockito.ArgumentMatchers.anyDouble; +import static org.mockito.ArgumentMatchers.anyFloat; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyShort; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.when; + +import android.os.Bundle; +import android.os.Parcelable; +import android.util.SparseArray; + +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; + +@SuppressWarnings({"unused", "rawtypes", "SuspiciousMethodCalls", "unchecked", "deprecation"}) +public final class BundleMock { + + public static Bundle mock() { + return mock(new HashMap<>()); + } + + public static Bundle mock(final HashMap map) { + + Answer unsupported = invocation -> { + throw new UnsupportedOperationException(); + }; + Answer put = invocation -> { + map.put((String) invocation.getArguments()[0], invocation.getArguments()[1]); + return null; + }; + Answer get = invocation -> map.get(invocation.getArguments()[0]); + Answer getOrDefault = invocation -> { + Object key = invocation.getArguments()[0]; + return map.containsKey(key) ? map.get(key) : invocation.getArguments()[1]; + }; + + Bundle bundle = Mockito.mock(Bundle.class); + + doAnswer(invocation -> map.size()).when(bundle).size(); + doAnswer(invocation -> map.isEmpty()).when(bundle).isEmpty(); + doAnswer(invocation -> { + map.clear(); + return null; + }).when(bundle).clear(); + doAnswer(invocation -> map.containsKey(invocation.getArguments()[0])).when(bundle).containsKey(anyString()); + doAnswer(invocation -> map.get(invocation.getArguments()[0])).when(bundle).get(anyString()); + doAnswer(invocation -> { + map.remove(invocation.getArguments()[0]); + return null; + }).when(bundle).remove(anyString()); + doAnswer(invocation -> map.keySet()).when(bundle).keySet(); + doAnswer(invocation -> BundleMock.class.getSimpleName() + "{map=" + map.toString() + "}").when(bundle).toString(); + + doAnswer(put).when(bundle).putBoolean(anyString(), anyBoolean()); + when(bundle.getBoolean(anyString())).thenAnswer(get); + when(bundle.getBoolean(anyString(), anyBoolean())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putByte(anyString(), anyByte()); + when(bundle.getByte(anyString())).thenAnswer(get); + when(bundle.getByte(anyString(), anyByte())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putChar(anyString(), anyChar()); + when(bundle.getChar(anyString())).thenAnswer(get); + when(bundle.getChar(anyString(), anyChar())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putInt(anyString(), anyShort()); + when(bundle.getShort(anyString())).thenAnswer(get); + when(bundle.getShort(anyString(), anyShort())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putLong(anyString(), anyLong()); + when(bundle.getLong(anyString())).thenAnswer(get); + when(bundle.getLong(anyString(), anyLong())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putFloat(anyString(), anyFloat()); + when(bundle.getFloat(anyString())).thenAnswer(get); + when(bundle.getFloat(anyString(), anyFloat())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putDouble(anyString(), anyDouble()); + when(bundle.getDouble(anyString())).thenAnswer(get); + when(bundle.getDouble(anyString(), anyDouble())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putString(anyString(), anyString()); + when(bundle.getString(anyString())).thenAnswer(get); + when(bundle.getString(anyString(), anyString())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putBooleanArray(anyString(), any(boolean[].class)); + when(bundle.getBooleanArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putLongArray(anyString(), any(long[].class)); + when(bundle.getLongArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putDoubleArray(anyString(), any(double[].class)); + when(bundle.getDoubleArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putIntArray(anyString(), any(int[].class)); + when(bundle.getIntArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putInt(anyString(), anyInt()); + when(bundle.getInt(anyString())).thenAnswer(get); + when(bundle.getInt(anyString(), anyInt())).thenAnswer(getOrDefault); + + doAnswer(unsupported).when(bundle).putAll(any(Bundle.class)); + when(bundle.hasFileDescriptors()).thenAnswer(unsupported); + + doAnswer(put).when(bundle).putShort(anyString(), anyShort()); + when(bundle.getShort(anyString())).thenAnswer(get); + when(bundle.getShort(anyString(), anyShort())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putFloat(anyString(), anyFloat()); + when(bundle.getFloat(anyString())).thenAnswer(get); + when(bundle.getFloat(anyString(), anyFloat())).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putCharSequence(anyString(), any(CharSequence.class)); + when(bundle.getCharSequence(anyString())).thenAnswer(get); + when(bundle.getCharSequence(anyString(), any(CharSequence.class))).thenAnswer(getOrDefault); + + doAnswer(put).when(bundle).putBundle(anyString(), any(Bundle.class)); + when(bundle.getBundle(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putParcelable(anyString(), any(Parcelable.class)); + when(bundle.getParcelable(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putParcelableArray(anyString(), any(Parcelable[].class)); + when(bundle.getParcelableArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putParcelableArrayList(anyString(), any(ArrayList.class)); + when(bundle.getParcelableArrayList(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putSparseParcelableArray(anyString(), any(SparseArray.class)); + when(bundle.getSparseParcelableArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putSerializable(anyString(), any(Serializable.class)); + when(bundle.getSerializable(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putIntegerArrayList(anyString(), any(ArrayList.class)); + when(bundle.getIntegerArrayList(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putStringArrayList(anyString(), any(ArrayList.class)); + when(bundle.getStringArrayList(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putCharSequenceArrayList(anyString(), any(ArrayList.class)); + when(bundle.getCharSequenceArrayList(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putCharArray(anyString(), any(char[].class)); + when(bundle.getCharArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putByteArray(anyString(), any(byte[].class)); + when(bundle.getByteArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putShortArray(anyString(), any(short[].class)); + when(bundle.getShortArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putFloatArray(anyString(), any(float[].class)); + when(bundle.getFloatArray(anyString())).thenAnswer(get); + + doAnswer(put).when(bundle).putCharSequenceArray(anyString(), any(CharSequence[].class)); + when(bundle.getCharSequenceArray(anyString())).thenAnswer(get); + + return bundle; + } +} \ No newline at end of file diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/HardLimitsMock.kt b/shared/tests/src/main/kotlin/app/aaps/shared/tests/HardLimitsMock.kt new file mode 100644 index 0000000000..9485d8b0d8 --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/HardLimitsMock.kt @@ -0,0 +1,83 @@ +package app.aaps.shared.tests + +import info.nightscout.interfaces.utils.HardLimits +import info.nightscout.shared.interfaces.ResourceHelper +import info.nightscout.shared.sharedPreferences.SP +import javax.inject.Inject +import kotlin.math.max +import kotlin.math.min + +@Suppress("unused") class HardLimitsMock @Inject constructor( + private val sp: SP, + private val rh: ResourceHelper +) : HardLimits { + + companion object { + + private const val CHILD = 0 + private const val TEENAGE = 1 + private const val ADULT = 2 + private const val RESISTANT_ADULT = 3 + private const val PREGNANT = 4 + private val MAX_BOLUS = doubleArrayOf(5.0, 10.0, 17.0, 25.0, 60.0) + + // Very Hard Limits Ranges + // First value is the Lowest and second value is the Highest a Limit can define + val VERY_HARD_LIMIT_MIN_BG = doubleArrayOf(80.0, 180.0) + val VERY_HARD_LIMIT_MAX_BG = doubleArrayOf(90.0, 200.0) + val VERY_HARD_LIMIT_TARGET_BG = doubleArrayOf(80.0, 200.0) + + // Very Hard Limits Ranges for Temp Targets + val VERY_HARD_LIMIT_TEMP_MIN_BG = intArrayOf(72, 180) + val VERY_HARD_LIMIT_TEMP_MAX_BG = intArrayOf(72, 270) + val VERY_HARD_LIMIT_TEMP_TARGET_BG = intArrayOf(72, 200) + val MIN_DIA = doubleArrayOf(5.0, 5.0, 5.0, 5.0, 5.0) + val MAX_DIA = doubleArrayOf(9.0, 9.0, 9.0, 9.0, 10.0) + val MIN_IC = doubleArrayOf(2.0, 2.0, 2.0, 2.0, 0.3) + val MAX_IC = doubleArrayOf(100.0, 100.0, 100.0, 100.0, 100.0) + const val MIN_ISF = 2.0 // mgdl + const val MAX_ISF = 1000.0 // mgdl + val MAX_IOB_AMA = doubleArrayOf(3.0, 5.0, 7.0, 12.0, 25.0) + val MAX_IOB_SMB = doubleArrayOf(7.0, 13.0, 22.0, 30.0, 70.0) + val MAX_BASAL = doubleArrayOf(2.0, 5.0, 10.0, 12.0, 25.0) + + //LGS Hard limits + //No IOB at all + const val MAX_IOB_LGS = 0.0 + + } + + private fun loadAge(): Int = when (sp.getString(info.nightscout.core.utils.R.string.key_age, "")) { + rh.gs(info.nightscout.core.utils.R.string.key_child) -> CHILD + rh.gs(info.nightscout.core.utils.R.string.key_teenage) -> TEENAGE + rh.gs(info.nightscout.core.utils.R.string.key_adult) -> ADULT + rh.gs(info.nightscout.core.utils.R.string.key_resistantadult) -> RESISTANT_ADULT + rh.gs(info.nightscout.core.utils.R.string.key_pregnant) -> PREGNANT + else -> ADULT + } + + override fun maxBolus(): Double = MAX_BOLUS[loadAge()] + override fun maxIobAMA(): Double = MAX_IOB_AMA[loadAge()] + override fun maxIobSMB(): Double = MAX_IOB_SMB[loadAge()] + override fun maxBasal(): Double = MAX_BASAL[loadAge()] + override fun minDia(): Double = MIN_DIA[loadAge()] + override fun maxDia(): Double = MAX_DIA[loadAge()] + override fun minIC(): Double = MIN_IC[loadAge()] + override fun maxIC(): Double = MAX_IC[loadAge()] + + // safety checks + override fun checkHardLimits(value: Double, valueName: Int, lowLimit: Double, highLimit: Double): Boolean = + value == verifyHardLimits(value, valueName, lowLimit, highLimit) + + override fun isInRange(value: Double, lowLimit: Double, highLimit: Double): Boolean = + value in lowLimit..highLimit + + override fun verifyHardLimits(value: Double, valueName: Int, lowLimit: Double, highLimit: Double): Double { + var newValue = value + if (newValue < lowLimit || newValue > highLimit) { + newValue = max(newValue, lowLimit) + newValue = min(newValue, highLimit) + } + return newValue + } +} \ No newline at end of file diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestBase.kt b/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestBase.kt new file mode 100644 index 0000000000..ea49fef208 --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestBase.kt @@ -0,0 +1,56 @@ +package app.aaps.shared.tests + +import android.annotation.SuppressLint +import app.aaps.shared.impl.rx.bus.RxBusImpl +import app.aaps.shared.tests.rx.TestAapsSchedulers +import info.nightscout.rx.AapsSchedulers +import info.nightscout.rx.bus.RxBus +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.extension.ExtendWith +import org.mockito.ArgumentMatcher +import org.mockito.Mockito +import org.mockito.junit.jupiter.MockitoExtension +import org.mockito.junit.jupiter.MockitoSettings +import org.mockito.quality.Strictness +import java.util.Locale + +@Suppress("SpellCheckingInspection") +@ExtendWith(MockitoExtension::class) +@MockitoSettings(strictness = Strictness.LENIENT) +open class TestBase { + + val aapsLogger = AAPSLoggerTest() + val aapsSchedulers: AapsSchedulers = TestAapsSchedulers() + lateinit var rxBus: RxBus + + @BeforeEach + fun setupLocale() { + Locale.setDefault(Locale.ENGLISH) + System.setProperty("disableFirebase", "true") + rxBus = RxBusImpl(aapsSchedulers, aapsLogger) + } + + @SuppressLint("CheckResult") + fun argThatKotlin(matcher: ArgumentMatcher): T { + Mockito.argThat(matcher) + return uninitialized() + } + + @SuppressLint("CheckResult") + fun eqObject(expected: T): T { + Mockito.eq(expected) + return uninitialized() + } + + // Workaround for Kotlin nullability. + // https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791 + // https://stackoverflow.com/questions/30305217/is-it-possible-to-use-mockito-in-kotlin + @SuppressLint("CheckResult") + fun anyObject(): T { + Mockito.any() + return uninitialized() + } + + @Suppress("Unchecked_Cast") + private fun uninitialized(): T = null as T +} \ No newline at end of file diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestBaseWithProfile.kt b/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestBaseWithProfile.kt new file mode 100644 index 0000000000..54aa48795b --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestBaseWithProfile.kt @@ -0,0 +1,230 @@ +package app.aaps.shared.tests + +import android.content.Context +import app.aaps.shared.impl.utils.DateUtilImpl +import dagger.android.AndroidInjector +import dagger.android.HasAndroidInjector +import info.nightscout.core.extensions.pureProfileFromJson +import info.nightscout.core.profile.ProfileSealed +import info.nightscout.core.utils.fabric.FabricPrivacy +import info.nightscout.database.entities.EffectiveProfileSwitch +import info.nightscout.database.entities.embedments.InsulinConfiguration +import info.nightscout.implementation.profile.ProfileStoreObject +import info.nightscout.implementation.profile.ProfileUtilImpl +import info.nightscout.implementation.utils.DecimalFormatterImpl +import info.nightscout.interfaces.Config +import info.nightscout.interfaces.GlucoseUnit +import info.nightscout.interfaces.iob.IobCobCalculator +import info.nightscout.interfaces.plugin.ActivePlugin +import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.profile.ProfileStore +import info.nightscout.interfaces.utils.DecimalFormatter +import info.nightscout.interfaces.utils.HardLimits +import info.nightscout.shared.interfaces.ProfileUtil +import info.nightscout.shared.interfaces.ResourceHelper +import info.nightscout.shared.sharedPreferences.SP +import info.nightscout.shared.utils.DateUtil +import org.json.JSONObject +import org.junit.jupiter.api.BeforeEach +import org.mockito.ArgumentMatchers.anyDouble +import org.mockito.ArgumentMatchers.anyInt +import org.mockito.ArgumentMatchers.anyString +import org.mockito.Mock +import org.mockito.Mockito +import org.mockito.invocation.InvocationOnMock + +@Suppress("SpellCheckingInspection") +open class TestBaseWithProfile : TestBase() { + + @Mock lateinit var activePlugin: ActivePlugin + @Mock lateinit var rh: ResourceHelper + @Mock lateinit var iobCobCalculator: IobCobCalculator + @Mock lateinit var fabricPrivacy: FabricPrivacy + @Mock lateinit var profileFunction: ProfileFunction + @Mock lateinit var config: Config + @Mock lateinit var context: Context + @Mock lateinit var sp: SP + + lateinit var dateUtil: DateUtil + lateinit var profileUtil: ProfileUtil + lateinit var decimalFormatter: DecimalFormatter + lateinit var hardLimits: HardLimits + + val profileInjector = HasAndroidInjector { + AndroidInjector { + if (it is ProfileStoreObject) { + it.aapsLogger = aapsLogger + it.activePlugin = activePlugin + it.config = config + it.rh = rh + it.rxBus = rxBus + it.hardLimits = hardLimits + } + } + } + + private lateinit var validProfileJSON: String + private lateinit var invalidProfileJSON: String + lateinit var validProfile: ProfileSealed.Pure + lateinit var effectiveProfileSwitch: EffectiveProfileSwitch + lateinit var testPumpPlugin: TestPumpPlugin + + var now = 1656358822000L + + @Suppress("PropertyName") val TESTPROFILENAME = "someProfile" + + @BeforeEach + fun prepareMock() { + validProfileJSON = "{\"dia\":\"5\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"30\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"3\"}," + + "{\"time\":\"2:00\",\"value\":\"3.4\"}],\"timezone\":\"UTC\",\"basal\":[{\"time\":\"00:00\",\"value\":\"1\"}],\"target_low\":[{\"time\":\"00:00\",\"value\":\"4.5\"}]," + + "\"target_high\":[{\"time\":\"00:00\",\"value\":\"7\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}" + invalidProfileJSON = "{\"dia\":\"1\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"30\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"3\"}," + + "{\"time\":\"2:00\",\"value\":\"3.4\"}],\"timezone\":\"UTC\",\"basal\":[{\"time\":\"00:00\",\"value\":\"1\"}],\"target_low\":[{\"time\":\"00:00\",\"value\":\"4.5\"}]," + + "\"target_high\":[{\"time\":\"00:00\",\"value\":\"7\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}" + dateUtil = Mockito.spy(DateUtilImpl(context)) + decimalFormatter = DecimalFormatterImpl(rh) + profileUtil = ProfileUtilImpl(sp, decimalFormatter) + testPumpPlugin = TestPumpPlugin(profileInjector) + Mockito.`when`(dateUtil.now()).thenReturn(now) + Mockito.`when`(activePlugin.activePump).thenReturn(testPumpPlugin) + Mockito.`when`(sp.getString(info.nightscout.core.utils.R.string.key_units, GlucoseUnit.MGDL.asText)).thenReturn(GlucoseUnit.MGDL.asText) + hardLimits = HardLimitsMock(sp, rh) + validProfile = ProfileSealed.Pure(pureProfileFromJson(JSONObject(validProfileJSON), dateUtil)!!) + effectiveProfileSwitch = EffectiveProfileSwitch( + timestamp = dateUtil.now(), + basalBlocks = validProfile.basalBlocks, + isfBlocks = validProfile.isfBlocks, + icBlocks = validProfile.icBlocks, + targetBlocks = validProfile.targetBlocks, + glucoseUnit = EffectiveProfileSwitch.GlucoseUnit.MMOL, + originalProfileName = "", + originalCustomizedName = "", + originalTimeshift = 0, + originalPercentage = 100, + originalDuration = 0, + originalEnd = 0, + insulinConfiguration = InsulinConfiguration("", 0, 0) + ) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + String.format(rh.gs(string), arg1) + }.`when`(rh).gs(anyInt(), anyInt()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + String.format(rh.gs(string), arg1) + }.`when`(rh).gs(anyInt(), anyDouble()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + String.format(rh.gs(string), arg1) + }.`when`(rh).gs(anyInt(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + String.format(rh.gs(string), arg1, arg2) + }.`when`(rh).gs(anyInt(), anyString(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + String.format(rh.gs(string), arg1, arg2) + }.`when`(rh).gs(anyInt(), anyString(), anyInt()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + String.format(rh.gs(string), arg1, arg2) + }.`when`(rh).gs(anyInt(), anyDouble(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + String.format(rh.gs(string), arg1, arg2) + }.`when`(rh).gs(anyInt(), anyDouble(), anyInt()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + String.format(rh.gs(string), arg1, arg2) + }.`when`(rh).gs(anyInt(), anyInt(), anyInt()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + String.format(rh.gs(string), arg1, arg2) + }.`when`(rh).gs(anyInt(), anyInt(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + val arg3 = invocation.getArgument(3) + String.format(rh.gs(string), arg1, arg2, arg3) + }.`when`(rh).gs(anyInt(), anyInt(), anyInt(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + val arg3 = invocation.getArgument(3) + String.format(rh.gs(string), arg1, arg2, arg3) + }.`when`(rh).gs(anyInt(), anyInt(), anyString(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + val arg3 = invocation.getArgument(3) + String.format(rh.gs(string), arg1, arg2, arg3) + }.`when`(rh).gs(anyInt(), anyDouble(), anyInt(), anyString()) + + Mockito.doAnswer { invocation: InvocationOnMock -> + val string = invocation.getArgument(0) + val arg1 = invocation.getArgument(1) + val arg2 = invocation.getArgument(2) + val arg3 = invocation.getArgument(3) + String.format(rh.gs(string), arg1, arg2, arg3) + }.`when`(rh).gs(anyInt(), anyString(), anyInt(), anyString()) + + } + + fun getValidProfileStore(): ProfileStore { + val json = JSONObject() + val store = JSONObject() + store.put(TESTPROFILENAME, JSONObject(validProfileJSON)) + json.put("defaultProfile", TESTPROFILENAME) + json.put("store", store) + return ProfileStoreObject(profileInjector, json, dateUtil) + } + + fun getInvalidProfileStore1(): ProfileStore { + val json = JSONObject() + val store = JSONObject() + store.put(TESTPROFILENAME, JSONObject(invalidProfileJSON)) + json.put("defaultProfile", TESTPROFILENAME) + json.put("store", store) + return ProfileStoreObject(profileInjector, json, dateUtil) + } + + fun getInvalidProfileStore2(): ProfileStore { + val json = JSONObject() + val store = JSONObject() + store.put(TESTPROFILENAME, JSONObject(validProfileJSON)) + store.put("invalid", JSONObject(invalidProfileJSON)) + json.put("defaultProfile", TESTPROFILENAME + "invalid") + json.put("store", store) + return ProfileStoreObject(profileInjector, json, dateUtil) + } +} diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestPumpPlugin.kt b/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestPumpPlugin.kt new file mode 100644 index 0000000000..5f491ad8a9 --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/TestPumpPlugin.kt @@ -0,0 +1,80 @@ +package app.aaps.shared.tests + +import dagger.android.HasAndroidInjector +import info.nightscout.annotations.OpenForTesting +import info.nightscout.interfaces.profile.Profile +import info.nightscout.interfaces.pump.DetailedBolusInfo +import info.nightscout.interfaces.pump.Pump +import info.nightscout.interfaces.pump.PumpEnactResult +import info.nightscout.interfaces.pump.PumpSync +import info.nightscout.interfaces.pump.defs.ManufacturerType +import info.nightscout.interfaces.pump.defs.PumpDescription +import info.nightscout.interfaces.pump.defs.PumpType +import info.nightscout.interfaces.utils.TimeChangeType +import org.json.JSONObject + +@Suppress("MemberVisibilityCanBePrivate") +@OpenForTesting +class TestPumpPlugin(val injector: HasAndroidInjector) : Pump { + + var connected = false + var isProfileSet = true + var pumpSuspended = false + + override fun isConnected() = connected + override fun isConnecting() = false + override fun isHandshakeInProgress() = false + val lastData = 0L + + val baseBasal = 0.0 + override var pumpDescription = PumpDescription() + + override fun isInitialized(): Boolean = true + override fun isSuspended(): Boolean = pumpSuspended + override fun isBusy(): Boolean = false + override fun connect(reason: String) { + connected = true + } + + override fun disconnect(reason: String) { + connected = false + } + + override fun stopConnecting() { + connected = false + } + + override fun waitForDisconnectionInSeconds(): Int = 0 + override fun getPumpStatus(reason: String) { /* not needed */ + } + + override fun setNewBasalProfile(profile: Profile): PumpEnactResult = PumpEnactResult(injector) + override fun isThisProfileSet(profile: Profile): Boolean = isProfileSet + override fun lastDataTime(): Long = lastData + override val baseBasalRate: Double get() = baseBasal + override val reservoirLevel: Double = 0.0 + override val batteryLevel: Int = 0 + override fun deliverTreatment(detailedBolusInfo: DetailedBolusInfo): PumpEnactResult = PumpEnactResult(injector).success(true) + override fun stopBolusDelivering() { /* not needed */ + } + + override fun setTempBasalAbsolute(absoluteRate: Double, durationInMinutes: Int, profile: Profile, enforceNew: Boolean, tbrType: PumpSync.TemporaryBasalType): PumpEnactResult = + PumpEnactResult(injector).success(true) + + override fun setTempBasalPercent(percent: Int, durationInMinutes: Int, profile: Profile, enforceNew: Boolean, tbrType: PumpSync.TemporaryBasalType): PumpEnactResult = + PumpEnactResult(injector).success(true) + + override fun setExtendedBolus(insulin: Double, durationInMinutes: Int): PumpEnactResult = PumpEnactResult(injector).success(true) + override fun cancelTempBasal(enforceNew: Boolean): PumpEnactResult = PumpEnactResult(injector).success(true) + override fun cancelExtendedBolus(): PumpEnactResult = PumpEnactResult(injector).success(true) + override fun getJSONStatus(profile: Profile, profileName: String, version: String): JSONObject = JSONObject() + override fun manufacturer(): ManufacturerType = ManufacturerType.AAPS + override fun model(): PumpType = PumpType.GENERIC_AAPS + override fun serialNumber(): String = "1" + override fun shortStatus(veryShort: Boolean): String = "Virtual Pump" + override val isFakingTempsByExtendedBoluses: Boolean = false + override fun loadTDDs(): PumpEnactResult = PumpEnactResult(injector).success(true) + override fun canHandleDST(): Boolean = true + override fun timezoneOrDSTChanged(timeChangeType: TimeChangeType) { /* not needed */ + } +} \ No newline at end of file diff --git a/shared/tests/src/main/kotlin/app/aaps/shared/tests/rx/TestAapsSchedulers.kt b/shared/tests/src/main/kotlin/app/aaps/shared/tests/rx/TestAapsSchedulers.kt new file mode 100644 index 0000000000..d83606d449 --- /dev/null +++ b/shared/tests/src/main/kotlin/app/aaps/shared/tests/rx/TestAapsSchedulers.kt @@ -0,0 +1,17 @@ +package app.aaps.shared.tests.rx + +import info.nightscout.rx.AapsSchedulers +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * Created by adrian on 12.04.20. + */ + +class TestAapsSchedulers : AapsSchedulers { + + override val main: Scheduler = Schedulers.trampoline() + override val io: Scheduler = Schedulers.trampoline() + override val cpu: Scheduler = Schedulers.trampoline() + override val newThread: Scheduler = Schedulers.trampoline() +} \ No newline at end of file diff --git a/ui/src/test/java/info/nightscout/ui/defaultProfile/DefaultProfileTest.kt b/ui/src/test/java/info/nightscout/ui/defaultProfile/DefaultProfileTest.kt index 028f3c2f7b..693ac7bdf2 100644 --- a/ui/src/test/java/info/nightscout/ui/defaultProfile/DefaultProfileTest.kt +++ b/ui/src/test/java/info/nightscout/ui/defaultProfile/DefaultProfileTest.kt @@ -1,9 +1,9 @@ package info.nightscout.ui.defaultProfile +import app.aaps.shared.tests.TestBaseWithProfile import com.google.common.truth.Truth.assertThat import info.nightscout.core.profile.ProfileSealed import info.nightscout.interfaces.GlucoseUnit -import info.nightscout.sharedtests.TestBaseWithProfile import org.junit.jupiter.api.Test class DefaultProfileTest : TestBaseWithProfile() { diff --git a/ui/src/test/java/info/nightscout/ui/extensions/InterfaceIDsExtensionKtTest.kt b/ui/src/test/java/info/nightscout/ui/extensions/InterfaceIDsExtensionKtTest.kt index 81fbffd863..14e149c92e 100644 --- a/ui/src/test/java/info/nightscout/ui/extensions/InterfaceIDsExtensionKtTest.kt +++ b/ui/src/test/java/info/nightscout/ui/extensions/InterfaceIDsExtensionKtTest.kt @@ -1,8 +1,8 @@ package info.nightscout.ui.extensions +import app.aaps.shared.tests.TestBase import com.google.common.truth.Truth.assertThat import info.nightscout.database.entities.embedments.InterfaceIDs -import info.nightscout.sharedtests.TestBase import org.junit.jupiter.api.Test class InterfaceIDsExtensionKtTest : TestBase() { diff --git a/wear/src/test/java/info/nightscout/androidaps/WearTestBase.kt b/wear/src/test/java/info/nightscout/androidaps/WearTestBase.kt index 0c04c2a324..24d01094a7 100644 --- a/wear/src/test/java/info/nightscout/androidaps/WearTestBase.kt +++ b/wear/src/test/java/info/nightscout/androidaps/WearTestBase.kt @@ -2,13 +2,13 @@ package info.nightscout.androidaps import android.content.Context import android.content.SharedPreferences +import app.aaps.shared.tests.TestBase import info.nightscout.androidaps.interaction.utils.Constants import info.nightscout.androidaps.interaction.utils.Persistence import info.nightscout.androidaps.interaction.utils.WearUtil import info.nightscout.androidaps.testing.mocks.SharedPreferencesMock import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import info.nightscout.sharedtests.TestBase import kotlinx.datetime.Clock import kotlinx.datetime.Instant import org.junit.jupiter.api.BeforeEach diff --git a/wear/src/test/java/info/nightscout/androidaps/heartrate/HeartRateListenerTest.kt b/wear/src/test/java/info/nightscout/androidaps/heartrate/HeartRateListenerTest.kt index 87eb3a12fe..63a5dc8965 100644 --- a/wear/src/test/java/info/nightscout/androidaps/heartrate/HeartRateListenerTest.kt +++ b/wear/src/test/java/info/nightscout/androidaps/heartrate/HeartRateListenerTest.kt @@ -3,10 +3,10 @@ package info.nightscout.androidaps.heartrate import android.content.Context import android.hardware.Sensor import android.hardware.SensorManager +import app.aaps.shared.tests.AAPSLoggerTest import com.google.common.truth.Truth.assertThat import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.weardata.EventData.ActionHeartRate -import info.nightscout.sharedtests.AAPSLoggerTest import io.reactivex.rxjava3.core.Scheduler import io.reactivex.rxjava3.disposables.Disposable import org.junit.jupiter.api.AfterEach