diff --git a/intermediate/rest-http/src/test/java/org/springframework/integration/samples/rest/RestHttpClientTest.java b/intermediate/rest-http/src/test/java/org/springframework/integration/samples/rest/RestHttpClientTest.java index a4d6853a..7e0e7a70 100644 --- a/intermediate/rest-http/src/test/java/org/springframework/integration/samples/rest/RestHttpClientTest.java +++ b/intermediate/rest-http/src/test/java/org/springframework/integration/samples/rest/RestHttpClientTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,8 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.samples.rest; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.ByteArrayOutputStream; @@ -52,52 +54,57 @@ import com.fasterxml.jackson.databind.ObjectMapper; /** * RestHttpClientTest.java: Functional Test to test the REST HTTP Path usage. This test requires * rest-http application running in HTTP environment. + * * @author Vigil Bose * @author Gary Russell + * @author Artem Bilan */ @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations={"classpath*:META-INF/spring/integration/http-outbound-config.xml"}) +@ContextConfiguration(locations = { "classpath*:META-INF/spring/integration/http-outbound-config.xml" }) public class RestHttpClientTest { @Autowired private RestTemplate restTemplate; + private HttpMessageConverterExtractor responseExtractor; + private static Log logger = LogFactory.getLog(RestHttpClientTest.class); + @Autowired private Jaxb2Marshaller marshaller; + @Autowired private ObjectMapper jaxbJacksonObjectMapper; @Before public void setUp() { - responseExtractor = new HttpMessageConverterExtractor(EmployeeList.class, restTemplate.getMessageConverters()); + responseExtractor = new HttpMessageConverterExtractor<>(EmployeeList.class, restTemplate + .getMessageConverters()); - Map properties = new HashMap(); + Map properties = new HashMap<>(); properties.put(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); properties.put(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.setMarshallerProperties(properties); } + /** * * @throws Exception */ @Test - public void testGetEmployeeAsXml() throws Exception{ + public void testGetEmployeeAsXml() { Map employeeSearchMap = getEmployeeSearchMap("0"); final String fullUrl = "http://localhost:8080/rest-http/services/employee/{id}/search"; EmployeeList employeeList = restTemplate.execute(fullUrl, HttpMethod.GET, - new RequestCallback() { - @Override - public void doWithRequest(ClientHttpRequest request) throws IOException { - HttpHeaders headers = getHttpHeadersWithUserCredentials(request); - headers.add("Accept", "application/xml"); - } - }, responseExtractor, employeeSearchMap); + request -> { + HttpHeaders headers = getHttpHeadersWithUserCredentials(request); + headers.add("Accept", "application/xml"); + }, responseExtractor, employeeSearchMap); - logger.info("The employee list size :"+employeeList.getEmployee().size()); + logger.info("The employee list size :" + employeeList.getEmployee().size()); StringWriter sw = new StringWriter(); StreamResult sr = new StreamResult(sw); @@ -108,46 +115,49 @@ public class RestHttpClientTest { } private Map getEmployeeSearchMap(String id) { - Map employeeSearchMap = new HashMap(); + Map employeeSearchMap = new HashMap<>(); employeeSearchMap.put("id", id); return employeeSearchMap; } @Test - public void testGetEmployeeAsJson() throws Exception{ + public void testGetEmployeeAsJson() throws Exception { Map employeeSearchMap = getEmployeeSearchMap("0"); - final String fullUrl = "http://localhost:8080/rest-http/services/employee/{id}/search?format=json"; + final String fullUrl = "http://localhost:8080/rest-http/services/employee/{id}/search?format" + + "=json"; HttpHeaders headers = getHttpHeadersWithUserCredentials(new HttpHeaders()); headers.add("Accept", "application/json"); - HttpEntity request = new HttpEntity(headers); + HttpEntity request = new HttpEntity<>(headers); - ResponseEntity httpResponse = restTemplate.exchange(fullUrl, HttpMethod.GET, request, EmployeeList.class, employeeSearchMap); - logger.info("Return Status :"+httpResponse.getHeaders().get("X-Return-Status")); - logger.info("Return Status Message :"+httpResponse.getHeaders().get("X-Return-Status-Msg")); - assertTrue(httpResponse.getStatusCode().equals(HttpStatus.OK)); + ResponseEntity httpResponse = restTemplate + .exchange(fullUrl, HttpMethod.GET, request, EmployeeList.class, employeeSearchMap); + logger.info("Return Status :" + httpResponse.getHeaders().get("X-Return-Status")); + logger.info("Return Status Message :" + httpResponse.getHeaders().get("X-Return-Status-Msg")); + assertEquals(httpResponse.getStatusCode(), HttpStatus.OK); ByteArrayOutputStream out = new ByteArrayOutputStream(); jaxbJacksonObjectMapper.writeValue(out, httpResponse.getBody()); logger.info(new String(out.toByteArray())); } - private HttpHeaders getHttpHeadersWithUserCredentials(ClientHttpRequest request){ + private HttpHeaders getHttpHeadersWithUserCredentials(ClientHttpRequest request) { return (getHttpHeadersWithUserCredentials(request.getHeaders())); } - private HttpHeaders getHttpHeadersWithUserCredentials(HttpHeaders headers){ + private HttpHeaders getHttpHeadersWithUserCredentials(HttpHeaders headers) { String username = "SPRING"; String password = "spring"; - String combinedUsernamePassword = username+":"+password; + String combinedUsernamePassword = username + ":" + password; byte[] base64Token = Base64.getEncoder().encode(combinedUsernamePassword.getBytes()); - String base64EncodedToken = new String (base64Token); + String base64EncodedToken = new String(base64Token); //adding Authorization header for HTTP Basic authentication - headers.add("Authorization","Basic "+base64EncodedToken); + headers.add("Authorization", "Basic " + base64EncodedToken); return headers; } + }