1
2
3
4
5 package com.jcabi.dynamo;
6
7 import org.hamcrest.MatcherAssert;
8 import org.hamcrest.Matchers;
9 import org.junit.jupiter.api.Test;
10 import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
11
12
13
14
15
16 final class CredentialsTest {
17
18 @Test
19 void instantiatesAwsClient() {
20 final DynamoDbClient aws = new Credentials.Simple(
21 "ABABABABABABABABABEF",
22 "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCEF"
23 ).aws();
24 MatcherAssert.assertThat(
25 "Simple credentials did not create AWS client",
26 aws,
27 Matchers.notNullValue()
28 );
29 aws.close();
30 }
31
32 @Test
33 void instantiatesAwsClientWithCustomRegion() {
34 final DynamoDbClient aws = new Credentials.Simple(
35 "ABABABABABABABABABAB",
36 "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE",
37 "eu-west-1"
38 ).aws();
39 MatcherAssert.assertThat(
40 "Simple credentials with region did not create AWS client",
41 aws,
42 Matchers.notNullValue()
43 );
44 aws.close();
45 }
46
47 @Test
48 void formatsSimpleAsString() {
49 MatcherAssert.assertThat(
50 "Simple credentials did not format as region/key",
51 new Credentials.Simple(
52 "t\u00e9st-k\u00e9y-000000000",
53 "s\u00e9cr\u00e9t-0000000000000000000000000000",
54 "us-\u00e9ast-1"
55 ).toString(),
56 Matchers.equalTo("us-\u00e9ast-1/t\u00e9st-k\u00e9y-000000000")
57 );
58 }
59
60 @Test
61 void instantiatesAssumedClient() {
62 final DynamoDbClient aws = new Credentials.Assumed().aws();
63 MatcherAssert.assertThat(
64 "Assumed credentials did not create AWS client",
65 aws,
66 Matchers.notNullValue()
67 );
68 aws.close();
69 }
70
71 @Test
72 void instantiatesAssumedClientWithRegion() {
73 final DynamoDbClient aws =
74 new Credentials.Assumed("eu-west-1").aws();
75 MatcherAssert.assertThat(
76 "Assumed credentials with region did not create AWS client",
77 aws,
78 Matchers.notNullValue()
79 );
80 aws.close();
81 }
82
83 @Test
84 void formatsAssumedAsString() {
85 MatcherAssert.assertThat(
86 "Assumed credentials did not format as region",
87 new Credentials.Assumed("us-w\u00e9st-2").toString(),
88 Matchers.equalTo("us-w\u00e9st-2")
89 );
90 }
91
92 @Test
93 void instantiatesDirectClient() {
94 final DynamoDbClient aws = new Credentials.Direct(
95 new Credentials.Simple(
96 "ABABABABABABABABAB00",
97 "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABC00"
98 ),
99 "http://localhost:8080"
100 ).aws();
101 MatcherAssert.assertThat(
102 "Direct credentials did not create AWS client",
103 aws,
104 Matchers.notNullValue()
105 );
106 aws.close();
107 }
108
109 @Test
110 void instantiatesDirectClientWithPort() {
111 final DynamoDbClient aws = new Credentials.Direct(
112 new Credentials.Simple(
113 "ABABABABABABABABAB01",
114 "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABC01"
115 ),
116 12_345
117 ).aws();
118 MatcherAssert.assertThat(
119 "Direct credentials with port did not create AWS client",
120 aws,
121 Matchers.notNullValue()
122 );
123 aws.close();
124 }
125
126 @Test
127 void formatsDirectAsString() {
128 MatcherAssert.assertThat(
129 "Direct credentials did not format with origin and endpoint",
130 new Credentials.Direct(
131 new Credentials.Simple(
132 "ABABABABABABABABAB02",
133 "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABC02",
134 "us-\u00e9ast-1"
135 ),
136 "http://loc\u00e4l:9999"
137 ).toString(),
138 Matchers.allOf(
139 Matchers.containsString("us-\u00e9ast-1"),
140 Matchers.containsString("http://loc\u00e4l:9999")
141 )
142 );
143 }
144
145 }