SmsCommunicatorPluginTest 4
This commit is contained in:
parent
11ee9f54c3
commit
4c0554f61a
3 changed files with 172 additions and 18 deletions
|
@ -164,7 +164,7 @@ public class SmsCommunicatorPlugin extends PluginBase {
|
||||||
case "LOOP":
|
case "LOOP":
|
||||||
if (!remoteCommandsAllowed)
|
if (!remoteCommandsAllowed)
|
||||||
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_remotecommandnotallowed));
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_remotecommandnotallowed));
|
||||||
else if (splitted.length == 2)
|
else if (splitted.length == 2 || splitted.length == 3)
|
||||||
processLOOP(splitted, receivedSms);
|
processLOOP(splitted, receivedSms);
|
||||||
else
|
else
|
||||||
sendSMS(new Sms(receivedSms.phoneNumber, R.string.wrongformat));
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.wrongformat));
|
||||||
|
@ -236,7 +236,7 @@ public class SmsCommunicatorPlugin extends PluginBase {
|
||||||
messageToConfirm.action(splitted[0]);
|
messageToConfirm.action(splitted[0]);
|
||||||
messageToConfirm = null;
|
messageToConfirm = null;
|
||||||
} else
|
} else
|
||||||
sendSMS(new Sms(receivedSms.phoneNumber, MainApp.gs(R.string.smscommunicator_unknowncommand)));
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_unknowncommand));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -294,6 +294,8 @@ public class SmsCommunicatorPlugin extends PluginBase {
|
||||||
sendSMS(new Sms(receivedSms.phoneNumber, reply));
|
sendSMS(new Sms(receivedSms.phoneNumber, reply));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_loopisdisabled));
|
||||||
}
|
}
|
||||||
receivedSms.processed = true;
|
receivedSms.processed = true;
|
||||||
break;
|
break;
|
||||||
|
@ -304,6 +306,8 @@ public class SmsCommunicatorPlugin extends PluginBase {
|
||||||
loopPlugin.setPluginEnabled(PluginType.LOOP, true);
|
loopPlugin.setPluginEnabled(PluginType.LOOP, true);
|
||||||
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_loophasbeenenabled));
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_loophasbeenenabled));
|
||||||
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_START"));
|
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_START"));
|
||||||
|
} else {
|
||||||
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_loopisenabled));
|
||||||
}
|
}
|
||||||
receivedSms.processed = true;
|
receivedSms.processed = true;
|
||||||
break;
|
break;
|
||||||
|
@ -326,18 +330,16 @@ public class SmsCommunicatorPlugin extends PluginBase {
|
||||||
LoopPlugin.getPlugin().suspendTo(0);
|
LoopPlugin.getPlugin().suspendTo(0);
|
||||||
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_RESUME"));
|
MainApp.bus().post(new EventRefreshOverview("SMS_LOOP_RESUME"));
|
||||||
NSUpload.uploadOpenAPSOffline(0);
|
NSUpload.uploadOpenAPSOffline(0);
|
||||||
reply = MainApp.gs(R.string.smscommunicator_loopresumed);
|
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_loopresumed));
|
||||||
sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply));
|
|
||||||
break;
|
break;
|
||||||
case "SUSPEND":
|
case "SUSPEND":
|
||||||
int duration = 0;
|
int duration = 0;
|
||||||
if (splitted.length >= 3)
|
if (splitted.length == 3)
|
||||||
duration = SafeParse.stringToInt(splitted[2]);
|
duration = SafeParse.stringToInt(splitted[2]);
|
||||||
duration = Math.max(0, duration);
|
duration = Math.max(0, duration);
|
||||||
duration = Math.min(180, duration);
|
duration = Math.min(180, duration);
|
||||||
if (duration == 0) {
|
if (duration == 0) {
|
||||||
reply = MainApp.gs(R.string.smscommunicator_wrongduration);
|
sendSMS(new Sms(receivedSms.phoneNumber, R.string.smscommunicator_wrongduration));
|
||||||
sendSMS(new Sms(receivedSms.phoneNumber, reply));
|
|
||||||
} else {
|
} else {
|
||||||
String passCode = generatePasscode();
|
String passCode = generatePasscode();
|
||||||
reply = String.format(MainApp.gs(R.string.smscommunicator_suspendreplywithcode), duration, passCode);
|
reply = String.format(MainApp.gs(R.string.smscommunicator_suspendreplywithcode), duration, passCode);
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.squareup.otto.Bus;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
import org.mockito.stubbing.Answer;
|
||||||
import org.powermock.api.mockito.PowerMockito;
|
import org.powermock.api.mockito.PowerMockito;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -31,6 +32,7 @@ import info.nightscout.androidaps.plugins.pump.danaRKorean.DanaRKoreanPlugin;
|
||||||
import info.nightscout.androidaps.plugins.pump.danaRv2.DanaRv2Plugin;
|
import info.nightscout.androidaps.plugins.pump.danaRv2.DanaRv2Plugin;
|
||||||
import info.nightscout.androidaps.plugins.treatments.TreatmentService;
|
import info.nightscout.androidaps.plugins.treatments.TreatmentService;
|
||||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||||
|
import info.nightscout.androidaps.queue.Callback;
|
||||||
import info.nightscout.androidaps.queue.CommandQueue;
|
import info.nightscout.androidaps.queue.CommandQueue;
|
||||||
import info.nightscout.androidaps.utils.SP;
|
import info.nightscout.androidaps.utils.SP;
|
||||||
|
|
||||||
|
@ -38,6 +40,7 @@ import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
@ -53,6 +56,8 @@ public class AAPSMocker {
|
||||||
|
|
||||||
public static Intent intentSent = null;
|
public static Intent intentSent = null;
|
||||||
|
|
||||||
|
public static CommandQueue queue;
|
||||||
|
|
||||||
public static void mockStrings() {
|
public static void mockStrings() {
|
||||||
Locale.setDefault(new Locale("en", "US"));
|
Locale.setDefault(new Locale("en", "US"));
|
||||||
|
|
||||||
|
@ -114,6 +119,15 @@ public class AAPSMocker {
|
||||||
when(MainApp.gs(R.string.loopsuspendedfor)).thenReturn("Suspended (%1$d m)");
|
when(MainApp.gs(R.string.loopsuspendedfor)).thenReturn("Suspended (%1$d m)");
|
||||||
when(MainApp.gs(R.string.smscommunicator_loopisdisabled)).thenReturn("Loop is disabled");
|
when(MainApp.gs(R.string.smscommunicator_loopisdisabled)).thenReturn("Loop is disabled");
|
||||||
when(MainApp.gs(R.string.smscommunicator_loopisenabled)).thenReturn("Loop is enabled");
|
when(MainApp.gs(R.string.smscommunicator_loopisenabled)).thenReturn("Loop is enabled");
|
||||||
|
when(MainApp.gs(R.string.wrongformat)).thenReturn("Wrong format");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_loophasbeendisabled)).thenReturn("Loop has been disabled");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_loophasbeenenabled)).thenReturn("Loop has been enabled");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_tempbasalcanceled)).thenReturn("Temp basal canceled");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_loopresumed)).thenReturn("Loop resumed");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_wrongduration)).thenReturn("Wrong duration");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_suspendreplywithcode)).thenReturn("To suspend loop for %1$d minutes reply with code %2$s");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_loopsuspended)).thenReturn("Loop suspended");
|
||||||
|
when(MainApp.gs(R.string.smscommunicator_unknowncommand)).thenReturn("Uknown command or wrong reply");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MainApp mockMainApp() {
|
public static MainApp mockMainApp() {
|
||||||
|
@ -171,7 +185,7 @@ public class AAPSMocker {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void mockCommandQueue() {
|
public static void mockCommandQueue() {
|
||||||
CommandQueue queue = mock(CommandQueue.class);
|
queue = mock(CommandQueue.class);
|
||||||
when(ConfigBuilderPlugin.getPlugin().getCommandQueue()).thenReturn(queue);
|
when(ConfigBuilderPlugin.getPlugin().getCommandQueue()).thenReturn(queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Mockito;
|
||||||
|
import org.mockito.stubbing.Answer;
|
||||||
import org.powermock.api.mockito.PowerMockito;
|
import org.powermock.api.mockito.PowerMockito;
|
||||||
import org.powermock.core.classloader.annotations.PrepareForTest;
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
import org.powermock.modules.junit4.PowerMockRunner;
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
@ -16,28 +18,42 @@ import java.util.List;
|
||||||
import info.AAPSMocker;
|
import info.AAPSMocker;
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
|
import info.nightscout.androidaps.data.PumpEnactResult;
|
||||||
import info.nightscout.androidaps.db.BgReading;
|
import info.nightscout.androidaps.db.BgReading;
|
||||||
import info.nightscout.androidaps.interfaces.PluginType;
|
import info.nightscout.androidaps.interfaces.PluginType;
|
||||||
import info.nightscout.androidaps.logging.L;
|
import info.nightscout.androidaps.logging.L;
|
||||||
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
|
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
|
||||||
|
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
|
||||||
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
|
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
|
||||||
|
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
|
||||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||||
|
import info.nightscout.androidaps.queue.Callback;
|
||||||
|
import info.nightscout.androidaps.queue.CommandQueue;
|
||||||
import info.nightscout.androidaps.utils.DateUtil;
|
import info.nightscout.androidaps.utils.DateUtil;
|
||||||
import info.nightscout.androidaps.utils.SP;
|
import info.nightscout.androidaps.utils.SP;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
|
import static org.powermock.api.mockito.PowerMockito.doAnswer;
|
||||||
import static org.powermock.api.mockito.PowerMockito.mock;
|
import static org.powermock.api.mockito.PowerMockito.mock;
|
||||||
import static org.powermock.api.mockito.PowerMockito.mockStatic;
|
import static org.powermock.api.mockito.PowerMockito.mockStatic;
|
||||||
import static org.powermock.api.mockito.PowerMockito.when;
|
import static org.powermock.api.mockito.PowerMockito.when;
|
||||||
|
|
||||||
@RunWith(PowerMockRunner.class)
|
@RunWith(PowerMockRunner.class)
|
||||||
@PrepareForTest({L.class, SP.class, MainApp.class, DateUtil.class, ProfileFunctions.class, TreatmentsPlugin.class, SmsManager.class, IobCobCalculatorPlugin.class})
|
@PrepareForTest({
|
||||||
|
L.class, SP.class, MainApp.class, DateUtil.class, ProfileFunctions.class,
|
||||||
|
TreatmentsPlugin.class, SmsManager.class, IobCobCalculatorPlugin.class,
|
||||||
|
CommandQueue.class, ConfigBuilderPlugin.class, NSUpload.class
|
||||||
|
})
|
||||||
|
|
||||||
public class SmsCommunicatorPluginTest {
|
public class SmsCommunicatorPluginTest {
|
||||||
|
|
||||||
SmsCommunicatorPlugin smsCommunicatorPlugin;
|
SmsCommunicatorPlugin smsCommunicatorPlugin;
|
||||||
LoopPlugin loopPlugin;
|
LoopPlugin loopPlugin;
|
||||||
|
|
||||||
|
boolean hasBeenRun = false;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void processSettingsTest() {
|
public void processSettingsTest() {
|
||||||
// called from constructor
|
// called from constructor
|
||||||
|
@ -62,17 +78,12 @@ public class SmsCommunicatorPluginTest {
|
||||||
Assert.assertTrue(sms.ignored);
|
Assert.assertTrue(sms.ignored);
|
||||||
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "aText");
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "aText");
|
||||||
|
|
||||||
// test remote control disabled
|
//UNKNOWN
|
||||||
when(SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)).thenReturn(false);
|
|
||||||
smsCommunicatorPlugin.messages = new ArrayList<>();
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
sms = new Sms("1234", "LOOP STATUS");
|
sms = new Sms("1234", "UNKNOWN");
|
||||||
smsCommunicatorPlugin.processSms(sms);
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
Assert.assertFalse(sms.ignored);
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "UNKNOWN");
|
||||||
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP STATUS");
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Uknown command or wrong reply");
|
||||||
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("Remote command is not allowed"));
|
|
||||||
|
|
||||||
// enable remote control for next tests
|
|
||||||
when(SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)).thenReturn(true);
|
|
||||||
|
|
||||||
//BG
|
//BG
|
||||||
smsCommunicatorPlugin.messages = new ArrayList<>();
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
@ -82,6 +93,16 @@ public class SmsCommunicatorPluginTest {
|
||||||
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("IOB:"));
|
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("IOB:"));
|
||||||
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("Last BG: 100"));
|
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("Last BG: 100"));
|
||||||
|
|
||||||
|
// LOOP : test remote control disabled
|
||||||
|
when(SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)).thenReturn(false);
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP STATUS");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP STATUS");
|
||||||
|
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("Remote command is not allowed"));
|
||||||
|
when(SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)).thenReturn(true);
|
||||||
|
|
||||||
//LOOP STATUS : disabled
|
//LOOP STATUS : disabled
|
||||||
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(false);
|
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(false);
|
||||||
smsCommunicatorPlugin.messages = new ArrayList<>();
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
@ -109,6 +130,112 @@ public class SmsCommunicatorPluginTest {
|
||||||
Assert.assertFalse(sms.ignored);
|
Assert.assertFalse(sms.ignored);
|
||||||
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP STATUS");
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP STATUS");
|
||||||
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop is enabled");
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop is enabled");
|
||||||
|
|
||||||
|
//LOOP : wrong format
|
||||||
|
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(true);
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Wrong format");
|
||||||
|
|
||||||
|
//LOOP DISABLE : already disabled
|
||||||
|
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(false);
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP DISABLE");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP DISABLE");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop is disabled");
|
||||||
|
|
||||||
|
//LOOP DISABLE : from enabled
|
||||||
|
hasBeenRun = false;
|
||||||
|
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(true);
|
||||||
|
doAnswer((Answer) invocation -> {
|
||||||
|
hasBeenRun = true;
|
||||||
|
return null;
|
||||||
|
}).when(loopPlugin).setPluginEnabled(PluginType.LOOP, false);
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP DISABLE");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP DISABLE");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop has been disabled Temp basal canceled");
|
||||||
|
Assert.assertTrue(hasBeenRun);
|
||||||
|
|
||||||
|
//LOOP ENABLE : already enabled
|
||||||
|
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(true);
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP ENABLE");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP ENABLE");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop is enabled");
|
||||||
|
|
||||||
|
//LOOP ENABLE : from disabled
|
||||||
|
hasBeenRun = false;
|
||||||
|
when(loopPlugin.isEnabled(PluginType.LOOP)).thenReturn(false);
|
||||||
|
doAnswer((Answer) invocation -> {
|
||||||
|
hasBeenRun = true;
|
||||||
|
return null;
|
||||||
|
}).when(loopPlugin).setPluginEnabled(PluginType.LOOP, true);
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP ENABLE");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP ENABLE");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop has been enabled");
|
||||||
|
Assert.assertTrue(hasBeenRun);
|
||||||
|
|
||||||
|
//LOOP RESUME : already enabled
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP RESUME");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP RESUME");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Loop resumed");
|
||||||
|
|
||||||
|
//LOOP SUSPEND 1 2: wrong format
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP SUSPEND 1 2");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP SUSPEND 1 2");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Wrong format");
|
||||||
|
|
||||||
|
//LOOP SUSPEND 0 : wrong duration
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP SUSPEND 0");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP SUSPEND 0");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Wrong duration");
|
||||||
|
|
||||||
|
//LOOP SUSPEND 100 : suspend for 100 min
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP SUSPEND 100");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP SUSPEND 100");
|
||||||
|
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("To suspend loop for 100 minutes reply with code "));
|
||||||
|
|
||||||
|
//LOOP SUSPEND 200 : limit to 180 min
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP SUSPEND 200");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP SUSPEND 200");
|
||||||
|
Assert.assertTrue(smsCommunicatorPlugin.messages.get(1).text.contains("To suspend loop for 180 minutes reply with code "));
|
||||||
|
|
||||||
|
//LOOP BLABLA
|
||||||
|
smsCommunicatorPlugin.messages = new ArrayList<>();
|
||||||
|
sms = new Sms("1234", "LOOP BLABLA");
|
||||||
|
smsCommunicatorPlugin.processSms(sms);
|
||||||
|
Assert.assertFalse(sms.ignored);
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(0).text, "LOOP BLABLA");
|
||||||
|
Assert.assertEquals(smsCommunicatorPlugin.messages.get(1).text, "Wrong format");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
@ -122,6 +249,9 @@ public class SmsCommunicatorPluginTest {
|
||||||
AAPSMocker.mockProfileFunctions();
|
AAPSMocker.mockProfileFunctions();
|
||||||
AAPSMocker.mockTreatmentPlugin();
|
AAPSMocker.mockTreatmentPlugin();
|
||||||
AAPSMocker.mockIobCobCalculatorPlugin();
|
AAPSMocker.mockIobCobCalculatorPlugin();
|
||||||
|
AAPSMocker.mockConfigBuilder();
|
||||||
|
AAPSMocker.mockCommandQueue();
|
||||||
|
AAPSMocker.mockNSUpload();
|
||||||
|
|
||||||
BgReading reading = new BgReading();
|
BgReading reading = new BgReading();
|
||||||
reading.value = 100;
|
reading.value = 100;
|
||||||
|
@ -140,6 +270,14 @@ public class SmsCommunicatorPluginTest {
|
||||||
|
|
||||||
loopPlugin = mock(LoopPlugin.class);
|
loopPlugin = mock(LoopPlugin.class);
|
||||||
when(MainApp.getSpecificPlugin(LoopPlugin.class)).thenReturn(loopPlugin);
|
when(MainApp.getSpecificPlugin(LoopPlugin.class)).thenReturn(loopPlugin);
|
||||||
|
|
||||||
|
Mockito.doAnswer((Answer) invocation -> {
|
||||||
|
Callback callback = invocation.getArgument(1);
|
||||||
|
callback.result = new PumpEnactResult().success(true);
|
||||||
|
callback.run();
|
||||||
|
return null;
|
||||||
|
}).when(AAPSMocker.queue).cancelTempBasal(anyBoolean(), any(Callback.class));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue