From be60f595b0664acdb568a04cb9ae68c8fc72dc6b Mon Sep 17 00:00:00 2001 From: Dillan Cooke Date: Mon, 4 Mar 2024 10:53:54 -0500 Subject: [PATCH] [GLT-4100] fixed pending release approval and release filters --- changes/fix_allDeliverableFilters.md | 1 + .../fix_deliverableReleaseApprovalFilters.md | 1 + .../service/filtering/PendingState.java | 12 +- .../java/ca/on/oicr/gsi/dimsum/MockCase.java | 44 ++++- .../service/filtering/CaseFilterTest.java | 186 ++++++++++++++---- 5 files changed, 199 insertions(+), 45 deletions(-) create mode 100644 changes/fix_allDeliverableFilters.md create mode 100644 changes/fix_deliverableReleaseApprovalFilters.md diff --git a/changes/fix_allDeliverableFilters.md b/changes/fix_allDeliverableFilters.md new file mode 100644 index 00000000..fa4a0078 --- /dev/null +++ b/changes/fix_allDeliverableFilters.md @@ -0,0 +1 @@ +The 'Pending: Release Approval' and 'Pending: Release' filters (without a deliverable type specified) were not including all of the appropriate cases diff --git a/changes/fix_deliverableReleaseApprovalFilters.md b/changes/fix_deliverableReleaseApprovalFilters.md new file mode 100644 index 00000000..3901cf8d --- /dev/null +++ b/changes/fix_deliverableReleaseApprovalFilters.md @@ -0,0 +1 @@ +The "Pending: Release Approval - Data Release" and "Pending: Release Approval - Clinical Report" filters were not including stopped cases diff --git a/src/main/java/ca/on/oicr/gsi/dimsum/service/filtering/PendingState.java b/src/main/java/ca/on/oicr/gsi/dimsum/service/filtering/PendingState.java index 313747ef..6819ff88 100644 --- a/src/main/java/ca/on/oicr/gsi/dimsum/service/filtering/PendingState.java +++ b/src/main/java/ca/on/oicr/gsi/dimsum/service/filtering/PendingState.java @@ -258,11 +258,12 @@ public boolean qualifyCase(Case kase) { @Override public boolean qualifyCase(Case kase) { - return (kase.isStopped() || CompletedGate.ANALYSIS_REVIEW.qualifyCase(kase)) - && !CompletedGate.RELEASE_APPROVAL.qualifyCase(kase); + return (kase.isStopped() && !CompletedGate.RELEASE_APPROVAL.qualifyCase(kase)) + || RELEASE_APPROVAL_DATA_RELEASE.qualifyCase(kase) + || RELEASE_APPROVAL_CLINICAL_REPORT.qualifyCase(kase); } }, - RELEASE_APPROVAL_DATA_RELEASE("Release Approval - Data Release", true) { + RELEASE_APPROVAL_DATA_RELEASE("Release Approval - Data Release", false) { @Override public boolean qualifyCase(Case kase) { return (kase.isStopped() || CompletedGate.ANALYSIS_REVIEW_DATA_RELEASE.qualifyCase(kase)) @@ -270,7 +271,7 @@ public boolean qualifyCase(Case kase) { && !CompletedGate.RELEASE_APPROVAL_DATA_RELEASE.qualifyCase(kase); } }, - RELEASE_APPROVAL_CLINICAL_REPORT("Release Approval - Clinical Report", true) { + RELEASE_APPROVAL_CLINICAL_REPORT("Release Approval - Clinical Report", false) { @Override public boolean qualifyCase(Case kase) { return (kase.isStopped() || CompletedGate.ANALYSIS_REVIEW_CLINICAL_REPORT.qualifyCase(kase)) @@ -281,8 +282,7 @@ public boolean qualifyCase(Case kase) { RELEASE("Release", false) { @Override public boolean qualifyCase(Case kase) { - return CompletedGate.RELEASE_APPROVAL.qualifyCase(kase) - && !CompletedGate.RELEASE.qualifyCase(kase); + return RELEASE_DATA_RELEASE.qualifyCase(kase) || RELEASE_CLINICAL_REPORT.qualifyCase(kase); } }, RELEASE_DATA_RELEASE("Release - Data Release", false) { diff --git a/src/test/java/ca/on/oicr/gsi/dimsum/MockCase.java b/src/test/java/ca/on/oicr/gsi/dimsum/MockCase.java index a49085f7..22bf921e 100644 --- a/src/test/java/ca/on/oicr/gsi/dimsum/MockCase.java +++ b/src/test/java/ca/on/oicr/gsi/dimsum/MockCase.java @@ -31,7 +31,8 @@ public static List getCases() { makeCase6(), makeCase7(), makeCase8(), makeCase9(), makeCase10(), makeCase11(), makeCase12(), makeCase13(), makeCase14(), makeCase15(), makeCase16(), makeCase17(), makeCase18(), makeCase19(), makeCase20(), makeCase21(), makeCase22(), makeCase23(), - makeCase24(), makeCase25(), makeCase26(), makeCase27(), makeCase28()); + makeCase24(), makeCase25(), makeCase26(), makeCase27(), makeCase28(), makeCase29(), + makeCase30(), makeCase31()); private static Case makeCase0() { final int caseNumber = 0; @@ -290,8 +291,11 @@ private static Case makeCase22() { } private static Case makeCase23() { + // Case is stopped final int caseNumber = 23; Case kase = makeCase("PRO23_001", "Single Test", "PRO23", "REQ23", caseNumber); + when(kase.isStopped()).thenReturn(true); + when(kase.getRequisition().isStopped()).thenReturn(true); addTest(kase, caseNumber, 1, "Test", "WG", false, false, false, false); return kase; } @@ -357,6 +361,43 @@ private static Case makeCase28() { return kase; } + private static Case makeCase29() { + final int caseNumber = 29; + // Case is pending release approval - data release, and pending release - clinical report + Case kase = makeCase("PRO29_0001", "Single Test", "PRO29", "REQ29", caseNumber); + addTest(kase, caseNumber, 1, "Test", "WG", true, true, true, true); + markAnalysisReview(kase.getDeliverables().get(0), true); + CaseDeliverable deliverable = + addDeliverable(kase, DeliverableType.CLINICAL_REPORT, "Clinical Report"); + markAnalysisReview(deliverable, true); + markReleaseApproval(deliverable, true); + return kase; + } + + private static Case makeCase30() { + final int caseNumber = 30; + // Case is pending release approval - data release, and pending analysis review - clinical + // report + Case kase = makeCase("PRO30_0001", "Single Test", "PRO30", "REQ30", caseNumber); + addTest(kase, caseNumber, 1, "Test", "WG", true, true, true, true); + markAnalysisReview(kase.getDeliverables().get(0), true); + addDeliverable(kase, DeliverableType.CLINICAL_REPORT, "Clinical Report"); + return kase; + } + + private static Case makeCase31() { + final int caseNumber = 31; + // Case is completed release - clinical report, but pending analysis review - data release + Case kase = makeCase("PRO31_0001", "Single Test", "PRO31", "REQ31", caseNumber); + addTest(kase, caseNumber, 1, "Test", "WG", true, true, true, true); + CaseDeliverable deliverable = + addDeliverable(kase, DeliverableType.CLINICAL_REPORT, "Clinical Report"); + markAnalysisReview(deliverable, true); + markReleaseApproval(deliverable, true); + markRelease(deliverable.getReleases().get(0), true); + return kase; + } + private static Case makeCase(String donorName, String assayName, String projectName, String requisitionName, int caseNumber) { Case kase = mock(Case.class); @@ -408,7 +449,6 @@ private static Project makeProject(String name) { private static Requisition addRequisition(Case kase, int caseNumber, String name) { Requisition requisition = mock(Requisition.class); when(requisition.getId()).thenReturn(Long.valueOf(caseNumber)); - when(requisition.isStopped()).thenReturn(caseNumber == 23); when(requisition.isPaused()).thenReturn(caseNumber == 24); when(requisition.getName()).thenReturn(name); when(kase.getRequisition()).thenReturn(requisition); diff --git a/src/test/java/ca/on/oicr/gsi/dimsum/service/filtering/CaseFilterTest.java b/src/test/java/ca/on/oicr/gsi/dimsum/service/filtering/CaseFilterTest.java index 8003943f..13b5f121 100644 --- a/src/test/java/ca/on/oicr/gsi/dimsum/service/filtering/CaseFilterTest.java +++ b/src/test/java/ca/on/oicr/gsi/dimsum/service/filtering/CaseFilterTest.java @@ -14,7 +14,6 @@ public class CaseFilterTest { - private static List cases = MockCase.getCases(); @org.junit.jupiter.api.Test @@ -443,14 +442,14 @@ public void testPendingFullDepthDataReviewSampleFilter() { public void testPendingAnalysisReviewFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.ANALYSIS_REVIEW.getLabel()); - testFilterCases(filter, Arrays.asList(4, 25)); + testFilterCases(filter, Arrays.asList(4, 25, 30, 31)); } @org.junit.jupiter.api.Test public void testPendingAnalysisReviewDataReleaseFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.ANALYSIS_REVIEW_DATA_RELEASE.getLabel()); - testFilterCases(filter, Arrays.asList(4)); + testFilterCases(filter, Arrays.asList(4, 31)); } @org.junit.jupiter.api.Test @@ -458,14 +457,14 @@ public void testPendingAnalysisReviewClinicalReportFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.ANALYSIS_REVIEW_CLINICAL_REPORT.getLabel()); - testFilterCases(filter, Arrays.asList(25)); + testFilterCases(filter, Arrays.asList(25, 30)); } @org.junit.jupiter.api.Test public void testPendingReleaseApprovalFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.RELEASE_APPROVAL.getLabel()); - testFilterCases(filter, Arrays.asList(5, 26)); + testFilterCases(filter, Arrays.asList(5, 23, 26, 29, 30)); } @org.junit.jupiter.api.Test @@ -473,7 +472,7 @@ public void testPendingReleaseApprovalDataReleaseFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.RELEASE_APPROVAL_DATA_RELEASE.getLabel()); - testFilterCases(filter, Arrays.asList(5)); + testFilterCases(filter, Arrays.asList(5, 23, 29, 30)); } @org.junit.jupiter.api.Test @@ -487,7 +486,7 @@ public void testPendingReleaseApprovalClinicalReportFilter() { @org.junit.jupiter.api.Test public void testPendingReleaseFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.RELEASE.getLabel()); - testFilterCases(filter, Arrays.asList(6, 27)); + testFilterCases(filter, Arrays.asList(6, 27, 29)); } @org.junit.jupiter.api.Test @@ -501,7 +500,7 @@ public void testPendingReleaseDataReleaseFilter() { public void testPendingReleaseClinicalReportFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PENDING, PendingState.RELEASE_CLINICAL_REPORT.getLabel()); - testFilterCases(filter, Arrays.asList(27)); + testFilterCases(filter, Arrays.asList(27, 29)); } @org.junit.jupiter.api.Test @@ -509,11 +508,11 @@ public void testCompletedReceiptFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.RECEIPT.getLabel()); testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28)); + 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31)); } @org.junit.jupiter.api.Test - public void testInCompleteReceiptFilter() { + public void testIncompleteReceiptFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, CompletedGate.RECEIPT.getLabel()); testFilterCases(filter, Arrays.asList(22)); @@ -559,7 +558,10 @@ public void testCompletedReceiptTestFilter() { makeTestGroupId(25, 1), makeTestGroupId(26, 1), makeTestGroupId(27, 1), - makeTestGroupId(28, 1))); + makeTestGroupId(28, 1), + makeTestGroupId(29, 1), + makeTestGroupId(30, 1), + makeTestGroupId(31, 1))); } @org.junit.jupiter.api.Test @@ -596,7 +598,10 @@ public void testCompletedReceiptSampleFilter() { makeSampleId(25, 0, MetricCategory.RECEIPT, 1), makeSampleId(26, 0, MetricCategory.RECEIPT, 1), makeSampleId(27, 0, MetricCategory.RECEIPT, 1), - makeSampleId(28, 0, MetricCategory.RECEIPT, 1))); + makeSampleId(28, 0, MetricCategory.RECEIPT, 1), + makeSampleId(29, 0, MetricCategory.RECEIPT, 1), + makeSampleId(30, 0, MetricCategory.RECEIPT, 1), + makeSampleId(31, 0, MetricCategory.RECEIPT, 1))); } @@ -605,7 +610,7 @@ public void testCompletedExtractionFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.EXTRACTION.getLabel()); testFilterCases(filter, Arrays.asList(1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 25, 26, 27, 28)); + 17, 18, 19, 20, 21, 25, 26, 27, 28, 29, 30, 31)); } @org.junit.jupiter.api.Test @@ -648,7 +653,10 @@ public void testCompletedExtractionTestFilter() { makeTestGroupId(25, 1), makeTestGroupId(26, 1), makeTestGroupId(27, 1), - makeTestGroupId(28, 1))); + makeTestGroupId(28, 1), + makeTestGroupId(29, 1), + makeTestGroupId(30, 1), + makeTestGroupId(31, 1))); } @org.junit.jupiter.api.Test @@ -684,7 +692,10 @@ public void testCompletedExtractionSampleFilter() { makeSampleId(25, 1, MetricCategory.EXTRACTION, 1), makeSampleId(26, 1, MetricCategory.EXTRACTION, 1), makeSampleId(27, 1, MetricCategory.EXTRACTION, 1), - makeSampleId(28, 1, MetricCategory.EXTRACTION, 1))); + makeSampleId(28, 1, MetricCategory.EXTRACTION, 1), + makeSampleId(29, 1, MetricCategory.EXTRACTION, 1), + makeSampleId(30, 1, MetricCategory.EXTRACTION, 1), + makeSampleId(31, 1, MetricCategory.EXTRACTION, 1))); } @org.junit.jupiter.api.Test @@ -692,7 +703,7 @@ public void testCompletedLibraryPrepFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.LIBRARY_PREPARATION.getLabel()); testFilterCases(filter, Arrays.asList(2, 3, 4, 5, 6, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 21, 25, 26, 27, 28)); + 17, 18, 19, 21, 25, 26, 27, 28, 29, 30, 31)); } @org.junit.jupiter.api.Test @@ -729,7 +740,10 @@ public void testCompletedLibraryPrepTestFilter() { makeTestGroupId(25, 1), makeTestGroupId(26, 1), makeTestGroupId(27, 1), - makeTestGroupId(28, 1))); + makeTestGroupId(28, 1), + makeTestGroupId(29, 1), + makeTestGroupId(30, 1), + makeTestGroupId(31, 1))); } @org.junit.jupiter.api.Test @@ -759,7 +773,10 @@ public void testCompletedLibraryPrepSampleFilter() { makeSampleId(25, 1, MetricCategory.LIBRARY_PREP, 1), makeSampleId(26, 1, MetricCategory.LIBRARY_PREP, 1), makeSampleId(27, 1, MetricCategory.LIBRARY_PREP, 1), - makeSampleId(28, 1, MetricCategory.LIBRARY_PREP, 1))); + makeSampleId(28, 1, MetricCategory.LIBRARY_PREP, 1), + makeSampleId(29, 1, MetricCategory.LIBRARY_PREP, 1), + makeSampleId(30, 1, MetricCategory.LIBRARY_PREP, 1), + makeSampleId(31, 1, MetricCategory.LIBRARY_PREP, 1))); } @org.junit.jupiter.api.Test @@ -767,7 +784,7 @@ public void testCompletedLibraryQualFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.LIBRARY_QUALIFICATION.getLabel()); - testFilterCases(filter, Arrays.asList(3, 4, 5, 6, 16, 17, 18, 19, 25, 26, 27, 28)); + testFilterCases(filter, Arrays.asList(3, 4, 5, 6, 16, 17, 18, 19, 25, 26, 27, 28, 29, 30, 31)); } @org.junit.jupiter.api.Test @@ -798,7 +815,10 @@ public void testCompletedLibraryQualTestFilter() { makeTestGroupId(25, 1), makeTestGroupId(26, 1), makeTestGroupId(27, 1), - makeTestGroupId(28, 1))); + makeTestGroupId(28, 1), + makeTestGroupId(29, 1), + makeTestGroupId(30, 1), + makeTestGroupId(31, 1))); } @org.junit.jupiter.api.Test @@ -820,7 +840,10 @@ public void testCompletedLibraryQualSampleFilter() { makeSampleId(25, 1, MetricCategory.LIBRARY_QUALIFICATION, 1), makeSampleId(26, 1, MetricCategory.LIBRARY_QUALIFICATION, 1), makeSampleId(27, 1, MetricCategory.LIBRARY_QUALIFICATION, 1), - makeSampleId(28, 1, MetricCategory.LIBRARY_QUALIFICATION, 1))); + makeSampleId(28, 1, MetricCategory.LIBRARY_QUALIFICATION, 1), + makeSampleId(29, 1, MetricCategory.LIBRARY_QUALIFICATION, 1), + makeSampleId(30, 1, MetricCategory.LIBRARY_QUALIFICATION, 1), + makeSampleId(31, 1, MetricCategory.LIBRARY_QUALIFICATION, 1))); } @org.junit.jupiter.api.Test @@ -828,7 +851,7 @@ public void testCompletedFullDepthFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.FULL_DEPTH_SEQUENCING.getLabel()); - testFilterCases(filter, Arrays.asList(4, 5, 6, 25, 26, 27, 28)); + testFilterCases(filter, Arrays.asList(4, 5, 6, 25, 26, 27, 28, 29, 30, 31)); } @org.junit.jupiter.api.Test @@ -853,7 +876,10 @@ public void testCompletedFullDepthTestFilter() { makeTestGroupId(25, 1), makeTestGroupId(26, 1), makeTestGroupId(27, 1), - makeTestGroupId(28, 1))); + makeTestGroupId(28, 1), + makeTestGroupId(29, 1), + makeTestGroupId(30, 1), + makeTestGroupId(31, 1))); } @org.junit.jupiter.api.Test @@ -869,14 +895,17 @@ public void testCompletedFullDepthSampleFilter() { makeSampleId(25, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1), makeSampleId(26, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1), makeSampleId(27, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1), - makeSampleId(28, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1))); + makeSampleId(28, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1), + makeSampleId(29, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1), + makeSampleId(30, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1), + makeSampleId(31, 1, MetricCategory.FULL_DEPTH_SEQUENCING, 1))); } @org.junit.jupiter.api.Test public void testCompletedAnalysisReviewFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.ANALYSIS_REVIEW.getLabel()); - testFilterCases(filter, Arrays.asList(5, 6, 26, 27, 28)); + testFilterCases(filter, Arrays.asList(5, 6, 26, 27, 28, 29)); } @org.junit.jupiter.api.Test @@ -884,14 +913,43 @@ public void testIncompleteAnalysisReviewFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, CompletedGate.ANALYSIS_REVIEW.getLabel()); testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25)); + 18, 19, 20, 21, 22, 23, 24, 25, 30, 31)); } @org.junit.jupiter.api.Test - public void testCompletedReleaseApprovalFilter() { + public void testCompletedAnalysisReviewDataReleaseFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, - CompletedGate.RELEASE_APPROVAL.getLabel()); + CompletedGate.ANALYSIS_REVIEW_DATA_RELEASE.getLabel()); + testFilterCases(filter, Arrays.asList(5, 6, 25, 26, 27, 28, 29, 30)); + } + + @org.junit.jupiter.api.Test + public void testIncompleteAnalysisReviewDataReleaseFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, + CompletedGate.ANALYSIS_REVIEW_DATA_RELEASE.getLabel()); + testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 31)); + } + + @org.junit.jupiter.api.Test + public void testCompletedAnalysisReviewClinicalReportFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, + CompletedGate.ANALYSIS_REVIEW_CLINICAL_REPORT.getLabel()); + testFilterCases(filter, Arrays.asList(26, 27, 29, 31)); + } + + @org.junit.jupiter.api.Test + public void testIncompleteAnalysisReviewClinicalReportFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, + CompletedGate.ANALYSIS_REVIEW_CLINICAL_REPORT.getLabel()); + testFilterCases(filter, Arrays.asList(25, 30)); + } + + @org.junit.jupiter.api.Test + public void testCompletedReleaseApprovalFilter() { + CaseFilter filter = + new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.RELEASE_APPROVAL.getLabel()); testFilterCases(filter, Arrays.asList(6, 27, 28)); } @@ -900,24 +958,78 @@ public void testIncompleteReleaseApprovalFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, CompletedGate.RELEASE_APPROVAL.getLabel()); testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26)); + 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31)); + } + + @org.junit.jupiter.api.Test + public void testCompletedReleaseApprovalDataReleaseFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, + CompletedGate.RELEASE_APPROVAL_DATA_RELEASE.getLabel()); + testFilterCases(filter, Arrays.asList(6, 25, 26, 27, 28)); + } + + @org.junit.jupiter.api.Test + public void testIncompleteReleaseApprovalDataReleaseFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, + CompletedGate.RELEASE_APPROVAL_DATA_RELEASE.getLabel()); + testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 29, 30, 31)); + } + + @org.junit.jupiter.api.Test + public void testCompletedReleaseApprovalClinicalReportFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, + CompletedGate.RELEASE_APPROVAL_CLINICAL_REPORT.getLabel()); + testFilterCases(filter, Arrays.asList(27, 29, 31)); + } + + @org.junit.jupiter.api.Test + public void testIncompleteReleaseApprovalClinicalReportFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, + CompletedGate.RELEASE_APPROVAL_CLINICAL_REPORT.getLabel()); + testFilterCases(filter, Arrays.asList(25, 26, 30)); } @org.junit.jupiter.api.Test public void testCompletedReleaseFilter() { - CaseFilter filter = - new CaseFilter(CaseFilterKey.COMPLETED, - CompletedGate.RELEASE.getLabel()); + CaseFilter filter = new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.RELEASE.getLabel()); testFilterCases(filter, Collections.singletonList(28)); } @org.junit.jupiter.api.Test public void testIncompletedReleaseFilter() { + CaseFilter filter = new CaseFilter(CaseFilterKey.INCOMPLETE, CompletedGate.RELEASE.getLabel()); + testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31)); + } + + @org.junit.jupiter.api.Test + public void testCompletedReleaseDataReleaseFilter() { CaseFilter filter = - new CaseFilter(CaseFilterKey.INCOMPLETE, - CompletedGate.RELEASE.getLabel()); + new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.RELEASE_DATA_RELEASE.getLabel()); + testFilterCases(filter, Arrays.asList(25, 26, 27, 28)); + } + + @org.junit.jupiter.api.Test + public void testIncompletedReleaseDataReleaseFilter() { + CaseFilter filter = + new CaseFilter(CaseFilterKey.INCOMPLETE, CompletedGate.RELEASE_DATA_RELEASE.getLabel()); testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)); + 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31)); + } + + @org.junit.jupiter.api.Test + public void testCompletedReleaseClinicalReportFilter() { + CaseFilter filter = + new CaseFilter(CaseFilterKey.COMPLETED, CompletedGate.RELEASE_CLINICAL_REPORT.getLabel()); + testFilterCases(filter, Collections.singletonList(31)); + } + + @org.junit.jupiter.api.Test + public void testIncompletedReleaseClinicalReportFilter() { + CaseFilter filter = + new CaseFilter(CaseFilterKey.INCOMPLETE, CompletedGate.RELEASE_CLINICAL_REPORT.getLabel()); + testFilterCases(filter, Arrays.asList(25, 26, 27, 29, 30)); } @org.junit.jupiter.api.Test @@ -930,7 +1042,7 @@ public void testStoppedCaseFilter() { public void testNonStoppedCaseFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.STOPPED, "No"); testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28)); + 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31)); } @org.junit.jupiter.api.Test @@ -943,7 +1055,7 @@ public void testPausedCaseFilter() { public void testNonPausedCaseFilter() { CaseFilter filter = new CaseFilter(CaseFilterKey.PAUSED, "No"); testFilterCases(filter, Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28)); + 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31)); } private static List getCasesFiltered(CaseFilter filter) {