Fix RestHttpClientTest for extra space in Basic
This commit is contained in:
@@ -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<EmployeeList> 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>(EmployeeList.class, restTemplate.getMessageConverters());
|
||||
responseExtractor = new HttpMessageConverterExtractor<>(EmployeeList.class, restTemplate
|
||||
.getMessageConverters());
|
||||
|
||||
Map<String, Object> properties = new HashMap<String, Object>();
|
||||
Map<String, Object> 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<String, Object> 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<String, Object> getEmployeeSearchMap(String id) {
|
||||
Map<String, Object> employeeSearchMap = new HashMap<String, Object>();
|
||||
Map<String, Object> employeeSearchMap = new HashMap<>();
|
||||
employeeSearchMap.put("id", id);
|
||||
return employeeSearchMap;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetEmployeeAsJson() throws Exception{
|
||||
public void testGetEmployeeAsJson() throws Exception {
|
||||
Map<String, Object> 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<Object> request = new HttpEntity<Object>(headers);
|
||||
HttpEntity<Object> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user