fix build and tests
This commit is contained in:
parent
6919565c3c
commit
a618975749
10 changed files with 456 additions and 33 deletions
232
app/src/main/res/layout/careportal_stats_fragment_lowres.xml
Normal file
232
app/src/main/res/layout/careportal_stats_fragment_lowres.xml
Normal file
|
@ -0,0 +1,232 @@
|
||||||
|
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:stretchColumns="0,2,4"
|
||||||
|
tools:context=".plugins.general.actions.ActionsFragment">
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:focusable="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="25dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="15dp"
|
||||||
|
android:paddingEnd="2dp"
|
||||||
|
android:text="@string/careportal_sensor_label"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_cp_age_sensor" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/sensor_age"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingLeft="2dp"
|
||||||
|
android:paddingRight="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/sensor_level"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="2dip"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:layout_marginRight="20dp"
|
||||||
|
android:layout_marginBottom="2dp"
|
||||||
|
android:layout_span="3"
|
||||||
|
android:background="@color/list_delimiter" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:focusable="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="25dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="15dp"
|
||||||
|
android:paddingEnd="2dp"
|
||||||
|
android:text="@string/careportal_insulin_label"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_cp_age_insulin" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/insulin_age"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingLeft="2dp"
|
||||||
|
android:paddingRight="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/reservoir_level"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="2dip"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:layout_marginRight="20dp"
|
||||||
|
android:layout_marginBottom="2dp"
|
||||||
|
android:layout_span="3"
|
||||||
|
android:background="@color/list_delimiter" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:focusable="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/cannula_or_patch"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="25dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="15dp"
|
||||||
|
android:paddingEnd="2dp"
|
||||||
|
android:text="@string/cannula"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_cp_age_cannula" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/cannula_age"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingLeft="2dp"
|
||||||
|
android:paddingRight="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:text=""
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="2dip"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:layout_marginRight="20dp"
|
||||||
|
android:layout_marginBottom="2dp"
|
||||||
|
android:layout_span="3"
|
||||||
|
android:background="@color/list_delimiter" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:focusable="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pb_label"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="25dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="15dp"
|
||||||
|
android:paddingEnd="2dp"
|
||||||
|
android:text="@string/pump"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_cp_age_battery" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pb_age"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingLeft="2dp"
|
||||||
|
android:paddingRight="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/battery_level"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:ignore="RtlSymmetry" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="2dip"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:layout_marginRight="20dp"
|
||||||
|
android:layout_marginBottom="2dp"
|
||||||
|
android:layout_span="3"
|
||||||
|
android:background="@color/list_delimiter" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
</TableLayout>
|
|
@ -18,7 +18,12 @@ import info.nightscout.androidaps.utils.FabricPrivacy
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
import org.mockito.ArgumentMatchers.anyDouble
|
||||||
|
import org.mockito.ArgumentMatchers.anyInt
|
||||||
|
import org.mockito.ArgumentMatchers.anyString
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
|
import org.mockito.Mockito
|
||||||
|
import org.mockito.invocation.InvocationOnMock
|
||||||
|
|
||||||
@Suppress("SpellCheckingInspection")
|
@Suppress("SpellCheckingInspection")
|
||||||
open class TestBaseWithProfile : TestBase() {
|
open class TestBaseWithProfile : TestBase() {
|
||||||
|
@ -64,6 +69,99 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
originalEnd = 0,
|
originalEnd = 0,
|
||||||
insulinConfiguration = InsulinConfiguration("", 0, 0)
|
insulinConfiguration = InsulinConfiguration("", 0, 0)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
String.format(rh.gs(string), arg1)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
String.format(rh.gs(string), arg1)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
String.format(rh.gs(string), arg1)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyString(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble(), anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString(), anyInt(), anyString())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getValidProfileStore(): ProfileStore {
|
fun getValidProfileStore(): ProfileStore {
|
||||||
|
|
|
@ -113,16 +113,11 @@ class ConstraintsCheckerTest : TestBaseWithProfile() {
|
||||||
`when`(rh.gs(R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode")
|
`when`(rh.gs(R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode")
|
||||||
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
||||||
`when`(rh.gs(R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering")
|
`when`(rh.gs(R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering")
|
||||||
`when`(rh.gs(R.string.limitingpercentrate, 0, "it must be positive value")).thenReturn("")
|
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingbolus, 3.0, "pump limit")).thenReturn("")
|
`when`(rh.gs(R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingbolus, 6.0, "pump limit")).thenReturn("")
|
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingbasalratio, 0.8, "pump limit")).thenReturn("")
|
|
||||||
`when`(rh.gs(R.string.limitingpercentrate, 200, "pump limit")).thenReturn("")
|
|
||||||
`when`(rh.gs(R.string.combo_pump_unsupported_operation)).thenReturn("Requested operation not supported by pump")
|
`when`(rh.gs(R.string.combo_pump_unsupported_operation)).thenReturn("Requested operation not supported by pump")
|
||||||
`when`(rh.gs(R.string.objectivenotstarted, 9)).thenReturn("Objective 9 not started")
|
`when`(rh.gs(R.string.objectivenotstarted)).thenReturn("Objective %1\$d not started")
|
||||||
`when`(rh.gs(R.string.objectivenotstarted, 8)).thenReturn("Objective 8 not started")
|
|
||||||
`when`(rh.gs(R.string.objectivenotstarted, 6)).thenReturn("Objective 6 not started")
|
|
||||||
`when`(rh.gs(R.string.objectivenotstarted, 1)).thenReturn("Objective 1 not started")
|
|
||||||
|
|
||||||
// RS constructor
|
// RS constructor
|
||||||
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
||||||
|
|
|
@ -47,6 +47,12 @@ class SafetyPluginTest : TestBaseWithProfile() {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun prepare() {
|
fun prepare() {
|
||||||
|
`when`(rh.gs(R.string.hardlimit)).thenReturn("hard limit")
|
||||||
|
`when`(rh.gs(R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
|
||||||
|
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
||||||
|
`when`(rh.gs(R.string.maxvalueinpreferences)).thenReturn("max value in preferences")
|
||||||
|
`when`(rh.gs(R.string.maxbasalmultiplier)).thenReturn("max basal multiplier")
|
||||||
|
`when`(rh.gs(R.string.maxdailybasalmultiplier)).thenReturn("max daily basal multiplier")
|
||||||
`when`(rh.gs(R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s")
|
`when`(rh.gs(R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingiob)).thenReturn("Limiting IOB to %1\$.1f U because of %2\$s")
|
`when`(rh.gs(R.string.limitingiob)).thenReturn("Limiting IOB to %1\$.1f U because of %2\$s")
|
||||||
|
@ -57,14 +63,8 @@ class SafetyPluginTest : TestBaseWithProfile() {
|
||||||
`when`(rh.gs(R.string.smbdisabledinpreferences)).thenReturn("SMB disabled in preferences")
|
`when`(rh.gs(R.string.smbdisabledinpreferences)).thenReturn("SMB disabled in preferences")
|
||||||
`when`(rh.gs(R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences")
|
`when`(rh.gs(R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences")
|
||||||
`when`(rh.gs(R.string.closed_loop_disabled_on_dev_branch)).thenReturn("Running dev version. Closed loop is disabled.")
|
`when`(rh.gs(R.string.closed_loop_disabled_on_dev_branch)).thenReturn("Running dev version. Closed loop is disabled.")
|
||||||
`when`(rh.gs(R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
|
|
||||||
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
|
||||||
`when`(rh.gs(R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering")
|
`when`(rh.gs(R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering")
|
||||||
`when`(rh.gs(R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode")
|
`when`(rh.gs(R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode")
|
||||||
`when`(rh.gs(R.string.maxvalueinpreferences)).thenReturn("max value in preferences")
|
|
||||||
`when`(rh.gs(R.string.maxbasalmultiplier)).thenReturn("max basal multiplier")
|
|
||||||
`when`(rh.gs(R.string.maxdailybasalmultiplier)).thenReturn("max daily basal multiplier")
|
|
||||||
`when`(rh.gs(R.string.hardlimit)).thenReturn("hard limit")
|
|
||||||
`when`(rh.gs(R.string.key_child)).thenReturn("child")
|
`when`(rh.gs(R.string.key_child)).thenReturn("child")
|
||||||
|
|
||||||
`when`(activePlugin.activePump).thenReturn(virtualPumpPlugin)
|
`when`(activePlugin.activePump).thenReturn(virtualPumpPlugin)
|
||||||
|
|
|
@ -36,12 +36,13 @@ import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.mockito.ArgumentMatchers
|
import org.mockito.ArgumentMatchers
|
||||||
|
import org.mockito.ArgumentMatchers.anyString
|
||||||
|
import org.mockito.ArgumentMatchers.eq
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito
|
import org.mockito.Mockito
|
||||||
import org.mockito.Mockito.`when`
|
import org.mockito.Mockito.`when`
|
||||||
import org.mockito.Mockito.anyLong
|
import org.mockito.Mockito.anyLong
|
||||||
import org.mockito.invocation.InvocationOnMock
|
import org.mockito.invocation.InvocationOnMock
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
@Suppress("SpellCheckingInspection")
|
@Suppress("SpellCheckingInspection")
|
||||||
class SmsCommunicatorPluginTest : TestBaseWithProfile() {
|
class SmsCommunicatorPluginTest : TestBaseWithProfile() {
|
||||||
|
@ -160,7 +161,7 @@ class SmsCommunicatorPluginTest : TestBaseWithProfile() {
|
||||||
`when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL)
|
`when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL)
|
||||||
|
|
||||||
`when`(otp.name()).thenReturn("User")
|
`when`(otp.name()).thenReturn("User")
|
||||||
`when`(otp.checkOTP(ArgumentMatchers.anyString())).thenReturn(OneTimePasswordValidationResult.OK)
|
`when`(otp.checkOTP(anyString())).thenReturn(OneTimePasswordValidationResult.OK)
|
||||||
|
|
||||||
`when`(rh.gs(R.string.smscommunicator_remotecommandnotallowed)).thenReturn("Remote command is not allowed")
|
`when`(rh.gs(R.string.smscommunicator_remotecommandnotallowed)).thenReturn("Remote command is not allowed")
|
||||||
`when`(rh.gs(R.string.sms_wrongcode)).thenReturn("Wrong code. Command cancelled.")
|
`when`(rh.gs(R.string.sms_wrongcode)).thenReturn("Wrong code. Command cancelled.")
|
||||||
|
@ -179,7 +180,7 @@ class SmsCommunicatorPluginTest : TestBaseWithProfile() {
|
||||||
`when`(rh.gs(R.string.loopisdisabled)).thenReturn("Loop is disabled")
|
`when`(rh.gs(R.string.loopisdisabled)).thenReturn("Loop is disabled")
|
||||||
`when`(rh.gs(R.string.smscommunicator_loopisenabled)).thenReturn("Loop is enabled")
|
`when`(rh.gs(R.string.smscommunicator_loopisenabled)).thenReturn("Loop is enabled")
|
||||||
`when`(rh.gs(R.string.wrongformat)).thenReturn("Wrong format")
|
`when`(rh.gs(R.string.wrongformat)).thenReturn("Wrong format")
|
||||||
`when`(rh.gs(ArgumentMatchers.eq(R.string.wrongTbrDuration), ArgumentMatchers.any())).thenAnswer { i: InvocationOnMock -> "TBR duration must be a multiple of " + i.arguments[1] + " minutes and greater than 0." }
|
`when`(rh.gs(eq(R.string.wrongTbrDuration), ArgumentMatchers.any())).thenAnswer { i: InvocationOnMock -> "TBR duration must be a multiple of " + i.arguments[1] + " minutes and greater than 0." }
|
||||||
`when`(rh.gs(R.string.smscommunicator_loophasbeendisabled)).thenReturn("Loop has been disabled")
|
`when`(rh.gs(R.string.smscommunicator_loophasbeendisabled)).thenReturn("Loop has been disabled")
|
||||||
`when`(rh.gs(R.string.smscommunicator_loophasbeenenabled)).thenReturn("Loop has been enabled")
|
`when`(rh.gs(R.string.smscommunicator_loophasbeenenabled)).thenReturn("Loop has been enabled")
|
||||||
`when`(rh.gs(R.string.smscommunicator_tempbasalcanceled)).thenReturn("Temp basal canceled")
|
`when`(rh.gs(R.string.smscommunicator_tempbasalcanceled)).thenReturn("Temp basal canceled")
|
||||||
|
@ -998,6 +999,7 @@ class SmsCommunicatorPluginTest : TestBaseWithProfile() {
|
||||||
|
|
||||||
@Test fun processCarbsTest() {
|
@Test fun processCarbsTest() {
|
||||||
`when`(dateUtilMocked.now()).thenReturn(1000000L)
|
`when`(dateUtilMocked.now()).thenReturn(1000000L)
|
||||||
|
`when`(dateUtilMocked.timeString(anyLong())).thenReturn("03:01AM")
|
||||||
`when`(sp.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)).thenReturn(false)
|
`when`(sp.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)).thenReturn(false)
|
||||||
//CAL
|
//CAL
|
||||||
smsCommunicatorPlugin.messages = ArrayList()
|
smsCommunicatorPlugin.messages = ArrayList()
|
||||||
|
|
|
@ -137,6 +137,7 @@ class CommandQueueImplementationTest : TestBaseWithProfile() {
|
||||||
val percentageConstraint = Constraint(0)
|
val percentageConstraint = Constraint(0)
|
||||||
`when`(constraintChecker.applyBasalPercentConstraints(anyObject(), anyObject())).thenReturn(percentageConstraint)
|
`when`(constraintChecker.applyBasalPercentConstraints(anyObject(), anyObject())).thenReturn(percentageConstraint)
|
||||||
`when`(rh.gs(R.string.connectiontimedout)).thenReturn("Connection timed out")
|
`when`(rh.gs(R.string.connectiontimedout)).thenReturn("Connection timed out")
|
||||||
|
`when`(rh.gs(R.string.formatinsulinunits)).thenReturn("%1\$.2f U")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -1,43 +1,47 @@
|
||||||
package info.nightscout.androidaps
|
package info.nightscout.androidaps
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import dagger.android.AndroidInjector
|
import dagger.android.AndroidInjector
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.ProfileSealed
|
import info.nightscout.androidaps.data.ProfileSealed
|
||||||
import info.nightscout.androidaps.extensions.pureProfileFromJson
|
import info.nightscout.androidaps.extensions.pureProfileFromJson
|
||||||
import info.nightscout.androidaps.interfaces.ActivePlugin
|
import info.nightscout.androidaps.interfaces.ActivePlugin
|
||||||
import info.nightscout.androidaps.interfaces.Config
|
import info.nightscout.androidaps.interfaces.Config
|
||||||
import info.nightscout.androidaps.interfaces.Profile
|
import info.nightscout.androidaps.interfaces.IobCobCalculator
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.interfaces.ProfileStore
|
import info.nightscout.androidaps.interfaces.ProfileStore
|
||||||
import info.nightscout.androidaps.plugins.bus.RxBus
|
import info.nightscout.androidaps.plugins.bus.RxBus
|
||||||
import info.nightscout.androidaps.utils.DateUtil
|
import info.nightscout.androidaps.utils.DateUtil
|
||||||
import info.nightscout.androidaps.utils.DefaultValueHelper
|
|
||||||
import info.nightscout.androidaps.utils.FabricPrivacy
|
import info.nightscout.androidaps.utils.FabricPrivacy
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
import org.mockito.ArgumentMatchers.anyDouble
|
||||||
|
import org.mockito.ArgumentMatchers.anyInt
|
||||||
|
import org.mockito.ArgumentMatchers.anyString
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
|
import org.mockito.Mockito
|
||||||
|
import org.mockito.invocation.InvocationOnMock
|
||||||
|
|
||||||
@Suppress("SpellCheckingInspection")
|
@Suppress("SpellCheckingInspection")
|
||||||
open class TestBaseWithProfile : TestBase() {
|
open class TestBaseWithProfile : TestBase() {
|
||||||
|
|
||||||
@Mock lateinit var activePluginProvider: ActivePlugin
|
@Mock lateinit var activePluginProvider: ActivePlugin
|
||||||
@Mock lateinit var rh: ResourceHelper
|
@Mock lateinit var rh: ResourceHelper
|
||||||
|
@Mock lateinit var iobCobCalculator: IobCobCalculator
|
||||||
@Mock lateinit var fabricPrivacy: FabricPrivacy
|
@Mock lateinit var fabricPrivacy: FabricPrivacy
|
||||||
@Mock lateinit var profileFunction: ProfileFunction
|
@Mock lateinit var profileFunction: ProfileFunction
|
||||||
@Mock lateinit var defaultValueHelper: DefaultValueHelper
|
|
||||||
@Mock lateinit var dateUtil: DateUtil
|
|
||||||
@Mock lateinit var config: Config
|
@Mock lateinit var config: Config
|
||||||
|
@Mock lateinit var context: Context
|
||||||
|
|
||||||
|
lateinit var dateUtil: DateUtil
|
||||||
val rxBus = RxBus(aapsSchedulers, aapsLogger)
|
val rxBus = RxBus(aapsSchedulers, aapsLogger)
|
||||||
|
|
||||||
val profileInjector = HasAndroidInjector {
|
val profileInjector = HasAndroidInjector { AndroidInjector { } }
|
||||||
AndroidInjector {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private lateinit var validProfileJSON: String
|
private lateinit var validProfileJSON: String
|
||||||
lateinit var validProfile: Profile
|
lateinit var validProfile: ProfileSealed.Pure
|
||||||
|
|
||||||
@Suppress("PropertyName") val TESTPROFILENAME = "someProfile"
|
@Suppress("PropertyName") val TESTPROFILENAME = "someProfile"
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
@ -45,7 +49,101 @@ open class TestBaseWithProfile : TestBase() {
|
||||||
validProfileJSON = "{\"dia\":\"5\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"30\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"3\"}," +
|
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\"}]," +
|
"{\"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\"}"
|
"\"target_high\":[{\"time\":\"00:00\",\"value\":\"7\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}"
|
||||||
|
dateUtil = DateUtil(context)
|
||||||
validProfile = ProfileSealed.Pure(pureProfileFromJson(JSONObject(validProfileJSON), dateUtil)!!)
|
validProfile = ProfileSealed.Pure(pureProfileFromJson(JSONObject(validProfileJSON), dateUtil)!!)
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
String.format(rh.gs(string), arg1)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
String.format(rh.gs(string), arg1)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
String.format(rh.gs(string), arg1)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyInt())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
String.format(rh.gs(string), arg1, arg2)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Int?>(1)
|
||||||
|
val arg2 = invocation.getArgument<String?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyInt(), anyString(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<Double?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyDouble(), anyInt(), anyString())
|
||||||
|
|
||||||
|
Mockito.doAnswer { invocation: InvocationOnMock ->
|
||||||
|
val string = invocation.getArgument<Int>(0)
|
||||||
|
val arg1 = invocation.getArgument<String?>(1)
|
||||||
|
val arg2 = invocation.getArgument<Int?>(2)
|
||||||
|
val arg3 = invocation.getArgument<String?>(3)
|
||||||
|
String.format(rh.gs(string), arg1, arg2, arg3)
|
||||||
|
}.`when`(rh).gs(anyInt(), anyString(), anyInt(), anyString())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getValidProfileStore(): ProfileStore {
|
fun getValidProfileStore(): ProfileStore {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.danaR
|
package info.nightscout.androidaps.plugins.pump.danaR
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import dagger.android.AndroidInjector
|
import dagger.android.AndroidInjector
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.Constants
|
import info.nightscout.androidaps.Constants
|
||||||
|
@ -22,7 +21,6 @@ import org.mockito.Mockito.`when`
|
||||||
|
|
||||||
class DanaRPluginTest : TestBaseWithProfile() {
|
class DanaRPluginTest : TestBaseWithProfile() {
|
||||||
|
|
||||||
@Mock lateinit var context: Context
|
|
||||||
@Mock lateinit var constraintChecker: ConstraintChecker
|
@Mock lateinit var constraintChecker: ConstraintChecker
|
||||||
@Mock lateinit var sp: SP
|
@Mock lateinit var sp: SP
|
||||||
@Mock lateinit var commandQueue: CommandQueue
|
@Mock lateinit var commandQueue: CommandQueue
|
||||||
|
@ -40,6 +38,7 @@ class DanaRPluginTest : TestBaseWithProfile() {
|
||||||
fun prepareMocks() {
|
fun prepareMocks() {
|
||||||
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
||||||
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
||||||
|
`when`(rh.gs(R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
|
||||||
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
||||||
danaPump = DanaPump(aapsLogger, sp, dateUtil, injector)
|
danaPump = DanaPump(aapsLogger, sp, dateUtil, injector)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.danaRKorean
|
package info.nightscout.androidaps.plugins.pump.danaRKorean
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import dagger.android.AndroidInjector
|
import dagger.android.AndroidInjector
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.Constants
|
import info.nightscout.androidaps.Constants
|
||||||
|
@ -22,7 +21,6 @@ import org.mockito.Mockito.`when`
|
||||||
|
|
||||||
class DanaRKoreanPluginTest : TestBaseWithProfile() {
|
class DanaRKoreanPluginTest : TestBaseWithProfile() {
|
||||||
|
|
||||||
@Mock lateinit var context: Context
|
|
||||||
@Mock lateinit var constraintChecker: ConstraintChecker
|
@Mock lateinit var constraintChecker: ConstraintChecker
|
||||||
@Mock lateinit var sp: SP
|
@Mock lateinit var sp: SP
|
||||||
@Mock lateinit var commandQueue: CommandQueue
|
@Mock lateinit var commandQueue: CommandQueue
|
||||||
|
@ -40,6 +38,7 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() {
|
||||||
fun prepareMocks() {
|
fun prepareMocks() {
|
||||||
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
||||||
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
||||||
|
`when`(rh.gs(R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
|
||||||
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
||||||
danaPump = DanaPump(aapsLogger, sp, dateUtil, injector)
|
danaPump = DanaPump(aapsLogger, sp, dateUtil, injector)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.danaRv2
|
package info.nightscout.androidaps.plugins.pump.danaRv2
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import dagger.android.AndroidInjector
|
import dagger.android.AndroidInjector
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.Constants
|
import info.nightscout.androidaps.Constants
|
||||||
|
@ -23,7 +22,6 @@ import org.mockito.Mockito.`when`
|
||||||
|
|
||||||
class DanaRv2PluginTest : TestBaseWithProfile() {
|
class DanaRv2PluginTest : TestBaseWithProfile() {
|
||||||
|
|
||||||
@Mock lateinit var context: Context
|
|
||||||
@Mock lateinit var constraintChecker: ConstraintChecker
|
@Mock lateinit var constraintChecker: ConstraintChecker
|
||||||
@Mock lateinit var sp: SP
|
@Mock lateinit var sp: SP
|
||||||
@Mock lateinit var commandQueue: CommandQueue
|
@Mock lateinit var commandQueue: CommandQueue
|
||||||
|
@ -43,6 +41,7 @@ class DanaRv2PluginTest : TestBaseWithProfile() {
|
||||||
fun prepareMocks() {
|
fun prepareMocks() {
|
||||||
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
`when`(sp.getString(R.string.key_danars_address, "")).thenReturn("")
|
||||||
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
`when`(rh.gs(R.string.pumplimit)).thenReturn("pump limit")
|
||||||
|
`when`(rh.gs(R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
|
||||||
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
`when`(rh.gs(R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
|
||||||
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
`when`(rh.gs(R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
|
||||||
danaPump = DanaPump(aapsLogger, sp, dateUtil, injector)
|
danaPump = DanaPump(aapsLogger, sp, dateUtil, injector)
|
||||||
|
|
Loading…
Reference in a new issue