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.controller;

import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;

import gov.va.med.ars.model.request.PayerInfoListRequest;
import gov.va.med.ars.model.request.PayerInfoRequest;
import gov.va.med.ars.model.response.PayerInfoResponse;
import gov.va.med.ars.service.IPayerInfoService;

@RunWith(MockitoJUnitRunner.class)
public class PayerInfoControllerTest {

private MockMvc mockMvc;

public static final MediaType APPLICATION_JSON_UTF8 = new MediaType(MediaType.APPLICATION_JSON.getType(),
MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8"));

DateFormat dateFormat = new SimpleDateFormat("MM/DD/YYYY");

@Mock
IPayerInfoService payerInfoService;

@InjectMocks
private PayerInfoController payerInfoController;

@Before
public void init() throws Exception {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(payerInfoController).build();
}

@Test
public void test_getPayerInfo() throws Exception {

List<PayerInfoResponse> payerInfoResponseList = new ArrayList<>();
PayerInfoResponse response = new PayerInfoResponse();
response.setPayerIndex(1l);
response.setPayerIdentifier("34133-9");
response.setPayerIdentifierDesc("Continuity of Care Document");
payerInfoResponseList.add(response);

when(payerInfoService.getActivePayerInfo()).thenReturn(payerInfoResponseList);

mockMvc.perform(get("/api/v1/populate/payerInfo").contentType(MediaType.APPLICATION_JSON)).andDo(print())
.andExpect(status().is2xxSuccessful());

verify(payerInfoService, times(1)).getActivePayerInfo();
verifyNoMoreInteractions(payerInfoService);
}

@Test
public void test_getPayerInfo_includeArchived() throws Exception {

List<PayerInfoResponse> payerInfoResponseList = new ArrayList<>();
PayerInfoResponse response = new PayerInfoResponse();
response.setPayerIndex(1l);
response.setPayerIdentifier("34133-9");
response.setPayerIdentifierDesc("Continuity of Care Document");
response.setIsArchived(true);
payerInfoResponseList.add(response);

when(payerInfoService.getAllPayerInfo()).thenReturn(payerInfoResponseList);

mockMvc.perform(get("/api/v1/populate/payerInfo?includeArchived=true").contentType(MediaType.APPLICATION_JSON))
.andDo(print()).andExpect(status().is2xxSuccessful());

verify(payerInfoService, times(1)).getAllPayerInfo();
verifyNoMoreInteractions(payerInfoService);
}

@Test
public void test_addPayerInfo() throws Exception {

List<PayerInfoRequest> payerInfoList = new ArrayList<>();
PayerInfoRequest request = new PayerInfoRequest();
request.setPayerIndex("1");
request.setPayerIdentifier("34133-9");
request.setPayerIdentifierDesc("Continuity of Care Document");
payerInfoList.add(request);

PayerInfoListRequest payerInfoRequest = new PayerInfoListRequest();
payerInfoRequest.setPayerInfoList(payerInfoList);

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String requestBodyJson = ow.writeValueAsString(payerInfoRequest);

mockMvc.perform(
post("/api/v1/populate/addPayerInfo").contentType(MediaType.APPLICATION_JSON).content(requestBodyJson))
.andDo(print()).andExpect(status().is2xxSuccessful());
}

@Test
public void test_addarchiveCodes() throws Exception {

List<PayerInfoRequest> payerInfoList = new ArrayList<>();
PayerInfoRequest request = new PayerInfoRequest();
request.setPayerIndex("1");
request.setPayerIdentifier("34133-9");
request.setPayerIdentifierDesc("Continuity of Care Document");
payerInfoList.add(request);

PayerInfoListRequest payerInfoRequest = new PayerInfoListRequest();
payerInfoRequest.setPayerInfoList(payerInfoList);

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String requestBodyJson = ow.writeValueAsString(payerInfoRequest);

mockMvc.perform(post("/api/v1/populate/payerInfoarchive").contentType(MediaType.APPLICATION_JSON)
.content(requestBodyJson)).andDo(print()).andExpect(status().is2xxSuccessful());

}

}