PumpEnactResultTest

This commit is contained in:
Milos Kozak 2020-03-19 20:57:56 +01:00
parent 7ace6fe3ac
commit 2c3313ca54
2 changed files with 197 additions and 182 deletions

View file

@ -1,182 +0,0 @@
package info.nightscout.androidaps.data;
import android.text.Html;
import android.text.Spanned;
import org.json.JSONObject;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.skyscreamer.jsonassert.JSONAssert;
import info.AAPSMocker;
import info.nightscout.androidaps.MainApp;
import static org.mockito.ArgumentMatchers.anyString;
import static org.powermock.api.mockito.PowerMockito.when;
/**
* Created by mike on 29.03.2018.
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({MainApp.class, Html.class})
public class PumpEnactResultTest {
PumpEnactResult per = new PumpEnactResult();
@Test
public void successTest() throws Exception {
per.success(true);
Assert.assertEquals(true, per.success);
}
@Test
public void enactedTest() throws Exception {
per.enacted(true);
Assert.assertEquals(true, per.enacted);
}
@Test
public void commentTest() throws Exception {
per.comment("SomeComment");
Assert.assertEquals("SomeComment", per.comment);
}
@Test
public void durationTest() throws Exception {
per.duration(10);
Assert.assertEquals(10, per.duration);
}
@Test
public void absoluteTest() throws Exception {
per.absolute(11d);
Assert.assertEquals(11d, per.absolute, 0.01d);
}
@Test
public void percentTest() throws Exception {
per.percent(10);
Assert.assertEquals((int) 10, per.percent);
}
@Test
public void isPercentTest() throws Exception {
per.isPercent(true);
Assert.assertEquals(true, per.isPercent);
}
@Test
public void isTempCancelTest() throws Exception {
per.isTempCancel(true);
Assert.assertEquals(true, per.isTempCancel);
}
@Test
public void bolusDeliveredTest() throws Exception {
per.bolusDelivered(11d);
Assert.assertEquals(11d, per.bolusDelivered, 0.01d);
}
@Test
public void carbsDeliveredTest() throws Exception {
per.carbsDelivered(11d);
Assert.assertEquals(11d, per.carbsDelivered, 0.01d);
}
@Test
public void queuedTest() throws Exception {
per.queued(true);
Assert.assertEquals(true, per.queued);
}
@Test
public void logTest() throws Exception {
per = new PumpEnactResult();
Assert.assertEquals("Success: false Enacted: false Comment: Duration: -1 Absolute: -1.0 Percent: -1 IsPercent: false IsTempCancel: false bolusDelivered: 0.0 carbsDelivered: 0.0 Queued: false", per.log());
}
@Test
public void toStringTest() throws Exception {
per = new PumpEnactResult().enacted(true).bolusDelivered(10).comment("AAA");
Assert.assertEquals("Success: false\n" +
"Enacted: true\n" +
"Comment: AAA\n" +
"Insulin: 10.0 U", per.toString());
per = new PumpEnactResult().enacted(true).isTempCancel(true).comment("AAA");
Assert.assertEquals("Success: false\n" +
"Enacted: true\n" +
"Comment: AAA\n" +
"Cancel temp basal", per.toString());
per = new PumpEnactResult().enacted(true).isPercent(true).percent(90).duration(20).comment("AAA");
Assert.assertEquals("Success: false\n" +
"Enacted: true\n" +
"Comment: AAA\n" +
"Duration: 20 min\n" +
"Percent: 90%", per.toString());
per = new PumpEnactResult().enacted(true).isPercent(false).absolute(1).duration(30).comment("AAA");
Assert.assertEquals("Success: false\n" +
"Enacted: true\n" +
"Comment: AAA\n" +
"Duration: 30 min\n" +
"Absolute: 1.0 U/h", per.toString());
per = new PumpEnactResult().enacted(false).comment("AAA");
Assert.assertEquals("Success: false\n" +
"Comment: AAA", per.toString());
}
@Test
public void toHtmlTest() throws Exception {
per = new PumpEnactResult().enacted(true).bolusDelivered(10).comment("AAA");
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br><b>SMB</b>: 10.0 U", per.toHtml());
per = new PumpEnactResult().enacted(true).isTempCancel(true).comment("AAA");
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br>Cancel temp basal", per.toHtml());
per = new PumpEnactResult().enacted(true).isPercent(true).percent(90).duration(20).comment("AAA");
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br><b>Duration</b>: 20 min<br><b>Percent</b>: 90%", per.toHtml());
per = new PumpEnactResult().enacted(true).isPercent(false).absolute(1).duration(30).comment("AAA");
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br><b>Duration</b>: 30 min<br><b>Absolute</b>: 1.00 U/h", per.toHtml());
per = new PumpEnactResult().enacted(false).comment("AAA");
Assert.assertEquals("<b>Success</b>: false<br><b>Comment</b>: AAA", per.toHtml());
}
@Test
public void jsonTest() throws Exception {
JSONObject o;
per = new PumpEnactResult().enacted(true).bolusDelivered(10).comment("AAA");
o = per.json(AAPSMocker.getValidProfile());
JSONAssert.assertEquals("{\"smb\":10}", o, false);
per = new PumpEnactResult().enacted(true).isTempCancel(true).comment("AAA");
o = per.json(AAPSMocker.getValidProfile());
JSONAssert.assertEquals("{\"rate\":0,\"duration\":0}", o, false);
per = new PumpEnactResult().enacted(true).isPercent(true).percent(90).duration(20).comment("AAA");
o = per.json(AAPSMocker.getValidProfile());
JSONAssert.assertEquals("{\"rate\":0.9,\"duration\":20}", o, false);
per = new PumpEnactResult().enacted(true).isPercent(false).absolute(1).duration(30).comment("AAA");
o = per.json(AAPSMocker.getValidProfile());
JSONAssert.assertEquals("{\"rate\":1,\"duration\":30}", o, false);
}
@Before
public void prepareMock() {
AAPSMocker.mockMainApp();
AAPSMocker.mockStrings();
}
}

View file

@ -0,0 +1,197 @@
package info.nightscout.androidaps.data
import android.text.Html
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.TestBaseWithProfile
import org.json.JSONObject
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.`when`
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.modules.junit4.PowerMockRunner
import org.skyscreamer.jsonassert.JSONAssert
@RunWith(PowerMockRunner::class)
@PrepareForTest(MainApp::class, Html::class)
class PumpEnactResultTest : TestBaseWithProfile() {
val injector = HasAndroidInjector {
AndroidInjector {
if (it is PumpEnactResult) {
it.aapsLogger = aapsLogger
it.resourceHelper = resourceHelper
}
}
}
@Before
fun mock() {
`when`(resourceHelper.gs(R.string.success)).thenReturn("Success")
`when`(resourceHelper.gs(R.string.enacted)).thenReturn("Enacted")
`when`(resourceHelper.gs(R.string.comment)).thenReturn("Comment")
`when`(resourceHelper.gs(R.string.configbuilder_insulin)).thenReturn("Insulin")
`when`(resourceHelper.gs(R.string.smb_shortname)).thenReturn("SMB")
`when`(resourceHelper.gs(R.string.insulin_unit_shortname)).thenReturn("U")
`when`(resourceHelper.gs(R.string.canceltemp)).thenReturn("Cancel temp basal")
`when`(resourceHelper.gs(R.string.duration)).thenReturn("Duration")
`when`(resourceHelper.gs(R.string.percent)).thenReturn("Percent")
`when`(resourceHelper.gs(R.string.absolute)).thenReturn("Absolute")
}
@Test fun successTest() {
val per = PumpEnactResult(injector)
per.success(true)
Assert.assertEquals(true, per.success)
}
@Test fun enactedTest() {
val per = PumpEnactResult(injector)
per.enacted(true)
Assert.assertEquals(true, per.enacted)
}
@Test fun commentTest() {
val per = PumpEnactResult(injector)
per.comment("SomeComment")
Assert.assertEquals("SomeComment", per.comment)
}
@Test fun durationTest() {
val per = PumpEnactResult(injector)
per.duration(10)
Assert.assertEquals(10, per.duration.toLong())
}
@Test fun absoluteTest() {
val per = PumpEnactResult(injector)
per.absolute(11.0)
Assert.assertEquals(11.0, per.absolute, 0.01)
}
@Test fun percentTest() {
val per = PumpEnactResult(injector)
per.percent(10)
Assert.assertEquals(10, per.percent)
}
@Test fun isPercentTest() {
val per = PumpEnactResult(injector)
per.isPercent(true)
Assert.assertEquals(true, per.isPercent)
}
@Test fun isTempCancelTest() {
val per = PumpEnactResult(injector)
per.isTempCancel(true)
Assert.assertEquals(true, per.isTempCancel)
}
@Test fun bolusDeliveredTest() {
val per = PumpEnactResult(injector)
per.bolusDelivered(11.0)
Assert.assertEquals(11.0, per.bolusDelivered, 0.01)
}
@Test fun carbsDeliveredTest() {
val per = PumpEnactResult(injector)
per.carbsDelivered(11.0)
Assert.assertEquals(11.0, per.carbsDelivered, 0.01)
}
@Test fun queuedTest() {
val per = PumpEnactResult(injector)
per.queued(true)
Assert.assertEquals(true, per.queued)
}
@Test fun logTest() {
val per = PumpEnactResult(injector)
Assert.assertEquals("Success: false Enacted: false Comment: Duration: -1 Absolute: -1.0 Percent: -1 IsPercent: false IsTempCancel: false bolusDelivered: 0.0 carbsDelivered: 0.0 Queued: false", per.log())
}
@Test fun toStringTest() {
var per = PumpEnactResult(injector).enacted(true).bolusDelivered(10.0).comment("AAA")
Assert.assertEquals("""
Success: false
Enacted: true
Comment: AAA
Insulin: 10.0 U
""".trimIndent(), per.toString())
per = PumpEnactResult(injector).enacted(true).isTempCancel(true).comment("AAA")
Assert.assertEquals("""
Success: false
Enacted: true
Comment: AAA
Cancel temp basal
""".trimIndent(), per.toString())
per = PumpEnactResult(injector).enacted(true).isPercent(true).percent(90).duration(20).comment("AAA")
Assert.assertEquals("""
Success: false
Enacted: true
Comment: AAA
Duration: 20 min
Percent: 90%
""".trimIndent(), per.toString())
per = PumpEnactResult(injector).enacted(true).isPercent(false).absolute(1.0).duration(30).comment("AAA")
Assert.assertEquals("""
Success: false
Enacted: true
Comment: AAA
Duration: 30 min
Absolute: 1.0 U/h
""".trimIndent(), per.toString())
per = PumpEnactResult(injector).enacted(false).comment("AAA")
Assert.assertEquals("""
Success: false
Comment: AAA
""".trimIndent(), per.toString())
}
@Test fun toHtmlTest() {
var per: PumpEnactResult = PumpEnactResult(injector).enacted(true).bolusDelivered(10.0).comment("AAA")
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br><b>SMB</b>: 10.0 U", per.toHtml())
per = PumpEnactResult(injector).enacted(true).isTempCancel(true).comment("AAA")
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br>Cancel temp basal", per.toHtml())
per = PumpEnactResult(injector).enacted(true).isPercent(true).percent(90).duration(20).comment("AAA")
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br><b>Duration</b>: 20 min<br><b>Percent</b>: 90%", per.toHtml())
per = PumpEnactResult(injector).enacted(true).isPercent(false).absolute(1.0).duration(30).comment("AAA")
Assert.assertEquals("<b>Success</b>: false<br><b>Enacted</b>: true<br><b>Comment</b>: AAA<br><b>Duration</b>: 30 min<br><b>Absolute</b>: 1.00 U/h", per.toHtml())
per = PumpEnactResult(injector).enacted(false).comment("AAA")
Assert.assertEquals("<b>Success</b>: false<br><b>Comment</b>: AAA", per.toHtml())
}
@Test fun jsonTest() {
var o: JSONObject?
var per: PumpEnactResult = PumpEnactResult(injector).enacted(true).bolusDelivered(10.0).comment("AAA")
o = per.json(validProfile)
JSONAssert.assertEquals("{\"smb\":10}", o, false)
per = PumpEnactResult(injector).enacted(true).isTempCancel(true).comment("AAA")
o = per.json(validProfile)
JSONAssert.assertEquals("{\"rate\":0,\"duration\":0}", o, false)
per = PumpEnactResult(injector).enacted(true).isPercent(true).percent(90).duration(20).comment("AAA")
o = per.json(validProfile)
JSONAssert.assertEquals("{\"rate\":0.9,\"duration\":20}", o, false)
per = PumpEnactResult(injector).enacted(true).isPercent(false).absolute(1.0).duration(30).comment("AAA")
o = per.json(validProfile)
JSONAssert.assertEquals("{\"rate\":1,\"duration\":30}", o, false)
}
}