better test coverage & some cleanup

This commit is contained in:
Roumen Georgiev 2019-10-02 14:37:00 +03:00
parent 157028c4fd
commit 7406577546
2 changed files with 22 additions and 30 deletions

View file

@ -20,16 +20,13 @@ import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.automation.elements.InputProfileName; import info.nightscout.androidaps.plugins.general.automation.elements.InputProfileName;
import info.nightscout.androidaps.plugins.general.automation.elements.LabelWithElement; import info.nightscout.androidaps.plugins.general.automation.elements.LabelWithElement;
import info.nightscout.androidaps.plugins.general.automation.elements.LayoutBuilder; import info.nightscout.androidaps.plugins.general.automation.elements.LayoutBuilder;
import info.nightscout.androidaps.plugins.profile.ns.NSProfilePlugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
import info.nightscout.androidaps.utils.JsonHelper; import info.nightscout.androidaps.utils.JsonHelper;
public class ActionProfileSwitch extends Action { public class ActionProfileSwitch extends Action {
private static Logger log = LoggerFactory.getLogger(L.AUTOMATION); private static Logger log = LoggerFactory.getLogger(L.AUTOMATION);
public InputProfileName inputProfileName = new InputProfileName("-"); public InputProfileName inputProfileName = new InputProfileName(ProfileFunctions.getInstance().getProfileName());
String profileName = ""; String profileName = "";
String profileStoreName;
String profileInterfaceString;
public ActionProfileSwitch() { public ActionProfileSwitch() {
// Prevent action if active profile is already active // Prevent action if active profile is already active
@ -50,25 +47,19 @@ public class ActionProfileSwitch extends Action {
@Override @Override
public void doAction(Callback callback) { public void doAction(Callback callback) {
String activeProfileName = ProfileFunctions.getInstance().getProfileName();
/*log.debug("Current profile is: " + activeProfileName); String activeProfileName = ProfileFunctions.getInstance().getProfileName();
log.debug("Wanted profile is: " + profileName); //Check for uninitialized profileName
log.debug("Do they match: " + (profileName.equals(activeProfileName))); if ( profileName.equals("")){ profileName = activeProfileName; }
*/
if (profileName.equals(activeProfileName)) { if (profileName.equals(activeProfileName)) {
// Profile is already switched // Profile is already switched
return; return;
} }
ProfileInterface profileInterface = ConfigBuilderPlugin.getPlugin().getActiveProfileInterface(); ProfileInterface activeProfile = ConfigBuilderPlugin.getPlugin().getActiveProfileInterface();
profileInterfaceString = profileInterface.toString(); if (activeProfile == null) return;
ProfileStore profileStore = NSProfilePlugin.getPlugin().getProfile(); ProfileStore profileStore = activeProfile.getProfile();
log.debug("NS profileStore is: " +profileStore.toString()); if (profileStore == null) return;
if (profileStore == null) {
log.error("ProfileStore is null");
return;
}
profileStoreName = profileStore.toString();
if(profileStore.getSpecificProfile(profileName) == null) { if(profileStore.getSpecificProfile(profileName) == null) {
log.error("Selected profile does not exist! - "+ profileName); log.error("Selected profile does not exist! - "+ profileName);
return; return;

View file

@ -18,7 +18,6 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.db.ProfileSwitch; import info.nightscout.androidaps.db.ProfileSwitch;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; 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.profile.ns.NSProfilePlugin; import info.nightscout.androidaps.plugins.profile.ns.NSProfilePlugin;
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.Callback;
@ -30,11 +29,11 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.powermock.api.mockito.PowerMockito.when; import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class) @RunWith(PowerMockRunner.class)
@PrepareForTest({MainApp.class, SP.class, TreatmentsPlugin.class, ProfileFunctions.class, ConfigBuilderPlugin.class}) @PrepareForTest({MainApp.class, SP.class, TreatmentsPlugin.class, ProfileFunctions.class, ConfigBuilderPlugin.class, NSProfilePlugin.class})
public class ActionProfileSwitchTest { public class ActionProfileSwitchTest {
TreatmentsPlugin treatmentsPlugin; TreatmentsPlugin treatmentsPlugin;
ProfileSwitch profileAdded; ProfileSwitch profileAdded;
private ActionProfileSwitch actionProfileSwitch = new ActionProfileSwitch(); private ActionProfileSwitch actionProfileSwitch;
private String stringJson = "{\"data\":{\"profileToSwitchTo\":\"Test\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionProfileSwitch\"}"; private String stringJson = "{\"data\":{\"profileToSwitchTo\":\"Test\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionProfileSwitch\"}";
@Before @Before
@ -48,6 +47,7 @@ public class ActionProfileSwitchTest {
AAPSMocker.mockTreatmentService(); AAPSMocker.mockTreatmentService();
AAPSMocker.mockBus(); AAPSMocker.mockBus();
AAPSMocker.mockDatabaseHelper(); AAPSMocker.mockDatabaseHelper();
AAPSMocker.mockProfileFunctions();
treatmentsPlugin = AAPSMocker.mockTreatmentPlugin(); treatmentsPlugin = AAPSMocker.mockTreatmentPlugin();
NSProfilePlugin profilePlugin = NSProfilePlugin.getPlugin(); NSProfilePlugin profilePlugin = NSProfilePlugin.getPlugin();
@ -62,6 +62,7 @@ public class ActionProfileSwitchTest {
@Test @Test
public void friendlyName() { public void friendlyName() {
actionProfileSwitch = new ActionProfileSwitch();
Assert.assertEquals(R.string.profilename, actionProfileSwitch.friendlyName()); Assert.assertEquals(R.string.profilename, actionProfileSwitch.friendlyName());
} }
@ -75,25 +76,24 @@ public class ActionProfileSwitchTest {
@Test @Test
public void doAction() { public void doAction() {
/* actionProfileSwitch = new ActionProfileSwitch(); PowerMockito.when(ProfileFunctions.getInstance().getProfileName()).thenReturn("Test");
actionProfileSwitch.inputProfileName.setValue("Test");
actionProfileSwitch.profileName = "Test"; actionProfileSwitch = new ActionProfileSwitch();
SP.putString("profile", AAPSMocker.getValidProfileStore().getData().toString()); actionProfileSwitch.inputProfileName.setValue("someOtherProfile");
actionProfileSwitch.profileName = "someProfile";
when(NSProfilePlugin.getPlugin().getProfile()).thenReturn(AAPSMocker.getValidProfileStore());
// Assert.assertEquals("", actionProfileSwitch.profileStoreName);
Assert.assertEquals("", actionProfileSwitch.profileInterfaceString);
// when(NSProfilePlugin.getPlugin().getProfile()).thenReturn(AAPSMocker.getValidProfileStore());
actionProfileSwitch.doAction(new Callback() { actionProfileSwitch.doAction(new Callback() {
@Override @Override
public void run() { public void run() {
Assert.assertTrue(result.success);
} }
}); });
Assert.assertNotEquals(null, profileAdded);*/
} }
@Test @Test
public void hasDialogTest() { public void hasDialogTest() {
actionProfileSwitch = new ActionProfileSwitch();
Assert.assertTrue(actionProfileSwitch.hasDialog()); Assert.assertTrue(actionProfileSwitch.hasDialog());
} }
@ -114,6 +114,7 @@ public class ActionProfileSwitchTest {
@Test @Test
public void iconTest() { public void iconTest() {
actionProfileSwitch = new ActionProfileSwitch();
Assert.assertEquals(Optional.of(R.drawable.icon_actions_profileswitch), actionProfileSwitch.icon()); Assert.assertEquals(Optional.of(R.drawable.icon_actions_profileswitch), actionProfileSwitch.icon());
} }
} }