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

/*
* LookupControllerIntTest.java
* Copyright (c) 2019 Veterans Affairs.
*/
package gov.va.oneconsult.seoc.api.controller;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.context.embedded.LocalServerPort;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;

import gov.va.oneconsult.seoc.api.Application;
import gov.va.oneconsult.seoc.api.util.Constants;
import gov.va.oneconsult.seoc.api.util.TestUtil;

/**
* Integration Test Cases
*
* @author AbleVets
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class LookupControllerIntTest {

@LocalServerPort
private int port;

private TestRestTemplate restTemplate = new TestRestTemplate();

private HttpHeaders headers = new HttpHeaders();

public static final String ROOT = "/v1/lookup/";

public static final String SERVICE_LINE = "serviceline/";

public static final String CATEGORY_OF_CARE = "categoryofcare/";

public static final String QASP = "qasp/";

public static final String BILLING_CODE = "billingcode/";

@Before
public void setup() {
setHeaders();
}

/**
*
* Description: Set the headers
*/
private void setHeaders() {
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.set(Constants.CLIENT_KEY, TestUtil.CLIENT_KEY);
}

/**
* Description: Test url
*
* @param uri
* @return returns test url
*/
private String createURLWithPort(String uri) {

return "http://localhost:" + port + uri;
}

/**
* Description: Test read all serviceLines successful
*/
@Test
public void readAllServiceLines() {
HttpEntity<String> request = new HttpEntity<String>(null, headers);
ResponseEntity<String> response = restTemplate.exchange(createURLWithPort(ROOT + SERVICE_LINE), HttpMethod.GET, request,
String.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
String responseJson = response.getBody();

assertThat(responseJson).contains("Psychology");
assertThat(responseJson).contains("Dental");

//Excludes discontinued Categories of Care
assertThat(responseJson).contains("Psychology Care");
assertThat(responseJson).doesNotContain("Dental Care");
}

/**
* Description: Test read all categories of care successful
*/
@Test
public void readAllCategoriesOfCare() {
HttpEntity<String> request = new HttpEntity<String>(null, headers);
ResponseEntity<String> response = restTemplate.exchange(createURLWithPort(ROOT + CATEGORY_OF_CARE), HttpMethod.GET, request,
String.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
String responseJson = response.getBody();

//Excludes discontinued Categories of Care
assertThat(responseJson).contains("Psychology Care");
assertThat(responseJson).doesNotContain("Dental Care");
}

/**
* Description: Test read all QASPs successful
*/
@Test
public void readAllQasps() {
HttpEntity<String> request = new HttpEntity<String>(null, headers);
ResponseEntity<String> response = restTemplate.exchange(createURLWithPort(ROOT + QASP), HttpMethod.GET, request,
String.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
String responseJson = response.getBody();

//Excludes discontinued QASPs
assertThat(responseJson).contains("QASP1");
assertThat(responseJson).contains("QASP2");
assertThat(responseJson).contains("QASP3");
assertThat(responseJson).doesNotContain("QASP4");
}

/**
* Description: Test read all Billing Codes successful
*/
@Test
public void readAllBillingCodes() {
HttpEntity<String> request = new HttpEntity<String>(null, headers);
ResponseEntity<String> response = restTemplate.exchange(createURLWithPort(ROOT + BILLING_CODE), HttpMethod.GET, request,
String.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
String responseJson = response.getBody();

//Excludes discontinued QASPs
assertThat(responseJson).contains("code108");
assertThat(responseJson).doesNotContain("code109");
}
}