Summary Table

Categories Total Count
PII 1
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.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
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.http.MediaType;

import gov.va.med.ars.dao.ars.ClaimContactRepository;
import gov.va.med.ars.dao.ars.EmailTemplateRepository;
import gov.va.med.ars.dao.ars.IArsUserRepository;
import gov.va.med.ars.dao.ars.IClaimSubmissionRepository;
import gov.va.med.ars.dao.ars.IPayerInfoRepository;
import gov.va.med.ars.model.response.CodeAndLevel;
import gov.va.med.ars.model.response.RfaiLineItemResponse;
import gov.va.med.ars.model.response.RfaiResponse;
import gov.va.med.domain.ars.ArsUser;
import gov.va.med.domain.ars.ClaimCodeBridge;
import gov.va.med.domain.ars.ClaimCodeBridgeId;
import gov.va.med.domain.ars.ClaimContact;
import gov.va.med.domain.ars.ClaimSubmission;
import gov.va.med.domain.ars.ClaimSvcLines;
import gov.va.med.domain.ars.EmailTemplate;
import gov.va.med.domain.ars.PayerConfig;

@RunWith(MockitoJUnitRunner.class)

public class RfaiRequestSubmitServiceImplTest {
private static final Logger logger = LogManager.getLogger(RfaiRequestSubmitServiceImplTest.class);
public static final MediaType APPLICATION_JSON_UTF8 = new MediaType(MediaType.APPLICATION_JSON.getType(),
MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8"));

@Mock
IArsUserRepository arsUserRepo;

@Mock
IPayerInfoRepository payerInfoRepo;

@Mock
private ClaimContactRepository claimContactRepo;

@Mock
private IClaimSubmissionRepository claimSubmissionRepo;

@Mock
EmailTemplateRepository emailRepo;

@InjectMocks
private RfaiRequestSubmitServiceImpl rfaiRequestSubmitServiceImpl;

@Test
public void testMockIsWorking() {
assertNotNull("RfaiRequestSubmitServiceTest Injection Failed", rfaiRequestSubmitServiceImpl);
logger.info("RfaiRequestSubmitServiceTest" + rfaiRequestSubmitServiceImpl);
}

@SuppressWarnings("deprecation")
@Test
public void submitAdditionalInforfaiResponse() throws Exception {
logger.info("testing");

DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");

BigDecimal bigDecimal = new BigDecimal(17888.41);
BigDecimal bigDecimalTwo = new BigDecimal(14829.52);

List<RfaiLineItemResponse> rfaiLineItemResponseList = new ArrayList<>();
RfaiLineItemResponse rfaiLineItemResponse = new RfaiLineItemResponse(1l, " 09/13/2017", "09/13/2017", "0651",
"Q5001", "G4,RT,LT,P3", bigDecimal);
RfaiLineItemResponse rfaiLineItemResponsesec = new RfaiLineItemResponse(2l, " 09/14/2017", "09/14/2017", "0430",
"97140", "JA,EE,QS,SG", bigDecimalTwo);
rfaiLineItemResponseList.add(rfaiLineItemResponse);
rfaiLineItemResponseList.add(rfaiLineItemResponsesec);

Set<CodeAndLevel> codeAndLevelList = new HashSet<>();
CodeAndLevel codeAndLevel = new CodeAndLevel(1l, 2l, 3l, 4l, "0");
CodeAndLevel codeAndLevelSec = new CodeAndLevel(1l, 3l, 4l, 5l, "0");
CodeAndLevel codeAndLevelThird = new CodeAndLevel(1l, 8l, 7l, 4l, "0");
CodeAndLevel codeAndLevelFour = new CodeAndLevel(3l, 1l, 5l, 0l, "1");
CodeAndLevel codeAndLevelFive = new CodeAndLevel(1l, 6l, 7l, 0l, "2");
CodeAndLevel codeAndLevelSix = new CodeAndLevel(3l, 5l, 0l, 0l, "3");

codeAndLevelList.add(codeAndLevel);
codeAndLevelList.add(codeAndLevelSec);
codeAndLevelList.add(codeAndLevelThird);
codeAndLevelList.add(codeAndLevelFour);
codeAndLevelList.add(codeAndLevelFive);
codeAndLevelList.add(codeAndLevelSix);

RfaiResponse rfaiResponse = new RfaiResponse();
rfaiResponse.setClaimId(new BigInteger("10096"));
rfaiResponse.setPayerName("Veteran's Affairs");
rfaiResponse.setPayerId("12115");
rfaiResponse.setPayerIndex(1l);
rfaiResponse.setResponseDate("04/03/2019");
rfaiResponse.setProviderNpi("1000000004");
rfaiResponse.setProviderTin("111111113");
rfaiResponse.setPatientLastname("Duncan");
rfaiResponse.setPatientFirstName("Ester");
rfaiResponse.setPatientIdentifier("000100006");
rfaiResponse.setPatientcontrolNumber("10000000");
rfaiResponse.setPayerClaimControlNumber("10000");
rfaiResponse.setProviderInformation("RIVERSIDEMETHHOS");
rfaiResponse.setClearingHouseId("clearingHouseId");
rfaiResponse.setCodeAndLevelList(codeAndLevelList);
rfaiResponse.setContactInformation("d@d");
rfaiResponse.setServiceFromDate("09/10/2017");
rfaiResponse.setServiceToDate("09/16/2017");
rfaiResponse.setSubmittedBy("user");
rfaiResponse.setCodeAndLevelList(codeAndLevelList);
rfaiResponse.setRfaiLineItemResponse(rfaiLineItemResponseList);

ClaimContact claimContact = new ClaimContact();
claimContact.setContactuserid(100l);
claimContact.setContactemail("
PII ");
claimContact.setDatecreated(dateFormat.parse("110118"));
claimContact.setDatemodified(dateFormat.parse("110118"));

Set<ClaimSvcLines> claimSvcLinesSet = new HashSet<>();

ClaimSubmission claimSubmission = new ClaimSubmission();
claimSubmission.setClaimSvcLineses(claimSvcLinesSet);
claimSubmission.setTrn02claimIndex(rfaiResponse.getClaimId());
// claimSubmission.setHl1nm103pyrNm(rfaiResponse.getPayerName());
// claimSubmission.setHl1nm109pyrId(rfaiResponse.getPayerId());
claimSubmission.setHl2nm103infRcvr(rfaiResponse.getInformationReceiver());
Date responseDate = new Date(rfaiResponse.getResponseDate());
claimSubmission.setDtp203responseduedate(responseDate);
claimSubmission.setHl3nm109prvnpi(rfaiResponse.getProviderNpi());
claimSubmission.setHl2nm109svcprvtin(rfaiResponse.getProviderTin());
claimSubmission.setHl4nm103ptlstnm(rfaiResponse.getPatientLastname());
claimSubmission.setHl4nm104ptftnm(rfaiResponse.getPatientFirstName());
claimSubmission.setHl4nm109ptid(rfaiResponse.getPatientIdentifier());
claimSubmission.setRef102ptctrlnmbr(rfaiResponse.getPatientcontrolNumber());
claimSubmission.setTrn02pyrclmctrlnmbr(rfaiResponse.getPayerClaimControlNumber());
claimSubmission.setRef202billtype(rfaiResponse.getBillType());
claimSubmission.setRef402clrnghsid(rfaiResponse.getClearingHouseId());
claimSubmission.setRef302medrecnmbr(rfaiResponse.getMedicalRecordNumber());
claimSubmission.setHl3nm103svcbillprvnm(rfaiResponse.getProviderInformation());
claimSubmission.setSubmissionStatus("PENDING");
claimSubmission.setGenerate277Status("PENDING");
claimSubmission.setDatecreated(new Date());
claimSubmission.setDatemodified(new Date());
claimSubmission.setSubmissionid(new BigInteger("1"));

ClaimCodeBridgeId claimCodeBridgeId = new ClaimCodeBridgeId(new BigInteger("1623"), 1416, 3, 5, 0, 0);
Set<ClaimCodeBridge> claimCodeBridgeSet = new HashSet<>();
ClaimCodeBridge claimCodeBridge = new ClaimCodeBridge();
claimCodeBridge.setId(claimCodeBridgeId);
claimCodeBridgeSet.add(claimCodeBridge);

claimSubmission.setClaimCodeBridges(claimCodeBridgeSet);

ClaimContact claimContactForSubmission = new ClaimContact();
claimContactForSubmission.setContactuserid(1l);

List<ClaimContact> claimContactList = new ArrayList<>();
claimContactList.add(claimContact);

ArsUser arsUser = new ArsUser();
arsUser.setArsUserId(2l);
arsUser.setEmailAddress("email");

PayerConfig payerRecord = new PayerConfig();
payerRecord.setPayerIndex((long) 1);

String templateType = "PENDING";
EmailTemplate template = new EmailTemplate();
template.setEmailTemplateId(1l);

when(payerInfoRepo.findByPayerIndex(1l)).thenReturn(payerRecord);
when(arsUserRepo.findByUserNameIgnoreCase("user")).thenReturn(arsUser);
when(claimContactRepo.findOneByContactemailAndSubmittedbyAllIgnoreCase(rfaiResponse.getContactInformation(),
"email")).thenReturn(claimContact);
when(claimContactRepo.save(claimContact)).thenReturn(claimContact);
when(claimSubmissionRepo.save(any(ClaimSubmission.class))).thenReturn(claimSubmission);
when(claimContactRepo.findAllByclaimSubmissions(claimSubmission)).thenReturn(claimContactList);
when(emailRepo.getEmailTemplateByType(templateType)).thenReturn(template);
boolean submitAdditionalInfoRequest = rfaiRequestSubmitServiceImpl.submitAdditionalInfoRequest(rfaiResponse);
assertTrue(submitAdditionalInfoRequest);
}
}