@Test public void getAllByStatus_returns_all_analyses() { SampleItem matchingSampleItemWithATestSection = DBHelper.createAndSaveSampleItem(DBHelper.createAndSaveSample("12345")); Analysis firstMatchingAnalysis = DBHelper.createAndSaveAnalysis( matchingSampleItemWithATestSection, StatusOfSampleUtil.AnalysisStatus.TechnicalAcceptance, "Hematology", null, null); SampleItem matchingSampleItemWithADifferentTestSection = DBHelper.createAndSaveSampleItem(DBHelper.createAndSaveSample("123456")); Analysis secondMatchingAnalysis = DBHelper.createAndSaveAnalysis( matchingSampleItemWithADifferentTestSection, StatusOfSampleUtil.AnalysisStatus.NotTested, "Biochemistry", null, null); SampleItem nonMatchingSampleItemWithDifferentStatus = DBHelper.createAndSaveSampleItem(DBHelper.createAndSaveSample("1234567")); Analysis nonMatchingAnalysis = DBHelper.createAndSaveAnalysis( nonMatchingSampleItemWithDifferentStatus, StatusOfSampleUtil.AnalysisStatus.BiologistRejected, "Biochemistry", null, null); List<Analysis> actualAnalyses = new AnalysisDAOImpl() .getAllAnalysisByStatus( Arrays.asList( StatusOfSampleUtil.AnalysisStatus.TechnicalAcceptance, StatusOfSampleUtil.AnalysisStatus.NotTested)); Assert.assertTrue( "should return analysis with matching analysis status", actualAnalyses.contains(firstMatchingAnalysis)); Assert.assertTrue( "should return analysis with matching analysis status", actualAnalyses.contains(secondMatchingAnalysis)); Assert.assertTrue( "should not return analysis with non matching analysis status", !actualAnalyses.contains(nonMatchingAnalysis)); }
@Test public void getAllByAccessionNumberAndStatus_does_not_return_non_matching_analysis_status() { String accessionNumber = "12345"; StatusOfSampleUtil.AnalysisStatus nonMatchingStatus = StatusOfSampleUtil.AnalysisStatus.TechnicalAcceptance; Sample nonMatchingAccessionNumberSample = DBHelper.createAndSaveSample(accessionNumber); SampleItem nonMatchingSampleItem = DBHelper.createAndSaveSampleItem(nonMatchingAccessionNumberSample); DBHelper.createAndSaveAnalysis( nonMatchingSampleItem, nonMatchingStatus, "Hematology", null, null); List<Analysis> actualAnalyses = new AnalysisDAOImpl() .getAllAnalysisByAccessionNumberAndStatus( accessionNumber, Arrays.asList(StatusOfSampleUtil.AnalysisStatus.BiologistRejected)); Assert.assertTrue( "should not return analysis with non matching analysis status", actualAnalyses.isEmpty()); }
@Test public void getAllByAccessionNumberAndStatus_returns_matching_analysis() { StatusOfSampleUtil.AnalysisStatus toBeValidatedAnalysisStatus = StatusOfSampleUtil.AnalysisStatus.TechnicalAcceptance; String accessionNumber = "12345"; Sample startedSample = DBHelper.createAndSaveSample(accessionNumber); SampleItem enteredSampleItem = DBHelper.createAndSaveSampleItem(startedSample); DBHelper.createAndSaveAnalysis( enteredSampleItem, toBeValidatedAnalysisStatus, "Hematology", null, null); DBHelper.createAndSaveAnalysis( enteredSampleItem, toBeValidatedAnalysisStatus, "Hematology", null, null); List<Analysis> actualAnalyses = new AnalysisDAOImpl() .getAllAnalysisByAccessionNumberAndStatus( accessionNumber, Arrays.asList(toBeValidatedAnalysisStatus)); Assert.assertTrue( "analyses should have same accessionNumber", matchesAccessionNumberAndStatus( actualAnalyses, accessionNumber, toBeValidatedAnalysisStatus)); }