Skip to content

Commit d37011a

Browse files
REPORT-906: Add pagination support to ReportRequest read methods (#251)
Also related to O3-1494 --------- Co-authored-by: druchniewicz <[email protected]>
1 parent bd25e82 commit d37011a

File tree

14 files changed

+386
-90
lines changed

14 files changed

+386
-90
lines changed

api-tests/src/test/java/org/openmrs/module/reporting/report/service/ReportServiceTest.java

Lines changed: 108 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,17 @@
4242

4343
import java.io.File;
4444
import java.text.SimpleDateFormat;
45+
import java.util.ArrayList;
4546
import java.util.Calendar;
4647
import java.util.Date;
4748
import java.util.List;
4849
import java.util.Properties;
4950
import java.util.UUID;
5051

52+
import static org.junit.Assert.assertEquals;
5153
import static org.junit.Assert.assertNotNull;
5254
import static org.junit.Assert.assertNull;
55+
import static org.junit.Assert.assertTrue;
5356

5457
public class ReportServiceTest extends BaseModuleContextSensitiveTest {
5558

@@ -521,4 +524,108 @@ public void purgeReportDesignsForReportDefinition_shouldDeleteAllAssociatedRepor
521524
assertNull(rs.getReportDesignByUuid("d7a82b63-1066-4c1d-9b43-b405851fc467"));
522525
assertNull(rs.getReportDesignByUuid("e7a82b63-1066-4c1d-9b43-b405851fc467"));
523526
}
524-
}
527+
528+
@Test
529+
public void getReportRequests_shouldReturnCorrectReportRequests() {
530+
final ReportService rs = Context.getService(ReportService.class);
531+
final List<ReportRequest> reportRequests = rs.getReportRequests(null, null, null, 0,2);
532+
533+
assertEquals(2, reportRequests.size());
534+
535+
final List<String> resultUuids = mapToReportRequestUuids(reportRequests);
536+
assertTrue(resultUuids.contains("fce15a1b-4618-4f65-bfe9-8bb60a85c110"));
537+
assertTrue(resultUuids.contains("b0a82b63-1066-4c1d-9b43-b405851fc467"));
538+
}
539+
540+
@Test
541+
public void getReportRequestsCount_shouldReturnTotalCount() {
542+
final ReportService rs = Context.getService(ReportService.class);
543+
final long totalCount = rs.getReportRequestsCount(null, null, null);
544+
545+
assertEquals(4, totalCount);
546+
}
547+
548+
@Test
549+
public void getReportRequests_shouldReturnCorrectReportRequestsForGivenReportDefinition() {
550+
final ReportService rs = Context.getService(ReportService.class);
551+
final ReportDefinition testReportDefinition =
552+
rs.getReportDesignByUuid("d7a82b63-1066-4c1d-9b43-b405851fc467").getReportDefinition();
553+
final List<ReportRequest> reportRequests = rs.getReportRequests(testReportDefinition, null, null, 0,2);
554+
555+
assertEquals(2, reportRequests.size());
556+
557+
final List<String> resultUuids = mapToReportRequestUuids(reportRequests);
558+
assertTrue(resultUuids.contains("h8a82b63-1066-4c1d-9b43-b405851fc467"));
559+
assertTrue(resultUuids.contains("b0a82b63-1066-4c1d-9b43-b405851fc467"));
560+
}
561+
562+
@Test
563+
public void getReportRequestsCount_shouldReturnCorrectTotalCountForReportDefinitionFilter() {
564+
final ReportService rs = Context.getService(ReportService.class);
565+
final ReportDefinition testReportDefinition =
566+
rs.getReportDesignByUuid("d7a82b63-1066-4c1d-9b43-b405851fc467").getReportDefinition();
567+
final long totalCount = rs.getReportRequestsCount(testReportDefinition, null, null);
568+
569+
assertEquals(2, totalCount);
570+
}
571+
572+
@Test
573+
public void getReportRequests_shouldReturnCorrectReportRequestsForRequestedWithinDates() {
574+
final ReportService rs = Context.getService(ReportService.class);
575+
final Date from = newDate(2013, Calendar.JANUARY, 21, 14, 8, 48);
576+
final Date to = newDate(2013, Calendar.JANUARY, 21, 14, 8, 49);
577+
final List<ReportRequest> reportRequests = rs.getReportRequests(null, from, to, 0,2);
578+
579+
assertEquals(2, reportRequests.size());
580+
581+
final List<String> resultUuids = mapToReportRequestUuids(reportRequests);
582+
assertTrue(resultUuids.contains("b0a82b63-1066-4c1d-9b43-b405851fc467"));
583+
assertTrue(resultUuids.contains("d9a82b63-1066-4c1d-9b43-b405851fc467"));
584+
}
585+
586+
@Test
587+
public void getReportRequestsCount_shouldReturnCorrectTotalCountForRequestedWithinDatesFilter() {
588+
final ReportService rs = Context.getService(ReportService.class);
589+
final Date from = newDate(2013, Calendar.JANUARY, 21, 14, 8, 48);
590+
final Date to = newDate(2013, Calendar.JANUARY, 21, 14, 8, 49);
591+
final long totalCount = rs.getReportRequestsCount(null, from, to);
592+
593+
assertEquals(2, totalCount);
594+
}
595+
596+
@Test
597+
public void getReportRequests_shouldReturnAPartialPageOfReportRequests() {
598+
final ReportService rs = Context.getService(ReportService.class);
599+
final List<ReportRequest> reportRequests = rs.getReportRequests(null, null, null, 0, 2, ReportRequest.Status.FAILED);
600+
601+
assertEquals(1, reportRequests.size());
602+
603+
final List<String> resultUuids = mapToReportRequestUuids(reportRequests);
604+
assertTrue(resultUuids.contains("fce15a1b-4618-4f65-bfe9-8bb60a85c110"));
605+
}
606+
607+
@Test
608+
public void getReportRequestsCount_shouldReturnCorrectTotalCountForStatusFilter() {
609+
final ReportService rs = Context.getService(ReportService.class);
610+
final long totalCount = rs.getReportRequestsCount(null, null, null, ReportRequest.Status.FAILED);
611+
612+
assertEquals(1, totalCount);
613+
}
614+
615+
private List<String> mapToReportRequestUuids(List<ReportRequest> reportRequests) {
616+
List<String> reportRequestUuids = new ArrayList<String>();
617+
618+
for (ReportRequest reportRequest : reportRequests) {
619+
reportRequestUuids.add(reportRequest.getUuid());
620+
}
621+
622+
return reportRequestUuids;
623+
}
624+
625+
private Date newDate(int year, int month, int day, int hour, int minute, int second) {
626+
final Calendar cal = Calendar.getInstance();
627+
cal.clear();
628+
cal.set(year, month, day, hour, minute, second);
629+
return cal.getTime();
630+
}
631+
}

api-tests/src/test/resources/org/openmrs/module/reporting/include/ReportTestDataset-openmrs-1.10.xml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -523,11 +523,21 @@
523523
properties="#Mon Jan 21 14:08:47 CET 2013" creator="1"
524524
date_created="2013-01-21 14:08:47" retired="0" />
525525

526-
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
527-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
528-
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
529-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
530-
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
531-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
532-
533-
</dataset>
526+
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467"
527+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
528+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
529+
request_datetime="2013-01-21 14:08:47" />
530+
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467"
531+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
532+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
533+
request_datetime="2013-01-21 14:08:48" />
534+
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467"
535+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
536+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
537+
request_datetime="2013-01-21 14:08:49" />
538+
<reporting_report_request id="4" uuid="fce15a1b-4618-4f65-bfe9-8bb60a85c110"
539+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873925"
540+
process_automatically="1" priority="LOW" status="FAILED" requested_by="1"
541+
request_datetime="2013-01-21 14:08:50" />
542+
543+
</dataset>

api-tests/src/test/resources/org/openmrs/module/reporting/include/ReportTestDataset-openmrs-1.11.xml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -545,11 +545,21 @@
545545
properties="#Mon Jan 21 14:08:47 CET 2013" creator="1"
546546
date_created="2013-01-21 14:08:47" retired="0" />
547547

548-
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
549-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
550-
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
551-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
552-
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
553-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
548+
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467"
549+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
550+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
551+
request_datetime="2013-01-21 14:08:47" />
552+
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467"
553+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
554+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
555+
request_datetime="2013-01-21 14:08:48" />
556+
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467"
557+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
558+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
559+
request_datetime="2013-01-21 14:08:49" />
560+
<reporting_report_request id="4" uuid="fce15a1b-4618-4f65-bfe9-8bb60a85c110"
561+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873925"
562+
process_automatically="1" priority="LOW" status="FAILED" requested_by="1"
563+
request_datetime="2013-01-21 14:08:50" />
554564

555-
</dataset>
565+
</dataset>

api-tests/src/test/resources/org/openmrs/module/reporting/include/ReportTestDataset-openmrs-1.12.xml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -545,11 +545,21 @@
545545
properties="#Mon Jan 21 14:08:47 CET 2013" creator="1"
546546
date_created="2013-01-21 14:08:47" retired="0" />
547547

548-
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
549-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
550-
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
551-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
552-
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
553-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
548+
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467"
549+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
550+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
551+
request_datetime="2013-01-21 14:08:47" />
552+
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467"
553+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
554+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
555+
request_datetime="2013-01-21 14:08:48" />
556+
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467"
557+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
558+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
559+
request_datetime="2013-01-21 14:08:49" />
560+
<reporting_report_request id="4" uuid="fce15a1b-4618-4f65-bfe9-8bb60a85c110"
561+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873925"
562+
process_automatically="1" priority="LOW" status="FAILED" requested_by="1"
563+
request_datetime="2013-01-21 14:08:50" />
554564

555-
</dataset>
565+
</dataset>

api-tests/src/test/resources/org/openmrs/module/reporting/include/ReportTestDataset-openmrs-1.9.xml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -529,11 +529,21 @@
529529
properties="#Mon Jan 21 14:08:47 CET 2013" creator="1"
530530
date_created="2013-01-21 14:08:47" retired="0" />
531531

532-
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
533-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
534-
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
535-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
536-
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
537-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
532+
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467"
533+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
534+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
535+
request_datetime="2013-01-21 14:08:47" />
536+
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467"
537+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
538+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
539+
request_datetime="2013-01-21 14:08:48" />
540+
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467"
541+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
542+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
543+
request_datetime="2013-01-21 14:08:49" />
544+
<reporting_report_request id="4" uuid="fce15a1b-4618-4f65-bfe9-8bb60a85c110"
545+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873925"
546+
process_automatically="1" priority="LOW" status="FAILED" requested_by="1"
547+
request_datetime="2013-01-21 14:08:50" />
538548

539549
</dataset>

api-tests/src/test/resources/org/openmrs/module/reporting/include/ReportTestDataset-openmrs-2.0.xml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -553,11 +553,21 @@
553553
properties="#Mon Jan 21 14:08:47 CET 2013" creator="1"
554554
date_created="2013-01-21 14:08:47" retired="0" />
555555

556-
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
557-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
558-
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
559-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
560-
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
561-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
562-
563-
</dataset>
556+
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467"
557+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
558+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
559+
request_datetime="2013-01-21 14:08:47" />
560+
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467"
561+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
562+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
563+
request_datetime="2013-01-21 14:08:48" />
564+
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467"
565+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
566+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
567+
request_datetime="2013-01-21 14:08:49" />
568+
<reporting_report_request id="4" uuid="fce15a1b-4618-4f65-bfe9-8bb60a85c110"
569+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873925"
570+
process_automatically="1" priority="LOW" status="FAILED" requested_by="1"
571+
request_datetime="2013-01-21 14:08:50" />
572+
573+
</dataset>

api-tests/src/test/resources/org/openmrs/module/reporting/include/ReportTestDataset-openmrs-2.1.xml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -553,12 +553,22 @@
553553
properties="#Mon Jan 21 14:08:47 CET 2013" creator="1"
554554
date_created="2013-01-21 14:08:47" retired="0" />
555555

556-
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
557-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
558-
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
559-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
560-
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467" report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
561-
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1" request_datetime="2013-01-21 14:08:47" />
562-
563-
564-
</dataset>
556+
<reporting_report_request id="1" uuid="h8a82b63-1066-4c1d-9b43-b405851fc467"
557+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
558+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
559+
request_datetime="2013-01-21 14:08:47" />
560+
<reporting_report_request id="2" uuid="d9a82b63-1066-4c1d-9b43-b405851fc467"
561+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873926"
562+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
563+
request_datetime="2013-01-21 14:08:48" />
564+
<reporting_report_request id="3" uuid="b0a82b63-1066-4c1d-9b43-b405851fc467"
565+
report_definition_uuid="c11f5354-9567-4cc5-b3ef-163e28873926"
566+
process_automatically="1" priority="LOW" status="REQUESTED" requested_by="1"
567+
request_datetime="2013-01-21 14:08:49" />
568+
<reporting_report_request id="4" uuid="fce15a1b-4618-4f65-bfe9-8bb60a85c110"
569+
report_definition_uuid="d11f5354-9567-4cc5-b3ef-163e28873925"
570+
process_automatically="1" priority="LOW" status="FAILED" requested_by="1"
571+
request_datetime="2013-01-21 14:08:50" />
572+
573+
574+
</dataset>

0 commit comments

Comments
 (0)