Commit be398741 authored by Dave Syer's avatar Dave Syer

Fix binary incompatibility of old TestRestTemplate

The TestRestTemplate is deprecated (so people can still use it)
but unusable because it only has constructors which depend on the
new options enum.
parent b97ebdd1
...@@ -19,37 +19,70 @@ package org.springframework.boot.test; ...@@ -19,37 +19,70 @@ package org.springframework.boot.test;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
/** /**
* Convenient subclass of {@link RestTemplate} that is suitable for integration tests. * Convenient subclass of {@link RestTemplate} that is suitable for integration
* They are fault tolerant, and optionally can carry Basic authentication headers. If * tests. They are fault tolerant, and optionally can carry Basic authentication
* Apache Http Client 4.3.2 or better is available (recommended) it will be used as the * headers. If Apache Http Client 4.3.2 or better is available (recommended) it
* client, and by default configured to ignore cookies and redirects. * will be used as the client, and by default configured to ignore cookies and
* redirects.
* *
* @author Dave Syer * @author Dave Syer
* @author Phillip Webb * @author Phillip Webb
* @deprecated as of 1.4 in favor of * @deprecated as of 1.4 in favor of
* {@link org.springframework.boot.test.web.client.TestRestTemplate} * {@link org.springframework.boot.test.web.client.TestRestTemplate}
*/ */
@Deprecated @Deprecated
public class TestRestTemplate public class TestRestTemplate extends org.springframework.boot.test.web.client.TestRestTemplate {
extends org.springframework.boot.test.web.client.TestRestTemplate {
/** /**
* Create a new {@link TestRestTemplate} instance. * Create a new {@link TestRestTemplate} instance.
* @param httpClientOptions client options to use if the Apache HTTP Client is used *
* @param httpClientOptions
* client options to use if the Apache HTTP Client is used
*/ */
public TestRestTemplate(HttpClientOption... httpClientOptions) { public TestRestTemplate(HttpClientOption... httpClientOptions) {
super(httpClientOptions); super(options(httpClientOptions));
} }
/** /**
* Create a new {@link TestRestTemplate} instance with the specified credentials. * Create a new {@link TestRestTemplate} instance with the specified
* @param username the username to use (or {@code null}) * credentials.
* @param password the password (or {@code null}) *
* @param httpClientOptions client options to use if the Apache HTTP Client is used * @param username
* the username to use (or {@code null})
* @param password
* the password (or {@code null})
* @param httpClientOptions
* client options to use if the Apache HTTP Client is used
*/ */
public TestRestTemplate(String username, String password, public TestRestTemplate(String username, String password, HttpClientOption... httpClientOptions) {
HttpClientOption... httpClientOptions) { super(username, password, options(httpClientOptions));
super(username, password, httpClientOptions); }
private static org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption[] options(
HttpClientOption[] httpClientOptions) {
org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption[] result = new org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption[httpClientOptions.length];
for (int i = 0; i < httpClientOptions.length; i++) {
HttpClientOption httpClientOption = httpClientOptions[i];
result[i] = org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption.valueOf(httpClientOption.name());
}
return result;
}
/**
* Options used to customize the Apache Http Client if it is used.
*/
public enum HttpClientOption {
/**
* Enable cookies.
*/
ENABLE_COOKIES,
/**
* Enable redirects.
*/
ENABLE_REDIRECTS
} }
} }
package org.springframework.boot.test;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
public class TestRestTemplateTests {
@Test
public void canCreateTemplateFromOwnOptions() {
TestRestTemplate template = new TestRestTemplate(TestRestTemplate.HttpClientOption.ENABLE_REDIRECTS);
assertThat(template).isNotNull();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment