-
Notifications
You must be signed in to change notification settings - Fork 3
/
LowkeyVaultContainerJupiterTest.java
76 lines (64 loc) · 3.44 KB
/
LowkeyVaultContainerJupiterTest.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
package com.github.nagyesta.lowkeyvault.testcontainers;
import com.azure.core.credential.BasicAuthenticationCredential;
import com.azure.core.credential.TokenCredential;
import com.github.nagyesta.lowkeyvault.http.ApacheHttpClient;
import com.github.nagyesta.lowkeyvault.http.AuthorityOverrideFunction;
import org.apache.http.conn.ssl.DefaultHostnameVerifier;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.junit.jupiter.api.Test;
import org.testcontainers.images.PullPolicy;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import static com.github.nagyesta.lowkeyvault.testcontainers.LowkeyVaultContainerBuilder.lowkeyVault;
@Testcontainers
class LowkeyVaultContainerJupiterTest extends AbstractLowkeyVaultContainerTest {
private static final String VAULT_NAME = "jupiter";
public static final String ALIAS = "lowkey-vault.local";
@Container
private final LowkeyVaultContainer underTest = lowkeyVault(DockerImageName
.parse(getCurrentLowkeyVaultImageName())
.asCompatibleSubstituteFor(LowkeyVaultContainer.DEFAULT_IMAGE_NAME))
.vaultNames(Collections.singleton(VAULT_NAME))
.vaultAliases(Map.of(VAULT_NAME + ".localhost", Set.of(ALIAS))).build()
.withImagePullPolicy(PullPolicy.defaultPolicy());
@Test
void testContainerShouldStartUpWhenCalledWithValidNames() {
//given + when test container is created
//then
final String endpoint = underTest.getVaultBaseUrl(VAULT_NAME);
final AuthorityOverrideFunction authorityOverrideFunction = new AuthorityOverrideFunction(
underTest.getVaultAuthority(VAULT_NAME),
underTest.getEndpointAuthority());
final TokenCredential credentials = new BasicAuthenticationCredential(underTest.getUsername(), underTest.getPassword());
final ApacheHttpClient httpClient = new ApacheHttpClient(authorityOverrideFunction,
new TrustSelfSignedStrategy(), new DefaultHostnameVerifier());
verifyConnectionIsWorking(endpoint, httpClient, credentials);
}
@Test
void testContainerShouldStartUpWhenCalledWithValidNamesUsingAlias() {
//given + when test container is created
//then
final String endpoint = "https://" + ALIAS;
final AuthorityOverrideFunction authorityOverrideFunction = new AuthorityOverrideFunction(
ALIAS,
underTest.getEndpointAuthority());
final TokenCredential credentials = new BasicAuthenticationCredential(underTest.getUsername(), underTest.getPassword());
final ApacheHttpClient httpClient = new ApacheHttpClient(authorityOverrideFunction,
new TrustSelfSignedStrategy(), new DefaultHostnameVerifier());
verifyConnectionIsWorking(endpoint, httpClient, credentials);
}
@Test
void testContainerShouldProvideTokenEndpointWhenCalledWithValidParameters() {
//given + when test container is created
//then
final String endpoint = underTest.getTokenEndpointUrl();
final ApacheHttpClient httpClient = new ApacheHttpClient(Function.identity(),
new TrustSelfSignedStrategy(), new DefaultHostnameVerifier());
verifyTokenEndpointIsWorking(endpoint, httpClient);
}
}