Summary Table
Categories |
Total Count |
PII |
0 |
URL |
0 |
DNS |
0 |
EKL |
0 |
IP |
0 |
PORT |
0 |
VsID |
0 |
CF |
0 |
AI |
0 |
VPD |
0 |
PL |
0 |
Other |
0 |
File Content
package gov.va.med.ars.service.impl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import gov.va.med.ars.dao.ars.IClaimAttachmentsViewRepository;
import gov.va.med.ars.exceptions.GenericException;
import gov.va.med.ars.model.request.SearchClaimAttachments275Request;
import gov.va.med.ars.model.response.GenericResponse;
import gov.va.med.ars.model.response.SearchClaimAttachments275Response;
import gov.va.med.domain.ars.ClaimattachmentsView;
@RunWith(MockitoJUnitRunner.class)
public class SearchClaimAttachments275ServiceImplTest {
@InjectMocks
SearchClaimAttachments275ServiceImpl searchClaimAttachments275Service;
@Mock
IClaimAttachmentsViewRepository iClaimAttachmentsViewRepository;
@Test
public void testMockIsWorking() {
assertNotNull("SearchClaimAttachments275Service Injection Failed", searchClaimAttachments275Service);
}
@SuppressWarnings("unchecked")
@Test
public void getAll275SearchResult_Test_Success() throws GenericException {
// arrange
SearchClaimAttachments275Request request = new SearchClaimAttachments275Request();
request.setAttachIdLx("101.1");
request.setAttachId("101");
request.setAttachCtrNumber("");
request.setClaimId("");
request.setStatus("");
request.setPatientLastName("");
request.setPatientFirstName("");
request.setPatientCtrNumber("");
request.setPatientIdentifier("");
request.setProviderName("");
request.setProviderNpi("");
request.setMedicalRecordNumber("");
request.setPayerControlNumber("");
request.setReportTypeCode("");
request.setClaimServiceStartDate("");
request.setClaimServiceEndDate("");
request.setPageSize(10);
request.setSortColumn("");
request.setDescending(false);
request.setPageNumber(1);
List<ClaimattachmentsView> attachmentsList = new ArrayList<>();
ClaimattachmentsView record = new ClaimattachmentsView();
record.setAttachIdLx("101.1");
record.setAttachmentId(101L);
record.setAttachmentControlNumber("678987");
record.setClaimIdentifier("100000");
record.setExternalClaimId("11111");
record.setStatus("Active");
record.setPatientFirstName("Koti, Divya");
record.setPatientControlNumber("252525");
record.setPatientIdentifierNumber("34567");
record.setProviderName("Mohite");
record.setProviderNpi("678947");
record.setMedicalRecordNumber("123456789");
record.setPayerClaimControlNumber("202154");
record.setReportCode("09");
record.setAttachmentType("PDF");
record.setClaimServiceStartDate("20161108");
// Use different values for Start and End so you can be check that the results
// are different
record.setClaimServiceEndDate("20161225");
record.setAttachmentPath("");
attachmentsList.add(record);
Page<ClaimattachmentsView> pagedResponse = new PageImpl<>(attachmentsList);
// arrange (faking out repository calls from service)
when(iClaimAttachmentsViewRepository.count(any(Specification.class))).thenReturn((long) 1);
when(iClaimAttachmentsViewRepository.findAll(any(Specification.class), any(PageRequest.class)))
.thenReturn(pagedResponse);
// act
GenericResponse repositoryResponse = searchClaimAttachments275Service.getAll275SearchResult(request);
// assert
verify(iClaimAttachmentsViewRepository).count(any(Specification.class));
verify(iClaimAttachmentsViewRepository).findAll(any(Specification.class), any(PageRequest.class));
List<SearchClaimAttachments275Response> resultResponseList = //
(List<SearchClaimAttachments275Response>) repositoryResponse.getResponse();
assertEquals(1, repositoryResponse.getpageNumber());
assertEquals(10, repositoryResponse.getpageSize());
assertEquals(1L, repositoryResponse.gettotalNumberOfResults());
// Since we're only expecting a single response in this test, grab it
SearchClaimAttachments275Response res = resultResponseList.get(0);
assertEquals(101L, res.getAttachId());
// assertEquals(101L, res.getLx01());
assertEquals("678987", res.getAttachCtrNumber());
assertEquals("11111", res.getClaimIdentifier());
assertEquals("11111", res.getExternalClaimId());
assertEquals("Active", res.getStatus());
assertEquals("252525", res.getPatientCtrNumber());
assertEquals("34567", res.getPatientIdentifier());
assertEquals("Mohite", res.getProviderName());
assertEquals("678947", res.getProviderNpi());
assertEquals("123456789", res.getMedicalRecordNumber());
assertEquals("09", res.getReportTypeCode());
assertEquals("PDF", res.getAttachType());
assertEquals("11/08/2016", res.getClaimServiceStartDate());
assertEquals("12/25/2016", res.getClaimServiceEndDate());
}
// @Test
// private void getAll275SearchResult_Test_Success10x10( ) throws GenericException {
// getAll275SearchResult_Test_SuccessPN(10, 10L); // The most I dare
// }
//
// @SuppressWarnings("unchecked")
// private void getAll275SearchResult_Test_SuccessPN(
// int pageSize, //
// long numberOfResults // Generate numberOfResults results
// ) throws GenericException {
//
// // arrange
//
// // A single request
// SearchClaimAttachments275Request request = new SearchClaimAttachments275Request();
// request.setAttachIdLx("101.1");
// request.setAttachId("101");
// request.setAttachCtrNumber("");
// request.setClaimId("");
// request.setStatus("");
// request.setPatientLastName("");
// request.setPatientFirstName("");
// request.setPatientCtrNumber("");
// request.setPatientIdentifier("");
// request.setProviderName("");
// request.setProviderNpi("");
// request.setMedicalRecordNumber("");
// request.setPayerControlNumber("");
// request.setReportTypeCode("");
// request.setClaimServiceStartDate("");
// request.setClaimServiceEndDate("");
// request.setPageSize(pageSize);
// request.setSortColumn("");
// request.setDescending(false);
// request.setPageNumber(1);
//
// // Can produce multiple results
// // probably best if we don't exceed pagesize for this mock-up
// assertTrue(numberOfResults <= (long) request.getPageSize());
// List<ClaimattachmentsView> attachmentsList = new ArrayList<>();
// for (int result = 1; result < numberOfResults; ++result) {
// // results don't have to bee too realistic, just different
// String tag = "T" + String.valueOf(result);
// ClaimattachmentsView record = new ClaimattachmentsView();
// record.setAttachIdLx("101." + result);
// record.setAttachmentId(101L);
// // record.setlx01(result); // it might have been there but it's not.
// record.setAttachmentControlNumber("678987");
// record.setClaimIdentifier("100000");
// record.setExternalClaimId("11111");
// record.setStatus("Active");
// record.setPatientFirstName("Koti, Divya" + tag);
// record.setPatientControlNumber("252525");
// record.setPatientIdentifierNumber("34567");
// record.setProviderName("Mohite" + tag);
// record.setProviderNpi("678947");
// record.setMedicalRecordNumber("123456789");
// record.setPayerClaimControlNumber("202154");
// record.setReportCode("09");
// record.setAttachmentType("PDF");
// record.setClaimServiceStartDate("20161108");
// // Use different values for Start and End so you can be check that the results
// // are different
// record.setClaimServiceEndDate("20161225");
// record.setAttachmentPath("foo/bar/" + tag);
// attachmentsList.add(record);
// }
// Page<ClaimattachmentsView> pagedResponse = new PageImpl<>(attachmentsList);
//
// // arrange (faking out repository calls from service)
// when(iClaimAttachmentsViewRepository.count(any(Specification.class))).thenReturn(numberOfResults);
// when(iClaimAttachmentsViewRepository.findAll(any(Specification.class), any(PageRequest.class)))
// .thenReturn(pagedResponse);
//
// // act
// GenericResponse repositoryResponse = searchClaimAttachments275Service.getAll275SearchResult(request);
//
// // assert
// verify(iClaimAttachmentsViewRepository).count(any(Specification.class));
// verify(iClaimAttachmentsViewRepository).findAll(any(Specification.class), any(PageRequest.class));
//
// List<SearchClaimAttachments275Response> resultResponseList = //
// (List<SearchClaimAttachments275Response>) repositoryResponse.getResponse();
//
// assertEquals(1, repositoryResponse.getpageNumber()); // no multi-page yet
// assertEquals(pageSize, repositoryResponse.getpageSize());
//
// // Check all results. Is this really much better than just checking one?
// // It doesn't really test pagination
// assertEquals(numberOfResults, repositoryResponse.gettotalNumberOfResults());
// for (int result = 0; result < numberOfResults; ++result) {
// // Each result is from each record. No sorting is expected mockup
// SearchClaimAttachments275Response res = resultResponseList.get(result);
// ClaimattachmentsView recordEx = attachmentsList.get(result);
// // Check parts individually, for now
// assertEquals(recordEx.getAttachmentId(), res.getAttachId());
// // assertEquals(recordEx.getLx01(), res.getLx01());
// assertEquals(recordEx.getAttachmentControlNumber(), res.getAttachCtrNumber());
// assertEquals(recordEx.getClaimIdentifier(), res.getClaimIdentifier());
// assertEquals(recordEx.getExternalClaimId(), res.getExternalClaimId());
// assertEquals(recordEx.getStatus(), res.getStatus());
// assertEquals(recordEx.getPatientControlNumber(), res.getPatientCtrNumber());
// assertEquals(recordEx.getPatientIdentifierNumber(), res.getPatientIdentifier());
// assertEquals(recordEx.getProviderName(), res.getProviderName());
// assertEquals(recordEx.getProviderNpi(), res.getProviderNpi());
// assertEquals(recordEx.getMedicalRecordNumber(), res.getMedicalRecordNumber());
// assertEquals(recordEx.getReportCode(), res.getReportTypeCode());
// assertEquals(recordEx.getAttachmentType(), res.getAttachType());
// assertEquals(recordEx.getClaimServiceStartDate(), res.getClaimServiceStartDate());
// assertEquals(recordEx.getClaimServiceEndDate(), res.getClaimServiceEndDate());
// }
// }
@Test(expected = GenericException.class)
public void getAll275SearchResult_Test_AtLeastOneFieldShouldExist() throws GenericException {
SearchClaimAttachments275Request request = new SearchClaimAttachments275Request();
request.setAttachIdLx("");
request.setAttachId("");
request.setAttachCtrNumber("");
request.setClaimId("");
request.setStatus("");
request.setPatientLastName("");
request.setPatientFirstName("");
request.setPatientCtrNumber("");
request.setPatientIdentifier("");
request.setProviderName("");
request.setProviderNpi("");
request.setMedicalRecordNumber("");
request.setPayerControlNumber("");
request.setReportTypeCode("");
request.setClaimServiceEndDate("");
request.setClaimServiceEndDate("");
request.setPageSize(10);
request.setSortColumn("");
request.setDescending(false);
request.setPageNumber(1);
GenericResponse repositoryResponse = searchClaimAttachments275Service.getAll275SearchResult(request);
}
@Test(expected = GenericException.class)
public void getAll275SearchResult_Test_AtLeastOneFieldShouldExistDESC() throws GenericException {
SearchClaimAttachments275Request request = new SearchClaimAttachments275Request();
request.setAttachIdLx("");
request.setAttachId("");
request.setAttachCtrNumber("");
request.setClaimId("");
request.setStatus("");
request.setPatientLastName("");
request.setPatientFirstName("");
request.setPatientCtrNumber("");
request.setPatientIdentifier("");
request.setProviderName("");
request.setProviderNpi("");
request.setMedicalRecordNumber("");
request.setPayerControlNumber("");
request.setReportTypeCode("");
request.setClaimServiceEndDate("");
request.setClaimServiceEndDate("");
request.setPageSize(10);
request.setSortColumn("");
request.setDescending(true); // Descending doesn't count as "at least one"
request.setPageNumber(1);
GenericResponse repositoryResponse = searchClaimAttachments275Service.getAll275SearchResult(request);
}
@Test(expected = GenericException.class)
public void getAll275SearchResult_Test_AtLeastOneFieldShouldExistNulls() throws GenericException {
SearchClaimAttachments275Request request = new SearchClaimAttachments275Request();
request.setAttachIdLx(null);
request.setAttachId(null);
request.setAttachCtrNumber(null);
request.setClaimId(null);
request.setStatus(null);
request.setPatientLastName(null);
request.setPatientFirstName(null);
request.setPatientCtrNumber(null);
request.setPatientIdentifier(null);
request.setProviderName(null);
request.setProviderNpi(null);
request.setMedicalRecordNumber(null);
request.setPayerControlNumber(null);
request.setReportTypeCode(null);
request.setClaimServiceEndDate(null);
request.setClaimServiceEndDate(null);
request.setPageSize(10);
request.setSortColumn(null);
request.setDescending(false);
request.setPageNumber(1);
GenericResponse repositoryResponse = searchClaimAttachments275Service.getAll275SearchResult(request);
}
@Test(expected = GenericException.class)
public void getAll275SearchResult_Test_AtLeastOneFieldShouldExistNullsDESC() throws GenericException {
SearchClaimAttachments275Request request = new SearchClaimAttachments275Request();
request.setAttachIdLx(null);
request.setAttachId(null);
request.setAttachCtrNumber(null);
request.setClaimId(null);
request.setStatus(null);
request.setPatientLastName(null);
request.setPatientFirstName(null);
request.setPatientCtrNumber(null);
request.setPatientIdentifier(null);
request.setProviderName(null);
request.setProviderNpi(null);
request.setMedicalRecordNumber(null);
request.setPayerControlNumber(null);
request.setReportTypeCode(null);
request.setClaimServiceEndDate(null);
request.setClaimServiceEndDate(null);
request.setPageSize(10);
request.setSortColumn(null);
request.setDescending(true); // Descending doesn't count as "at least one"
request.setPageNumber(1);
GenericResponse repositoryResponse = searchClaimAttachments275Service.getAll275SearchResult(request);
}
}