Guard test against sealed and uninitialized Vault

Add try/catch to guard test from exception.
This commit is contained in:
Mark Paluch
2016-06-23 08:44:03 +02:00
parent 656c181178
commit a8e9feff67

View File

@@ -22,10 +22,13 @@ import org.junit.Test;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.cloud.vault.util.Settings;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.Netty4ClientHttpRequestFactory;
import org.springframework.http.client.OkHttpClientHttpRequestFactory;
import org.springframework.web.client.HttpStatusCodeException;
import org.springframework.web.client.RestTemplate;
/**
@@ -36,18 +39,16 @@ import org.springframework.web.client.RestTemplate;
public class ClientHttpRequestFactoryFactoryIntegrationTests {
private VaultProperties vaultProperties = Settings.createVaultProperties();
private String url = String.format("%s://%s:%d/v1/sys/health?sealedcode=200",
vaultProperties.getScheme(), vaultProperties.getHost(),
private String url = String.format("%s://%s:%d/v1/sys/health", vaultProperties.getScheme(), vaultProperties.getHost(),
vaultProperties.getPort());
@Test
public void httpComponentsClientShouldWork() throws Exception {
ClientHttpRequestFactory factory = HttpComponents
.usingHttpComponents(vaultProperties);
ClientHttpRequestFactory factory = HttpComponents.usingHttpComponents(vaultProperties);
RestTemplate template = new RestTemplate(factory);
String response = template.getForObject(url, String.class);
String response = request(template);
assertThat(factory).isInstanceOf(HttpComponentsClientHttpRequestFactory.class);
assertThat(response).isNotNull().contains("initialized");
@@ -55,15 +56,25 @@ public class ClientHttpRequestFactoryFactoryIntegrationTests {
((DisposableBean) factory).destroy();
}
private String request(RestTemplate template) {
// Uninitialized and sealed can cause status 500
try {
ResponseEntity<String> responseEntity = template.exchange(url, HttpMethod.GET, null, String.class);
return responseEntity.getBody();
} catch (HttpStatusCodeException e) {
return e.getResponseBodyAsString();
}
}
@Test
public void nettyClientShouldWork() throws Exception {
ClientHttpRequestFactory factory = Netty
.usingNetty(vaultProperties);
ClientHttpRequestFactory factory = Netty.usingNetty(vaultProperties);
((InitializingBean) factory).afterPropertiesSet();
RestTemplate template = new RestTemplate(factory);
String response = template.getForObject(url, String.class);
String response = request(template);
assertThat(factory).isInstanceOf(Netty4ClientHttpRequestFactory.class);
assertThat(response).isNotNull().contains("initialized");
@@ -74,15 +85,14 @@ public class ClientHttpRequestFactoryFactoryIntegrationTests {
@Test
public void okHttpClientShouldWork() throws Exception {
ClientHttpRequestFactory factory = OkHttp
.usingOkHttp(vaultProperties);
ClientHttpRequestFactory factory = OkHttp.usingOkHttp(vaultProperties);
RestTemplate template = new RestTemplate(factory);
String response = template.getForObject(url, String.class);
String response = request(template);
assertThat(factory).isInstanceOf(OkHttpClientHttpRequestFactory.class);
assertThat(response).isNotNull().contains("initialized");
((DisposableBean) factory).destroy();
}
}
}