();
diff --git a/omod/src/main/java/org/springframework/web/servlet/mvc/AbstractWizardFormController.java b/omod/src/main/java/org/springframework/web/servlet/mvc/AbstractWizardFormController.java
index 200ff95a..41a5d2a4 100644
--- a/omod/src/main/java/org/springframework/web/servlet/mvc/AbstractWizardFormController.java
+++ b/omod/src/main/java/org/springframework/web/servlet/mvc/AbstractWizardFormController.java
@@ -29,6 +29,7 @@
*/
package org.springframework.web.servlet.mvc;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@@ -41,6 +42,8 @@
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.util.WebUtils;
+import static org.springframework.web.util.WebUtils.SUBMIT_IMAGE_SUFFIXES;
+
/**
* Form controller for typical wizard-style workflows.
*
@@ -654,7 +657,22 @@ protected int getTargetPage(HttpServletRequest request, Object command, Errors e
* @see #PARAM_TARGET
*/
protected int getTargetPage(HttpServletRequest request, int currentPage) {
- return WebUtils.getTargetPage(request, PARAM_TARGET, currentPage);
+ Enumeration parameterNames = request.getParameterNames();
+ while (parameterNames.hasMoreElements()) {
+ String param = parameterNames.nextElement();
+ if (param.startsWith(PARAM_TARGET)) {
+ for (String suffix : SUBMIT_IMAGE_SUFFIXES) {
+ // Remove any image button suffixes (like .x or .y)
+ if (param.endsWith(suffix)) {
+ param = param.substring(0, param.length() - suffix.length());
+ }
+ }
+ String pageStr = param.substring(PARAM_TARGET.length());
+ return Integer.parseInt(pageStr);
+
+ }
+ }
+ return currentPage;
}
/**
diff --git a/omod/src/test/java/org/openmrs/module/web/extension/ExtensionUtilTest.java b/omod/src/test/java/org/openmrs/module/web/extension/ExtensionUtilTest.java
index 2bb9c3d9..ea55a431 100644
--- a/omod/src/test/java/org/openmrs/module/web/extension/ExtensionUtilTest.java
+++ b/omod/src/test/java/org/openmrs/module/web/extension/ExtensionUtilTest.java
@@ -13,8 +13,8 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
import java.util.ArrayList;
import java.util.HashSet;
@@ -22,43 +22,42 @@
import java.util.Set;
import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.MockedStatic;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.openmrs.module.Extension;
import org.openmrs.module.ModuleFactory;
import org.openmrs.module.web.extension.provider.Link;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(ModuleFactory.class)
+@ExtendWith(MockitoExtension.class)
public class ExtensionUtilTest {
-
+
/**
* @see ExtensionUtil#getFormsModulesCanAddEncounterToVisit()
* @verifies return empty set if there is no AddEncounterToVisitExtension
*/
@Test
- public void getModulesAddEncounterToVisitLinks_shouldReturnEmptySetIfThereIsNoAddEncounterToVisitExtension()
- throws Exception {
+ public void getModulesAddEncounterToVisitLinks_shouldReturnEmptySetIfThereIsNoAddEncounterToVisitExtension() throws Exception {
//given
- mockStatic(ModuleFactory.class);
- when(ModuleFactory.getExtensions("org.openmrs.module.web.extension.AddEncounterToVisitExtension")).thenReturn(null);
-
- //when
- Set links = ExtensionUtil.getAllAddEncounterToVisitLinks();
-
- //then
- assertNotNull(links);
- assertEquals(0, links.size());
+ try (MockedStatic mockedModuleFactory = mockStatic(ModuleFactory.class)) {
+ mockedModuleFactory.when(() -> ModuleFactory.getExtensions("org.openmrs.module.web.extension.AddEncounterToVisitExtension"))
+ .thenReturn(null);
+
+ //when
+ Set links = ExtensionUtil.getAllAddEncounterToVisitLinks();
+
+ //then
+ assertNotNull(links);
+ assertEquals(0, links.size());
+ }
}
-
+
/**
* @see ExtensionUtil#getFormsModulesCanAddEncounterToVisit()
* @verifies return forms if there are AddEncounterToVisitExtensions
*/
@Test
- public void getFormsModulesCanAddEncounterToVisit_shouldReturnFormsIfThereAreAddEncounterToVisitExtensions()
- throws Exception {
+ public void getFormsModulesCanAddEncounterToVisit_shouldReturnFormsIfThereAreAddEncounterToVisitExtensions() throws Exception {
//given
AddEncounterToVisitExtension ext1 = mock(AddEncounterToVisitExtension.class);
Set links1 = new HashSet();
@@ -69,28 +68,29 @@ public void getFormsModulesCanAddEncounterToVisit_shouldReturnFormsIfThereAreAdd
link2.setLabel("b");
links1.add(link2);
when(ext1.getAddEncounterToVisitLinks()).thenReturn(links1);
-
+
AddEncounterToVisitExtension ext2 = mock(AddEncounterToVisitExtension.class);
Set links2 = new HashSet();
Link link3 = new Link();
link3.setLabel("aa");
links2.add(link3);
when(ext2.getAddEncounterToVisitLinks()).thenReturn(links2);
-
- List extensions = new ArrayList();
+
+ List extensions = new ArrayList<>();
extensions.add(ext1);
extensions.add(ext2);
-
- mockStatic(ModuleFactory.class);
- when(ModuleFactory.getExtensions("org.openmrs.module.web.extension.AddEncounterToVisitExtension")).thenReturn(
- extensions);
-
- //when
- Set allAddEncounterToVisitLinks = ExtensionUtil.getAllAddEncounterToVisitLinks();
-
- //then
- assertTrue(allAddEncounterToVisitLinks.contains(link1));
- assertTrue(allAddEncounterToVisitLinks.contains(link2));
- assertTrue(allAddEncounterToVisitLinks.contains(link3));
+
+ try (MockedStatic mockedModuleFactory = mockStatic(ModuleFactory.class)) {
+ mockedModuleFactory.when(() -> ModuleFactory.getExtensions("org.openmrs.module.web.extension.AddEncounterToVisitExtension"))
+ .thenReturn(extensions);
+
+ //when
+ Set allAddEncounterToVisitLinks = ExtensionUtil.getAllAddEncounterToVisitLinks();
+
+ //then
+ assertTrue(allAddEncounterToVisitLinks.contains(link1));
+ assertTrue(allAddEncounterToVisitLinks.contains(link2));
+ assertTrue(allAddEncounterToVisitLinks.contains(link3));
+ }
}
}
diff --git a/omod/src/test/java/org/openmrs/web/attribute/handler/BaseMetadataFieldGenDatatypeHandlerTest.java b/omod/src/test/java/org/openmrs/web/attribute/handler/BaseMetadataFieldGenDatatypeHandlerTest.java
index 6e381fa9..45694a0c 100644
--- a/omod/src/test/java/org/openmrs/web/attribute/handler/BaseMetadataFieldGenDatatypeHandlerTest.java
+++ b/omod/src/test/java/org/openmrs/web/attribute/handler/BaseMetadataFieldGenDatatypeHandlerTest.java
@@ -17,13 +17,10 @@
import static org.mockito.Mockito.when;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.openmrs.Location;
import org.openmrs.customdatatype.CustomDatatype;
import org.openmrs.customdatatype.datatype.MockLocationDatatype;
-import org.powermock.modules.junit4.PowerMockRunner;
-@RunWith(PowerMockRunner.class)
public class BaseMetadataFieldGenDatatypeHandlerTest {
private BaseMetadataFieldGenDatatypeHandler handler = new MockLocationFieldGenDatatypeHandler();
diff --git a/omod/src/test/java/org/openmrs/web/attribute/handler/RegexValidatedTextDatatypeHandlerTest.java b/omod/src/test/java/org/openmrs/web/attribute/handler/RegexValidatedTextDatatypeHandlerTest.java
index c0ee6a04..e9c227bf 100644
--- a/omod/src/test/java/org/openmrs/web/attribute/handler/RegexValidatedTextDatatypeHandlerTest.java
+++ b/omod/src/test/java/org/openmrs/web/attribute/handler/RegexValidatedTextDatatypeHandlerTest.java
@@ -19,23 +19,20 @@
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
import org.openmrs.customdatatype.CustomDatatype;
import org.openmrs.customdatatype.InvalidCustomValueException;
import org.openmrs.customdatatype.datatype.RegexValidatedTextDatatype;
-import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.mock.web.MockHttpServletRequest;
/**
* Tests {@code RegexValidatedTextDatatypeHandler}.
*/
-@RunWith(PowerMockRunner.class)
public class RegexValidatedTextDatatypeHandlerTest {
@Rule
- ExpectedException expectedException = ExpectedException.none();
+ public ExpectedException expectedException = ExpectedException.none();
- private RegexValidatedTextDatatypeHandler handler = new RegexValidatedTextDatatypeHandler();
+ private final RegexValidatedTextDatatypeHandler handler = new RegexValidatedTextDatatypeHandler();
/**
* @see org.openmrs.web.attribute.handler.FieldGenDatatypeHandler#getValue(CustomDatatype,
diff --git a/omod/src/test/java/org/openmrs/web/controller/ConceptFormControllerTest.java b/omod/src/test/java/org/openmrs/web/controller/ConceptFormControllerTest.java
index 3cf5685a..d7687f31 100644
--- a/omod/src/test/java/org/openmrs/web/controller/ConceptFormControllerTest.java
+++ b/omod/src/test/java/org/openmrs/web/controller/ConceptFormControllerTest.java
@@ -35,7 +35,9 @@
import org.openmrs.ConceptAnswer;
import org.openmrs.ConceptAttribute;
import org.openmrs.ConceptAttributeType;
+import org.openmrs.ConceptClass;
import org.openmrs.ConceptComplex;
+import org.openmrs.ConceptDatatype;
import org.openmrs.ConceptDescription;
import org.openmrs.ConceptMap;
import org.openmrs.ConceptMapType;
@@ -173,7 +175,8 @@ public void shouldAddConceptWithOnlyNameSpecified() throws Exception {
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("descriptionsByLocale[en_GB].description", "some description");
mockRequest.setParameter("concept.datatype", "1");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, new MockHttpServletResponse());
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -213,7 +216,8 @@ public void shouldAddConceptWithNameAndShortNameSpecified() throws Exception {
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("descriptionsByLocale[en_GB].description", "some description");
mockRequest.setParameter("concept.datatype", "1");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, new MockHttpServletResponse());
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -256,7 +260,8 @@ public void shouldAddConceptWithNameAndShortNameAndDescriptionSpecifiedToCodeCon
mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION);
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("concept.datatype", "4");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, response);
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -301,7 +306,8 @@ public void shouldAddConceptWithNameAndShortNameAndDescriptionSpecifiedToNumeric
mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION);
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("concept.datatype", "1");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, response);
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -357,7 +363,8 @@ public void shouldAddConceptWithAllNamingSpecified() throws Exception {
mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION);
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("concept.datatype", "1");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, response);
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -409,7 +416,8 @@ public void shouldUpdateConceptWithNameAlreadyInSynonymList() throws Exception {
mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION);
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("concept.datatype", "1");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, response);
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -458,6 +466,7 @@ public void shouldUpdateConceptWithShortNameAlreadyInSynonymList() throws Except
mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION);
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("concept.datatype", "1");
+ mockRequest.setParameter("concept.conceptClass", "1");
ModelAndView mav = conceptFormController.handleRequest(mockRequest, response);
assertNotNull(mav);
@@ -522,6 +531,8 @@ public void shouldVoidShortName() throws Exception {
concept.addName(new ConceptName(CONCEPT_NAME, britishEn));
concept.setShortName(new ConceptName("shortname", britishEn));
concept.addDescription(new ConceptDescription("some description", null));
+ concept.setDatatype(Context.getConceptService().getConceptDatatype(1));
+ concept.setConceptClass(Context.getConceptService().getConceptClass(1));
cs.saveConcept(concept);
Concept actualConcept = cs.getConceptByName(CONCEPT_NAME);
@@ -573,6 +584,8 @@ public void shouldReplacePreviousDescription() throws Exception {
originalConceptDescription.setLocale(britishEn);
originalConceptDescription.setDescription(ORIGINAL_DESCRIPTION);
conceptToUpdate.addDescription(originalConceptDescription);
+ conceptToUpdate.setDatatype(Context.getConceptService().getConceptDatatype(1));
+ conceptToUpdate.setConceptClass(Context.getConceptService().getConceptClass(1));
cs.saveConcept(conceptToUpdate);
// then submit changes through the controller
@@ -590,7 +603,8 @@ public void shouldReplacePreviousDescription() throws Exception {
mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION);
mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME);
mockRequest.setParameter("concept.datatype", "1");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, response);
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
@@ -608,12 +622,12 @@ public void shouldReplacePreviousDescription() throws Exception {
@Test
@Verifies(value = "should copy numeric values into numeric concepts", method = "onSubmit(HttpServletRequest,HttpServletResponse,Object,BindException)")
public void onSubmit_shouldCopyNumericValuesIntoNumericConcepts() throws Exception {
- final Double EXPECTED_LOW_ABSOLUTE = 100.0;
+ final Double EXPECTED_LOW_ABSOLUTE = 50.0;
final Double EXPECTED_LOW_CRITICAL = 103.0;
final Double EXPECTED_LOW_NORMAL = 105.0;
final Double EXPECTED_HI_NORMAL = 110.0;
final Double EXPECTED_HI_CRITICAL = 117.0;
- final Double EXPECTED_HI_ABSOLUTE = 120.0;
+ final Double EXPECTED_HI_ABSOLUTE = 150.0;
ConceptService cs = Context.getConceptService();
@@ -626,6 +640,7 @@ public void onSubmit_shouldCopyNumericValuesIntoNumericConcepts() throws Excepti
mockRequest.setParameter("namesByLocale[en_GB].name", "WEIGHT (KG)");
mockRequest.setParameter("conceptId", "5089");
mockRequest.setParameter("concept.datatype", "1");
+ mockRequest.setParameter("concept.conceptClass", "1");
mockRequest.setParameter("lowAbsolute", EXPECTED_LOW_ABSOLUTE.toString());
mockRequest.setParameter("lowCritical", EXPECTED_LOW_CRITICAL.toString());
mockRequest.setParameter("lowNormal", EXPECTED_LOW_NORMAL.toString());
@@ -926,6 +941,7 @@ public void onSubmit_shouldAddANewConceptMapWhenCreatingAConcept() throws Except
mockRequest.setParameter("namesByLocale[en_GB].name", conceptName);
mockRequest.setParameter("descriptionsByLocale[en_GB].description", "some description");
mockRequest.setParameter("concept.datatype", "1");
+ mockRequest.setParameter("concept.conceptClass", "1");
mockRequest.setParameter("conceptMappings[0].conceptReferenceTerm", "1");
mockRequest.setParameter("conceptMappings[0].conceptMapType", "3");
@@ -1248,7 +1264,8 @@ public void shouldSaveConceptAttributeOnCreatingConcept() throws Exception {
mockRequest.setParameter("descriptionsByLocale[en_GB].description", "some description");
mockRequest.setParameter("concept.datatype", "1");
mockRequest.setParameter("attribute.1.new[0]", "2011-04-25");
-
+ mockRequest.setParameter("concept.conceptClass", "1");
+
ModelAndView mav = conceptFormController.handleRequest(mockRequest, new MockHttpServletResponse());
assertNotNull(mav);
assertTrue(mav.getModel().isEmpty());
diff --git a/omod/src/test/java/org/openmrs/web/controller/provider/ProviderFormControllerTest.java b/omod/src/test/java/org/openmrs/web/controller/provider/ProviderFormControllerTest.java
index 064d5f91..73464de3 100644
--- a/omod/src/test/java/org/openmrs/web/controller/provider/ProviderFormControllerTest.java
+++ b/omod/src/test/java/org/openmrs/web/controller/provider/ProviderFormControllerTest.java
@@ -24,6 +24,8 @@
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindException;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
/**
* Tests against the {@link ProviderFormController}
*/
@@ -88,7 +90,6 @@ public void onSubmit_shouldSetAttributesToVoidIfTheValueIsNotSet() throws Except
* String, String, String, String, org.openmrs.Provider,
* org.springframework.validation.BindingResult, org.springframework.ui.ModelMap)
*/
- @Test(expected = ObjectNotFoundException.class)
public void onSubmit_shouldPurgeTheProvider() throws Exception {
executeDataSet(PROVIDERS_ATTRIBUTES_XML);
executeDataSet(PROVIDERS_XML);
@@ -101,7 +102,7 @@ public void onSubmit_shouldPurgeTheProvider() throws Exception {
providerFormController.onSubmit(mockHttpServletRequest, null, null, null, "purge", provider, errors,
createModelMap(providerAttributeType));
Context.flushSession();
- Assert.assertNull(Context.getProviderService().getProvider(2));
+ assertNull(Context.getProviderService().getProvider(2));
}
private ModelMap createModelMap(ProviderAttributeType providerAttributeType) {
diff --git a/omod/src/test/java/org/openmrs/web/controller/user/UserListControllerTest.java b/omod/src/test/java/org/openmrs/web/controller/user/UserListControllerTest.java
index 662dc714..03c006d6 100644
--- a/omod/src/test/java/org/openmrs/web/controller/user/UserListControllerTest.java
+++ b/omod/src/test/java/org/openmrs/web/controller/user/UserListControllerTest.java
@@ -28,10 +28,10 @@ public class UserListControllerTest extends BaseModuleWebContextSensitiveTest {
* @verifies get all users if no name given
*/
@Test
- public void displayUsers_shouldGetAllUsersIfNoNameGiven() throws Exception {
+ public void displayUsers_shouldGetAllUsersIfNoNameGiven() {
UserListController controller = new UserListController();
List users = controller.getUsers("Search", "", null, false);
- Assert.assertEquals(3, users.size());
+ Assert.assertEquals(2, users.size());
}
/**
@@ -39,10 +39,10 @@ public void displayUsers_shouldGetAllUsersIfNoNameGiven() throws Exception {
* @verifies get users just given action parameter
*/
@Test
- public void displayUsers_shouldGetUsersJustGivenActionParameter() throws Exception {
+ public void displayUsers_shouldGetUsersJustGivenActionParameter() {
UserListController controller = new UserListController();
List users = controller.getUsers("Search", null, null, null);
- Assert.assertEquals(3, users.size());
+ Assert.assertEquals(2, users.size());
}
/**
@@ -50,7 +50,7 @@ public void displayUsers_shouldGetUsersJustGivenActionParameter() throws Excepti
* @verifies get users with a given role
*/
@Test
- public void displayUsers_shouldGetUsersWithAGivenRole() throws Exception {
+ public void displayUsers_shouldGetUsersWithAGivenRole() {
UserListController controller = new UserListController();
List users = controller.getUsers("Search", null, new Role("Provider"), null);
Assert.assertEquals(1, users.size());
@@ -61,9 +61,9 @@ public void displayUsers_shouldGetUsersWithAGivenRole() throws Exception {
* @verifies include disabled users if requested
*/
@Test
- public void displayUsers_shouldIncludeDisabledUsersIfRequested() throws Exception {
+ public void displayUsers_shouldIncludeDisabledUsersIfRequested() {
UserListController controller = new UserListController();
List users = controller.getUsers("Search", "", new Role(""), true);
- Assert.assertEquals(4, users.size());
+ Assert.assertEquals(3, users.size());
}
}
diff --git a/omod/src/test/java/org/openmrs/web/dwr/DWRPatientServiceTest.java b/omod/src/test/java/org/openmrs/web/dwr/DWRPatientServiceTest.java
index db6b7454..35ee2d74 100644
--- a/omod/src/test/java/org/openmrs/web/dwr/DWRPatientServiceTest.java
+++ b/omod/src/test/java/org/openmrs/web/dwr/DWRPatientServiceTest.java
@@ -112,6 +112,7 @@ public void findCountAndPatients_shouldMatchPatientWithIdentifiersThatContainNoD
.getLocationService().getLocation(1));
patient.addIdentifier(pId);
ps.savePatient(patient);
+ updateSearchIndex();
//Let's do this in a case insensitive way
Map resultObjects = new DWRPatientService().findCountAndPatients(identifier.toLowerCase(), 0, null,
diff --git a/omod/src/test/java/org/openmrs/web/patient/PatientDashboardGraphControllerTest.java b/omod/src/test/java/org/openmrs/web/patient/PatientDashboardGraphControllerTest.java
index e889d458..8a5d14de 100644
--- a/omod/src/test/java/org/openmrs/web/patient/PatientDashboardGraphControllerTest.java
+++ b/omod/src/test/java/org/openmrs/web/patient/PatientDashboardGraphControllerTest.java
@@ -41,6 +41,7 @@ public void shouldReturnJSONWithPatientObservationDetails() throws Exception {
long firstObsDate = new GregorianCalendar(2006, Calendar.FEBRUARY, 9).getTimeInMillis();
long secondObsDate = new GregorianCalendar(2006, Calendar.FEBRUARY, 10).getTimeInMillis();
+ long thirdObsDate = new GregorianCalendar(2006, Calendar.FEBRUARY, 10).getTimeInMillis();
ModelMap map = new ModelMap();
controller.showGraphData(2, 1, map);
@@ -48,8 +49,8 @@ public void shouldReturnJSONWithPatientObservationDetails() throws Exception {
String expectedData = String
.format(
- "{\"absolute\":{\"high\":50.0,\"low\":2.0},\"critical\":{\"high\":null,\"low\":null},\"name\":\"Some concept name\",\"normal\":{\"high\":null,\"low\":null},\"data\":[[%d,null],[%d,1.0]],\"units\":\"\"}",
- secondObsDate, firstObsDate);
+ "{\"absolute\":{\"high\":50.0,\"low\":2.0},\"critical\":{\"high\":null,\"low\":null},\"name\":\"Some concept name\",\"normal\":{\"high\":null,\"low\":null},\"data\":[[%d,null],[%d, null],[%d,1.0]],\"units\":\"\"}",
+ secondObsDate, thirdObsDate, firstObsDate);
ObjectMapper mapper = new ObjectMapper();
JsonNode expectedJson = mapper.readTree(expectedData);
diff --git a/omod/src/test/java/org/openmrs/web/taglib/PortletTagTest.java b/omod/src/test/java/org/openmrs/web/taglib/PortletTagTest.java
index 830e2a49..cd97141e 100644
--- a/omod/src/test/java/org/openmrs/web/taglib/PortletTagTest.java
+++ b/omod/src/test/java/org/openmrs/web/taglib/PortletTagTest.java
@@ -10,22 +10,20 @@
package org.openmrs.web.taglib;
import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.MockedStatic;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.openmrs.module.Module;
import org.openmrs.module.ModuleFactory;
import org.openmrs.test.Verifies;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.when;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
+import static org.mockito.Mockito.mockStatic;
/**
* Tests the {@link PortletTag}
*/
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(ModuleFactory.class)
+@ExtendWith(MockitoExtension.class)
public class PortletTagTest {
/**
@@ -33,7 +31,7 @@ public class PortletTagTest {
*/
@Test
@Verifies(value = "return the correct url for a core portlet", method = "generatePortletUrl(String, String)")
- public void getModulePortletUrl_shouldReturnTheCorrectUrlForACorePortlet() throws Exception {
+ public void getModulePortletUrl_shouldReturnTheCorrectUrlForACorePortlet() {
String portletUrl = "test.portlet";
String moduleId = null;
@@ -50,20 +48,22 @@ public void getModulePortletUrl_shouldReturnTheCorrectUrlForACorePortlet() throw
*/
@Test
@Verifies(value = "return the correct url for a module portlet", method = "generatePortletUrl(String, String)")
- public void getModulePortletUrl_shouldReturnTheCorrectUrlForAModulePortlet() throws Exception {
+ public void getModulePortletUrl_shouldReturnTheCorrectUrlForAModulePortlet() {
String portletUrl = "test.portlet";
String moduleId = "moduleId";
// Setup the mocking for the ModuleFactory
- mockStatic(ModuleFactory.class);
- when(ModuleFactory.getModuleById(moduleId)).thenReturn(new Module(moduleId));
-
- // Instantiate the portlet and get the module url
- PortletTag portlet = new PortletTag();
- String result = portlet.generatePortletUrl(portletUrl, moduleId);
-
- // Verify the portlet url
- assertEquals("/module/" + moduleId + "/portlets/" + portletUrl, result);
+ try (MockedStatic mock = mockStatic(ModuleFactory.class)) {
+
+ mock.when(() -> ModuleFactory.getModuleById(moduleId)).thenReturn(new Module(moduleId));
+
+ // Instantiate the portlet and get the module url
+ PortletTag portlet = new PortletTag();
+ String result = portlet.generatePortletUrl(portletUrl, moduleId);
+
+ // Verify the portlet url
+ assertEquals("/module/" + moduleId + "/portlets/" + portletUrl, result);
+ }
}
/**
@@ -75,13 +75,15 @@ public void getModulePortletUrl_shouldReplacePeriodInAModuleIdWithAForwardSlashW
String portletUrl = "test.portlet";
String moduleId = "module.id";
- mockStatic(ModuleFactory.class);
- when(ModuleFactory.getModuleById(moduleId)).thenReturn(new Module(moduleId));
-
- PortletTag portlet = new PortletTag();
- String result = portlet.generatePortletUrl(portletUrl, moduleId);
-
- assertEquals("/module/" + moduleId.replace('.', '/') + "/portlets/" + portletUrl, result);
+ try (MockedStatic mock = mockStatic(ModuleFactory.class)) {
+ mock.when(() -> ModuleFactory.getModuleById(moduleId)).thenReturn(new Module(moduleId));
+
+ PortletTag portlet = new PortletTag();
+ String result = portlet.generatePortletUrl(portletUrl, moduleId);
+
+ assertEquals("/module/" + moduleId.replace('.', '/') + "/portlets/" + portletUrl, result);
+ }
+
}
/**
@@ -92,16 +94,17 @@ public void getModulePortletUrl_shouldReplacePeriodInAModuleIdWithAForwardSlashW
public void getModulePortletUrl_shouldNotUpdateTheModuleIdFieldForAModulePortlet() {
String portletUrl = "test.portlet";
String moduleId = "module.id";
-
- mockStatic(ModuleFactory.class);
- when(ModuleFactory.getModuleById(moduleId)).thenReturn(new Module(moduleId));
-
- PortletTag portlet = new PortletTag();
- portlet.setModuleId(moduleId);
- String result = portlet.generatePortletUrl(portletUrl, moduleId);
-
- assertEquals("/module/" + moduleId.replace('.', '/') + "/portlets/" + portletUrl, result);
- assertEquals(moduleId, portlet.getModuleId());
+
+ try (MockedStatic mock = mockStatic(ModuleFactory.class)) {
+ mock.when(() -> ModuleFactory.getModuleById(moduleId)).thenReturn(new Module(moduleId));
+
+ PortletTag portlet = new PortletTag();
+ portlet.setModuleId(moduleId);
+ String result = portlet.generatePortletUrl(portletUrl, moduleId);
+
+ assertEquals("/module/" + moduleId.replace('.', '/') + "/portlets/" + portletUrl, result);
+ assertEquals(moduleId, portlet.getModuleId());
+ }
}
/**
@@ -114,13 +117,14 @@ public void getModulePortletUrl_shouldReturnACorePortletUrlWhenTheSpecifiedModul
String moduleId = "moduleId";
// Setup the mocking for ModuleFactory to return null to test when the module is not found
- mockStatic(ModuleFactory.class);
- when(ModuleFactory.getModuleById(moduleId)).thenReturn(null);
-
- PortletTag portlet = new PortletTag();
- String result = portlet.generatePortletUrl(portletUrl, moduleId);
-
- assertEquals("/portlets/" + portletUrl, result);
+ try (MockedStatic mock = mockStatic(ModuleFactory.class)) {
+ mock.when(() -> ModuleFactory.getModuleById(moduleId)).thenReturn(null);
+
+ PortletTag portlet = new PortletTag();
+ String result = portlet.generatePortletUrl(portletUrl, moduleId);
+
+ assertEquals("/portlets/" + portletUrl, result);
+ }
}
/**
diff --git a/omod/src/test/resources/org/openmrs/web/controller/include/PortletControllerTest-bmi.xml b/omod/src/test/resources/org/openmrs/web/controller/include/PortletControllerTest-bmi.xml
index 6e1df3c0..bc24352d 100644
--- a/omod/src/test/resources/org/openmrs/web/controller/include/PortletControllerTest-bmi.xml
+++ b/omod/src/test/resources/org/openmrs/web/controller/include/PortletControllerTest-bmi.xml
@@ -14,11 +14,11 @@
-
+
-
-
+
+
diff --git a/pom.xml b/pom.xml
index bc14e824..fc5f273a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,12 +13,6 @@
4.0.0
-
- org.openmrs.maven.parents
- maven-parent-openmrs-module
- 1.1.1
-
-
org.openmrs.module
legacyui
2.0.0-SNAPSHOT
@@ -51,9 +45,9 @@
- 2.0.0
+ 2.7.3
UTF-8
- 1.8
+ 21
@@ -116,6 +110,26 @@
+
+ org.mockito
+ mockito-inline
+ 3.12.4
+ test
+
+
+
+ net.bytebuddy
+ byte-buddy
+ 1.17.4
+ test
+
+
+
+ net.bytebuddy
+ byte-buddy-agent
+ 1.17.4
+ test
+