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.Matchers.any;
import static org.mockito.Mockito.when;
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 static org.mockito.Mockito.verify;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Matchers;
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.filter.CORSFilter;
import gov.va.med.ars.model.request.Parse277CARequest;
import gov.va.med.ars.service.IParse277CAServiceImpl;

@RunWith(MockitoJUnitRunner.class)
public class Parse277CAControllerTest {

private MockMvc mockMvc;

@Mock
private IParse277CAServiceImpl parse277CAServiceImpl;

@InjectMocks
private Parse277CAController parse277CAController;

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

@Test
public void testSuccessController() throws Exception{
Parse277CARequest request=new Parse277CARequest();
request.setCa277String("ISA*00* *00* *ZZ*IHS01EDI *ZZ*CLAIMSNETOGA *180618*0601*^*00501*000001111*0*P*:~\nGS*HN*IHS01EDI*CLAIMSNETOGA*20180618*0601*444*X*005010X214~\nST*277*0001*005010X214~\nBHT*0085*08*39040081-556a-9460-4047-180616060440*20180618*060154*TH~\nHL*1**20*1~\nNM1*PR*2*DEPARTMENT OF VETERANS AFFAIRS*****PI*111111111~\nTRN*1*00000000000111~\nDTP*050*D8*20180609~\nDTP*009*D8*20180616~\nHL*2*1*21*1~\nNM1*41*2*CLAIMSNETTO*****46*222222222~\nTRN*2*29178611_1~\nSTC*A1:19*20180616*WQ*353.84~\nQTY*90*3~\nQTY*AA*0~\nAMT*YU*353.84~\nAMT*YY*0~\nHL*3*2*19*1~\nNM1*85*2*SAN MARCOS DELKO MEDICAL*****XX*3333333333~\nTRN*1*11~\nSTC*A1:19**WQ*353.84~\nREF*TJ*999999999~\nQTY*QA*3~\nAMT*YU*353.84~\nAMT*YY*0~\nHL*4*3*PT~\nNM1*QC*1*AA BBBB*CCCC****MI*000001111~\nTRN*2*AA444444444444~\nSTC*A1:19*20180616*WQ*296.24~\nREF*1K*HC5555555555555~\nREF*D9*666666666~\nDTP*472*D8*20180605~\nHL*5*3*PT~\nNM1*QC*1*AA BBBB*CCCC****MI*000001111~\nTRN*2*SD666666666666~\nSTC*A1:19*20180616*WQ*28.8~\nREF*1K*HC5555555555555~\nREF*D9*666666666~\nDTP*472*D8*20180605~\nHL*6*3*PT~\nNM1*QC*1*JJJJJJJ*EEEEE****MI*777777777~\nTRN*2*AA444444444444~\nSTC*A1:19*20180616*WQ*28.8~\nREF*1K*HC5555555555555~\nREF*D9*666666666~\nDTP*472*D8*20180605~\nSE*45*0001~\nGE*1*444~\nIEA*1*000001111~");
when(parse277CAServiceImpl.process277CABatch(any(Parse277CARequest.class))).thenReturn(new Boolean("true"));

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String jsonRequest = ow.writeValueAsString(request);

mockMvc.perform(
post("/api/ca/277CA/parse").contentType(MediaType.APPLICATION_JSON).content(jsonRequest))
.andDo(print()).andExpect(status().isOk());

//verify if the process277CABatch was called

verify(parse277CAServiceImpl, times(1)).process277CABatch(Matchers.refEq(request));
verifyNoMoreInteractions(parse277CAServiceImpl);
}

@Test
public void testFailureController() throws Exception{
Parse277CARequest request=null;
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String jsonRequest = ow.writeValueAsString(request);

mockMvc.perform(
post("/api/ca/277CA/parse").contentType(MediaType.APPLICATION_JSON).content(jsonRequest))
.andDo(print()).andExpect(status().is4xxClientError());

//verify if the process277CABatch was called
verify(parse277CAServiceImpl, times(0)).process277CABatch(Matchers.refEq(request));
verifyNoMoreInteractions(parse277CAServiceImpl);
}

@Test
public void testFailureOnFalseReturnController() throws Exception{
Parse277CARequest request=new Parse277CARequest();
request.setCa277String("ISA*00* *00* *ZZ*IHS01EDI *ZZ*CLAIMSNETOGA *180618*0601*^*00501*000001111*0*P*:~\nGS*HN*IHS01EDI*CLAIMSNETOGA*20180618*0601*444*X*005010X214~\nST*277*0001*005010X214~\nBHT*0085*08*39040081-556a-9460-4047-180616060440*20180618*060154*TH~\nHL*1**20*1~\nNM1*PR*2*DEPARTMENT OF VETERANS AFFAIRS*****PI*111111111~\nTRN*1*00000000000111~\nDTP*050*D8*20180609~\nDTP*009*D8*20180616~\nHL*2*1*21*1~\nNM1*41*2*CLAIMSNETTO*****46*222222222~\nTRN*2*29178611_1~\nSTC*A1:19*20180616*WQ*353.84~\nQTY*90*3~\nQTY*AA*0~\nAMT*YU*353.84~\nAMT*YY*0~\nHL*3*2*19*1~\nNM1*85*2*SAN MARCOS DELKO MEDICAL*****XX*3333333333~\nTRN*1*11~\nSTC*A1:19**WQ*353.84~\nREF*TJ*999999999~\nQTY*QA*3~\nAMT*YU*353.84~\nAMT*YY*0~\nHL*4*3*PT~\nNM1*QC*1*AA BBBB*CCCC****MI*000001111~\nTRN*2*AA444444444444~\nSTC*A1:19*20180616*WQ*296.24~\nREF*1K*HC5555555555555~\nREF*D9*666666666~\nDTP*472*D8*20180605~\nHL*5*3*PT~\nNM1*QC*1*AA BBBB*CCCC****MI*000001111~\nTRN*2*SD666666666666~\nSTC*A1:19*20180616*WQ*28.8~\nREF*1K*HC5555555555555~\nREF*D9*666666666~\nDTP*472*D8*20180605~\nHL*6*3*PT~\nNM1*QC*1*JJJJJJJ*EEEEE****MI*777777777~\nTRN*2*AA444444444444~\nSTC*A1:19*20180616*WQ*28.8~\nREF*1K*HC5555555555555~\nREF*D9*666666666~\nDTP*472*D8*20180605~\nSE*45*0001~\nGE*1*444~\nIEA*1*000001111~");
when(parse277CAServiceImpl.process277CABatch(any(Parse277CARequest.class))).thenReturn(new Boolean("false"));

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String jsonRequest = ow.writeValueAsString(request);

mockMvc.perform(
post("/api/ca/277CA/parse").contentType(MediaType.APPLICATION_JSON).content(jsonRequest))
.andDo(print()).andExpect(status().isOk());

//verify if the process277CABatch was called

verify(parse277CAServiceImpl, times(1)).process277CABatch(Matchers.refEq(request));
verifyNoMoreInteractions(parse277CAServiceImpl);
}
}