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.mockito.Mockito.mock;
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.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

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.request.CodeAndModifierRequest;
import gov.va.med.ars.model.request.GenericRequest;
import gov.va.med.ars.model.request.JsonArrayModel;

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

@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;

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

public void getLoincCodesTest_success() throws Exception {

List<String> codesToProcess = new ArrayList<>();
codesToProcess.add("Y");
codesToProcess.add("N");
JsonArrayModel acceptedValues = new JsonArrayModel(codesToProcess);

HttpServletRequest request = mock(HttpServletRequest.class);
when(request.getRequestURI()).thenReturn("/api/v1/populate/loinc");

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(acceptedValues);

ResultActions result = mockMvc
.perform(
post("/api/v1/populate/loinc").contentType(MediaType.APPLICATION_JSON).content(requestBodyJson))
.andDo(print()).andExpect(status().isOk());

logger.info("getLoincCodesTest_success:" + result.andReturn().getResponse().getStatus());
assertTrue(HttpStatus.OK.value() == result.andReturn().getResponse().getStatus());

}

@Test
public void getLoincModCodesTest_success() throws Exception {

List<String> codesToProcess = new ArrayList<>();
codesToProcess.add("Y");
codesToProcess.add("N");
JsonArrayModel acceptedValues = new JsonArrayModel(codesToProcess);

HttpServletRequest request = mock(HttpServletRequest.class);
when(request.getRequestURI()).thenReturn("/api/v1/populate/loincMod");

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(acceptedValues);

ResultActions result = mockMvc.perform(
post("/api/v1/populate/loincMod").contentType(MediaType.APPLICATION_JSON).content(requestBodyJson))
.andDo(print()).andExpect(status().isOk());

logger.info("getLoincModCodesTest_success:" + result.andReturn().getResponse().getStatus());
assertTrue(HttpStatus.OK.value() == result.andReturn().getResponse().getStatus());

}

@Test
public void getHccsCodesTest_success() throws Exception {

List<String> codesToProcess = new ArrayList<>();
codesToProcess.add("Y");
codesToProcess.add("N");
JsonArrayModel acceptedValues = new JsonArrayModel(codesToProcess);

HttpServletRequest request = mock(HttpServletRequest.class);
when(request.getRequestURI()).thenReturn("/api/v1/populate/hccs");

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(acceptedValues);

ResultActions result = mockMvc
.perform(post("/api/v1/populate/hccs").contentType(MediaType.APPLICATION_JSON).content(requestBodyJson))
.andDo(print()).andExpect(status().isOk());

logger.info("getHccsCodesTest_success:" + result.andReturn().getResponse().getStatus());
assertTrue(HttpStatus.OK.value() == result.andReturn().getResponse().getStatus());

}


@Test
public void addOrModifyCodes_success() throws Exception {
/*CodeAndModifierRequest loinc = new CodeAndModifierRequest();
loinc.setCd(130l);
loinc.setStcCd("2018");
loinc.setStcCdDesc("aaa");
loinc.setFlag(false);
loinc.setStartDate("04/17/2018");
loinc.setEndDate("04/17/2018");

List<CodeAndModifierRequest> loincList = new ArrayList<>();
loincList.add(loinc);*/

/*CodeAndModifierRequest loincMod = new CodeAndModifierRequest();
loincMod.setCd(100001l);
loincMod.setStcCd("2018");
loincMod.setStcCdDesc("aaa");
loincMod.setFlag(false);
loincMod.setStartDate("04/17/2018");
loincMod.setEndDate("04/17/2018");
List<CodeAndModifierRequest> loincModList = new ArrayList<>();
loincModList.add(loincMod);*/

/*CodeAndModifierRequest hccsCd = new CodeAndModifierRequest();
hccsCd.setCd(1000l);
hccsCd.setStcCd("2018");
hccsCd.setStcCdDesc("aaa");
hccsCd.setFlag(false);
hccsCd.setStartDate("04/17/2018");
hccsCd.setEndDate("04/17/2018");

List<CodeAndModifierRequest> hccList = new ArrayList<>();
hccList.add(hccsCd);*/

GenericRequest codeAndModifierRequest = new GenericRequest();
//codeAndModifierRequest.setHccList(hccList);
//codeAndModifierRequest.setLoincList(loincList);
//codeAndModifierRequest.setLoincModList(loincModList);

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String requestJson = ow.writeValueAsString(codeAndModifierRequest);
logger.info("requestJson:" + requestJson);

ResultActions result = mockMvc
.perform(post("/api/v1/populate/add").contentType(MediaType.APPLICATION_JSON).content(requestJson))
.andExpect(status()
.isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE));

logger.info("getCodesTest_success:" + result.andReturn().getResponse().getStatus());
assertTrue(HttpStatus.OK.value() == result.andReturn().getResponse().getStatus());

}
}