forked from quarkusio/quarkus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConfigurationTest.java
106 lines (88 loc) · 4.66 KB
/
ConfigurationTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package io.quarkus.rest.client.reactive;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Set;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.eclipse.microprofile.rest.client.ext.QueryParamStyle;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import io.quarkus.arc.Arc;
import io.quarkus.restclient.config.RestClientConfig;
import io.quarkus.restclient.config.RestClientsConfig;
import io.quarkus.test.QuarkusUnitTest;
public class ConfigurationTest {
@RegisterExtension
static final QuarkusUnitTest TEST = new QuarkusUnitTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
.addClasses(HelloClientWithBaseUri.class, HelloResource.class))
.withConfigurationResource("configuration-test-application.properties");
@RestClient
HelloClientWithBaseUri client;
@Inject
RestClientsConfig configRoot;
@Test
void shouldHaveSingletonScope() {
BeanManager beanManager = Arc.container().beanManager();
Set<Bean<?>> beans = beanManager.getBeans(HelloClientWithBaseUri.class, RestClient.LITERAL);
Bean<?> resolvedBean = beanManager.resolve(beans);
assertThat(resolvedBean.getScope()).isEqualTo(Singleton.class);
}
@Test
void clientShouldRespond() {
assertThat(client.echo("world!")).isEqualTo("hello, world!");
}
@Test
void configurationShouldBeLoaded() {
assertThat(configRoot.disableSmartProduces).isPresent();
assertThat(configRoot.disableSmartProduces.get()).isTrue();
assertThat(configRoot.multipartPostEncoderMode).isPresent();
assertThat(configRoot.multipartPostEncoderMode.get()).isEqualTo("HTML5");
assertThat(configRoot.configs.size()).isEqualTo(4);
RestClientConfig clientConfig = configRoot.configs.get("io.quarkus.rest.client.reactive.HelloClientWithBaseUri");
verifyClientConfig(clientConfig, true);
clientConfig = configRoot.configs.get("client-prefix");
verifyClientConfig(clientConfig, true);
assertThat(clientConfig.proxyAddress.isPresent()).isTrue();
assertThat(clientConfig.proxyAddress.get()).isEqualTo("localhost:8080");
clientConfig = configRoot.configs.get("quoted-client-prefix");
assertThat(clientConfig.url.isPresent()).isTrue();
assertThat(clientConfig.url.get()).endsWith("/hello");
clientConfig = configRoot.configs.get("mp-client-prefix");
verifyClientConfig(clientConfig, false);
assertThat(clientConfig.maxRedirects.isPresent()).isTrue();
assertThat(clientConfig.maxRedirects.get()).isEqualTo(4);
}
private void verifyClientConfig(RestClientConfig clientConfig, boolean checkExtraProperties) {
assertThat(clientConfig.url).isPresent();
assertThat(clientConfig.url.get()).endsWith("/hello");
assertThat(clientConfig.scope).isPresent();
assertThat(clientConfig.scope.get()).isEqualTo("Singleton");
assertThat(clientConfig.providers).isPresent();
assertThat(clientConfig.providers.get())
.isEqualTo("io.quarkus.rest.client.reactive.HelloClientWithBaseUri$MyResponseFilter");
assertThat(clientConfig.connectTimeout).isPresent();
assertThat(clientConfig.connectTimeout.get()).isEqualTo(5000);
assertThat(clientConfig.readTimeout).isPresent();
assertThat(clientConfig.readTimeout.get()).isEqualTo(6000);
assertThat(clientConfig.followRedirects).isPresent();
assertThat(clientConfig.followRedirects.get()).isEqualTo(true);
assertThat(clientConfig.queryParamStyle).isPresent();
assertThat(clientConfig.queryParamStyle.get()).isEqualTo(QueryParamStyle.COMMA_SEPARATED);
assertThat(clientConfig.hostnameVerifier).isPresent();
assertThat(clientConfig.hostnameVerifier.get())
.isEqualTo("io.quarkus.rest.client.reactive.HelloClientWithBaseUri$MyHostnameVerifier");
if (checkExtraProperties) {
assertThat(clientConfig.connectionTTL).isPresent();
assertThat(clientConfig.connectionTTL.get()).isEqualTo(30000);
assertThat(clientConfig.connectionPoolSize).isPresent();
assertThat(clientConfig.connectionPoolSize.get()).isEqualTo(10);
assertThat(clientConfig.maxRedirects).isPresent();
assertThat(clientConfig.maxRedirects.get()).isEqualTo(5);
}
}
}