Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
platform: [ ubuntu-latest ]
java-version: [ 8 ]
java-version: [ 8, 11, 17, 21 ]

runs-on: ${{ matrix.platform }}
env:
Expand Down
2 changes: 1 addition & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.openmrs.module</groupId>
<artifactId>queue</artifactId>
<version>2.10.0-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
</parent>

<artifactId>queue-api</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.openmrs.module</groupId>
<artifactId>queue</artifactId>
<version>2.10.0-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
</parent>

<artifactId>queue-integration-tests</artifactId>
Expand Down
6 changes: 3 additions & 3 deletions omod/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>org.openmrs.module</groupId>
<artifactId>queue</artifactId>
<version>2.10.0-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
</parent>

<artifactId>queue-omod</artifactId>
Expand Down Expand Up @@ -122,8 +122,8 @@
<configuration>
<includeGroupIds>${project.parent.groupId}</includeGroupIds>
<includeArtifactIds>${project.parent.artifactId}-api</includeArtifactIds>
<excludeTransitive>true</excludeTransitive>
<includes>**/*</includes>
<includeScope>compile</includeScope>
<includes>**\/*.xml,**\/*.properties</includes>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
Expand Down
2 changes: 1 addition & 1 deletion omod/src/main/resources/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

<activator>${project.parent.groupId}.${project.parent.artifactId}.QueueModuleActivator</activator>

<require_version>2.3.0</require_version>
<require_version>${openmrsPlatformVersion}</require_version>

<require_modules>
<require_module>org.openmrs.module.webservices.rest</require_module>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.openmrs.module.queue.web.QueueEntryMetricRestController.COUNT;
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_STATUS;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.when;

import javax.servlet.http.HttpServletRequest;

Expand All @@ -29,11 +30,14 @@
import java.util.List;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockedStatic;
import org.mockito.junit.jupiter.MockitoExtension;
import org.openmrs.Concept;
import org.openmrs.api.ConceptService;
import org.openmrs.api.LocationService;
Expand All @@ -48,11 +52,8 @@
import org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser;
import org.openmrs.module.webservices.rest.SimpleObject;
import org.openmrs.module.webservices.rest.web.RestUtil;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ Context.class, RestUtil.class })
@ExtendWith(MockitoExtension.class)
public class QueueEntryMetricRestControllerTest {

private QueueEntryMetricRestController controller;
Expand Down Expand Up @@ -81,32 +82,36 @@ public class QueueEntryMetricRestControllerTest {
@Mock
private QueueServicesWrapper queueServicesWrapper;

private MockedStatic<RestUtil> restUtil;

private MockedStatic<Context> context;

HttpServletRequest request;

Map<String, String[]> parameterMap;

ArgumentCaptor<QueueEntrySearchCriteria> queueEntryArgumentCaptor;

@Before
@BeforeEach
public void prepareMocks() {
mockStatic(RestUtil.class);
mockStatic(Context.class);
when(queueServicesWrapper.getQueueService()).thenReturn(queueService);
when(queueServicesWrapper.getQueueEntryService()).thenReturn(queueEntryService);
when(queueServicesWrapper.getQueueRoomService()).thenReturn(queueRoomService);
when(queueServicesWrapper.getRoomProviderMapService()).thenReturn(roomProviderMapService);
when(queueServicesWrapper.getConceptService()).thenReturn(conceptService);
when(queueServicesWrapper.getLocationService()).thenReturn(locationService);
when(queueServicesWrapper.getPatientService()).thenReturn(patientService);
restUtil = mockStatic(RestUtil.class);
context = mockStatic(Context.class);
lenient().when(queueServicesWrapper.getQueueService()).thenReturn(queueService);
lenient().when(queueServicesWrapper.getQueueEntryService()).thenReturn(queueEntryService);
lenient().when(queueServicesWrapper.getQueueRoomService()).thenReturn(queueRoomService);
lenient().when(queueServicesWrapper.getRoomProviderMapService()).thenReturn(roomProviderMapService);
lenient().when(queueServicesWrapper.getConceptService()).thenReturn(conceptService);
lenient().when(queueServicesWrapper.getLocationService()).thenReturn(locationService);
lenient().when(queueServicesWrapper.getPatientService()).thenReturn(patientService);

//By pass authentication
when(Context.isAuthenticated()).thenReturn(true);
context.when(Context::isAuthenticated).thenReturn(true);

QueueEntrySearchCriteriaParser searchCriteriaParser = new QueueEntrySearchCriteriaParser(queueServicesWrapper);
when(Context.getRegisteredComponents(QueueEntrySearchCriteriaParser.class))
context.when(() -> Context.getRegisteredComponents(QueueEntrySearchCriteriaParser.class))
.thenReturn(Collections.singletonList(searchCriteriaParser));

when(Context.getRegisteredComponents(QueueServicesWrapper.class))
context.when(() -> Context.getRegisteredComponents(QueueServicesWrapper.class))
.thenReturn(Collections.singletonList(queueServicesWrapper));

controller = new QueueEntryMetricRestController(searchCriteriaParser, queueServicesWrapper);
Expand All @@ -118,6 +123,12 @@ public void prepareMocks() {
when(queueEntryService.getCountOfQueueEntries(any())).thenReturn(50L);
}

@AfterEach
public void cleanup() {
restUtil.close();
context.close();
}

@Test
public void shouldRetrieveCountOfQueueEntriesByStatus() {
List<Concept> vals = Arrays.asList(new Concept(), new Concept());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,24 @@
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.hasKey;
import static org.hamcrest.Matchers.notNullValue;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.mockStatic;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import org.junit.Before;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.mockito.MockedStatic;
import org.openmrs.OpenmrsObject;
import org.openmrs.api.context.Context;
import org.openmrs.module.webservices.rest.web.RestUtil;
import org.openmrs.module.webservices.rest.web.representation.DefaultRepresentation;
import org.openmrs.module.webservices.rest.web.representation.FullRepresentation;
import org.openmrs.module.webservices.rest.web.resource.impl.DelegatingResourceDescription;
import org.openmrs.module.webservices.rest.web.resource.impl.DelegatingResourceHandler;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;

@Getter(AccessLevel.PACKAGE)
@Setter(AccessLevel.PACKAGE)
@PrepareForTest({ Context.class, RestUtil.class })
public class BaseQueueResourceTest<Q extends OpenmrsObject, O extends DelegatingResourceHandler<Q>> {

private O resource;
Expand All @@ -40,13 +39,26 @@ public class BaseQueueResourceTest<Q extends OpenmrsObject, O extends Delegating
@Setter(AccessLevel.PACKAGE)
private Q object;

@Before
@Getter(AccessLevel.PACKAGE)
@Setter(AccessLevel.PACKAGE)
private MockedStatic<RestUtil> restUtil;

@Getter(AccessLevel.PACKAGE)
@Setter(AccessLevel.PACKAGE)
private MockedStatic<Context> context;

@BeforeEach
public void prepareMocks() {
PowerMockito.mockStatic(RestUtil.class);

PowerMockito.mockStatic(Context.class);
restUtil = mockStatic(RestUtil.class);
context = mockStatic(Context.class);
//By pass authentication
when(Context.isAuthenticated()).thenReturn(true);
context.when(Context::isAuthenticated).thenReturn(true);
}

@AfterEach
public void cleanup() {
restUtil.close();
context.close();
}

public void verifyDefaultRepresentation(String... properties) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_ENDED_ON_OR_AFTER;
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_ENDED_ON_OR_BEFORE;
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_HAS_VISIT;
Expand All @@ -34,9 +38,6 @@
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_STARTED_ON_OR_BEFORE;
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_STATUS;
import static org.openmrs.module.queue.web.resources.parser.QueueEntrySearchCriteriaParser.SEARCH_PARAM_VISIT;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.when;

import javax.servlet.http.HttpServletRequest;

Expand All @@ -47,11 +48,12 @@
import java.util.Map;
import java.util.Optional;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.openmrs.Concept;
import org.openmrs.Location;
import org.openmrs.Patient;
Expand All @@ -77,11 +79,8 @@
import org.openmrs.module.webservices.rest.web.representation.DefaultRepresentation;
import org.openmrs.module.webservices.rest.web.representation.FullRepresentation;
import org.openmrs.module.webservices.rest.web.representation.RefRepresentation;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ Context.class, RestUtil.class })
@ExtendWith(MockitoExtension.class)
public class QueueEntryResourceTest extends BaseQueueResourceTest<QueueEntry, QueueEntryResource> {

private static final String QUEUE_ENTRY_UUID = "6hje567a-fca0-11e5-9e59-08002719a7";
Expand Down Expand Up @@ -122,26 +121,26 @@ public class QueueEntryResourceTest extends BaseQueueResourceTest<QueueEntry, Qu

ArgumentCaptor<QueueEntrySearchCriteria> queueEntryArgumentCaptor;

@Before
@BeforeEach
public void prepareMocks() {
mockStatic(RestUtil.class);
mockStatic(Context.class);
when(queueServicesWrapper.getQueueService()).thenReturn(queueService);
when(queueServicesWrapper.getQueueEntryService()).thenReturn(queueEntryService);
when(queueServicesWrapper.getQueueRoomService()).thenReturn(queueRoomService);
when(queueServicesWrapper.getRoomProviderMapService()).thenReturn(roomProviderMapService);
when(queueServicesWrapper.getConceptService()).thenReturn(conceptService);
when(queueServicesWrapper.getLocationService()).thenReturn(locationService);
when(queueServicesWrapper.getPatientService()).thenReturn(patientService);
setRestUtil(mockStatic(RestUtil.class));
setContext(mockStatic(Context.class));
lenient().when(queueServicesWrapper.getQueueService()).thenReturn(queueService);
lenient().when(queueServicesWrapper.getQueueEntryService()).thenReturn(queueEntryService);
lenient().when(queueServicesWrapper.getQueueRoomService()).thenReturn(queueRoomService);
lenient().when(queueServicesWrapper.getRoomProviderMapService()).thenReturn(roomProviderMapService);
lenient().when(queueServicesWrapper.getConceptService()).thenReturn(conceptService);
lenient().when(queueServicesWrapper.getLocationService()).thenReturn(locationService);
lenient().when(queueServicesWrapper.getPatientService()).thenReturn(patientService);

//By pass authentication
when(Context.isAuthenticated()).thenReturn(true);
getContext().when(Context::isAuthenticated).thenReturn(true);

when(Context.getRegisteredComponents(QueueServicesWrapper.class))
getContext().when(() -> Context.getRegisteredComponents(QueueServicesWrapper.class))
.thenReturn(Collections.singletonList(queueServicesWrapper));

QueueEntrySearchCriteriaParser searchCriteriaParser = new QueueEntrySearchCriteriaParser(queueServicesWrapper);
when(Context.getRegisteredComponents(QueueEntrySearchCriteriaParser.class))
getContext().when(() -> Context.getRegisteredComponents(QueueEntrySearchCriteriaParser.class))
.thenReturn(Collections.singletonList(searchCriteriaParser));

resource = new QueueEntryResource();
Expand All @@ -152,9 +151,9 @@ public void prepareMocks() {

requestContext = mock(RequestContext.class);
request = mock(HttpServletRequest.class);
when(requestContext.getRequest()).thenReturn(request);
lenient().when(requestContext.getRequest()).thenReturn(request);
parameterMap = new HashMap<>();
when(request.getParameterMap()).thenReturn(parameterMap);
lenient().when(request.getParameterMap()).thenReturn(parameterMap);
queueEntryArgumentCaptor = ArgumentCaptor.forClass(QueueEntrySearchCriteria.class);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,18 @@
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.Collections;
import java.util.Optional;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.openmrs.api.ConceptService;
import org.openmrs.api.LocationService;
import org.openmrs.api.PatientService;
Expand All @@ -37,9 +39,8 @@
import org.openmrs.module.webservices.rest.web.representation.DefaultRepresentation;
import org.openmrs.module.webservices.rest.web.representation.FullRepresentation;
import org.openmrs.module.webservices.rest.web.representation.RefRepresentation;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@ExtendWith(MockitoExtension.class)
public class QueueEntrySubResourceTest extends BaseQueueResourceTest<QueueEntry, QueueEntrySubResource> {

private static final String QUEUE_ENTRY_UUID = "6hje567a-fca0-11e5-9e59-08002719a7";
Expand Down Expand Up @@ -70,20 +71,21 @@ public class QueueEntrySubResourceTest extends BaseQueueResourceTest<QueueEntry,

private QueueEntry queueEntry;

@Before
@BeforeEach
public void setup() {
this.cleanup();
this.prepareMocks();
queueEntry = mock(QueueEntry.class);
when(queueServicesWrapper.getQueueService()).thenReturn(queueService);
when(queueServicesWrapper.getQueueEntryService()).thenReturn(queueEntryService);
when(queueServicesWrapper.getQueueRoomService()).thenReturn(queueRoomService);
when(queueServicesWrapper.getRoomProviderMapService()).thenReturn(roomProviderMapService);
when(queueServicesWrapper.getConceptService()).thenReturn(conceptService);
when(queueServicesWrapper.getLocationService()).thenReturn(locationService);
when(queueServicesWrapper.getPatientService()).thenReturn(patientService);
lenient().when(queueServicesWrapper.getQueueService()).thenReturn(queueService);
lenient().when(queueServicesWrapper.getQueueEntryService()).thenReturn(queueEntryService);
lenient().when(queueServicesWrapper.getQueueRoomService()).thenReturn(queueRoomService);
lenient().when(queueServicesWrapper.getRoomProviderMapService()).thenReturn(roomProviderMapService);
lenient().when(queueServicesWrapper.getConceptService()).thenReturn(conceptService);
lenient().when(queueServicesWrapper.getLocationService()).thenReturn(locationService);
lenient().when(queueServicesWrapper.getPatientService()).thenReturn(patientService);

when(queueEntry.getUuid()).thenReturn(QUEUE_ENTRY_UUID);
when(Context.getRegisteredComponents(QueueServicesWrapper.class))
lenient().when(queueEntry.getUuid()).thenReturn(QUEUE_ENTRY_UUID);
getContext().when(() -> Context.getRegisteredComponents(QueueServicesWrapper.class))
.thenReturn(Collections.singletonList(queueServicesWrapper));

this.setResource(new QueueEntrySubResource());
Expand Down
Loading