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

import static org.junit.Assert.assertTrue;
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.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
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.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

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

import gov.va.med.ars.configuration.AppConfig;
import gov.va.med.ars.configuration.spring.SpringMvcConfig;
import gov.va.med.ars.model.response.CodeAndLevel;
import gov.va.med.ars.model.response.RfaiLineItemResponse;
import gov.va.med.ars.model.response.RfaiResponse;

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(properties = {"arsPropFileLocation = ./src/test/resources/development.properties"})
@ContextConfiguration(classes = { AppConfig.class, SpringMvcConfig.class })
public class RfaiRequestSubmitIntegrationTest {
private static final Logger logger = LogManager.getLogger(RfaiRequestSubmitIntegrationTest.class);
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;

@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}


@Test
public void testsubmitRfaiRequest_success() throws Exception {
logger.info("Integration Test");
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", " tyu", bigDecimal);
RfaiLineItemResponse rfaiLineItemResponsesec = new RfaiLineItemResponse(2l, " 09/14/2017", "09/14/2017", "0430",
"97140", " tyu", 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, "1");
CodeAndLevel codeAndLevelSix = new CodeAndLevel(3l, 5l, 0l, 0l, "1");

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.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.setCodeAndLevelList(codeAndLevelList);
rfaiResponse.setRfaiLineItemResponse(rfaiLineItemResponseList);

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

ResultActions result = mockMvc
.perform(post("/api/v1/additionalInfoRequest").contentType(MediaType.APPLICATION_JSON)
.content(requestJson))
.andDo(print()).andExpect(status().is5xxServerError())
.andExpect(content().contentType("application/json;charset=UTF-8"));

logger.info("testsubmitRfaiRequest_success:" + result.andReturn().getResponse().getStatus());
assertTrue(HttpStatus.SERVICE_UNAVAILABLE.value() != result.andReturn().getResponse().getStatus());

}
}