16
16
package io .awspring .cloud .autoconfigure .dynamodb ;
17
17
18
18
import static org .assertj .core .api .Assertions .assertThat ;
19
- import static org .mockito .Mockito .spy ;
20
- import static org .mockito .Mockito .verify ;
21
19
22
20
import io .awspring .cloud .autoconfigure .ConfiguredAwsClient ;
23
21
import io .awspring .cloud .autoconfigure .core .AwsAutoConfiguration ;
24
22
import io .awspring .cloud .autoconfigure .core .AwsClientCustomizer ;
25
23
import io .awspring .cloud .autoconfigure .core .CredentialsProviderAutoConfiguration ;
26
24
import io .awspring .cloud .autoconfigure .core .RegionProviderAutoConfiguration ;
25
+ import io .awspring .cloud .dynamodb .DefaultDynamoDbTableResolver ;
27
26
import io .awspring .cloud .dynamodb .DynamoDbTableNameResolver ;
28
- import io .awspring .cloud .dynamodb .DynamoDbTableSchemaResolver ;
27
+ import io .awspring .cloud .dynamodb .DynamoDbTableResolver ;
29
28
import io .awspring .cloud .dynamodb .DynamoDbTemplate ;
30
29
import java .net .URI ;
31
30
import java .time .Duration ;
51
50
* Tests for {@link DynamoDbAutoConfiguration}.
52
51
*
53
52
* @author Matej Nedic
53
+ * @author Maciej Walkowiak
54
54
*/
55
55
class DynamoDbAutoConfigurationTest {
56
56
@@ -71,15 +71,14 @@ void dynamoDBAutoConfigurationIsDisabled() {
71
71
@ Test
72
72
void customTableResolverResolverCanBeConfigured () {
73
73
contextRunner .withUserConfiguration (CustomDynamoDbConfiguration .class ).run (context -> {
74
- DynamoDbTableSchemaResolver dynamoDbTableSchemaResolver = context
75
- .getBean (DynamoDbTableSchemaResolver .class );
74
+ DynamoDbTableResolver dynamoDbTableResolver = context .getBean (DynamoDbTableResolver .class );
76
75
DynamoDbTableNameResolver dynamoDBDynamoDbTableNameResolver = context
77
76
.getBean (DynamoDbTableNameResolver .class );
78
77
79
- assertThat (dynamoDbTableSchemaResolver ).isNotNull ();
78
+ assertThat (dynamoDbTableResolver ).isNotNull ();
80
79
assertThat (dynamoDBDynamoDbTableNameResolver ).isNotNull ();
81
80
82
- assertThat (dynamoDbTableSchemaResolver ).isInstanceOf (CustomDynamoDBDynamoDbTableSchemaResolver .class );
81
+ assertThat (dynamoDbTableResolver ).isInstanceOf (CustomDynamoDBDynamoDbTableResolver .class );
83
82
assertThat (dynamoDBDynamoDbTableNameResolver )
84
83
.isInstanceOf (CustomDynamoDBDynamoDbTableNameResolver .class );
85
84
@@ -130,29 +129,16 @@ void customDynamoDbClientConfigurer() {
130
129
}
131
130
132
131
@ Test
133
- void tableSchemaBeansGetRegistered () {
134
-
135
- contextRunner .withUserConfiguration (TableSchemaConfiguration .class ).run (context -> {
136
- var schemaResolver = context .getBean (DynamoDbTableSchemaResolver .class );
137
- var nameResolver = context .getBean (DynamoDbTableNameResolver .class );
138
-
139
- assertThat (schemaResolver ).isNotNull ();
140
- assertThat (nameResolver ).isNotNull ();
141
-
142
- assertTableSchemaRegistered (context .getBean ("firstTableSchema" , TableSchema .class ), nameResolver ,
143
- schemaResolver );
144
- assertTableSchemaRegistered (context .getBean ("secondTableSchema" , TableSchema .class ), nameResolver ,
145
- schemaResolver );
146
-
147
- });
148
- }
149
-
150
- private static void assertTableSchemaRegistered (TableSchema <?> tableSchema ,
151
- DynamoDbTableNameResolver nameResolver , DynamoDbTableSchemaResolver schemaResolver ) {
152
- var tableName = verify (nameResolver ).resolve (tableSchema .itemType ().rawClass ());
153
- verify (schemaResolver ).register (tableSchema , tableName );
132
+ void tableSchemaBeansRegistered () {
133
+ contextRunner .withUserConfiguration (DynamoDbAutoConfigurationTest .TableSchemaConfiguration .class )
134
+ .run (context -> {
135
+ DefaultDynamoDbTableResolver schemaResolver = context
136
+ .getBean (DefaultDynamoDbTableResolver .class );
137
+ TableSchema <TableSchemaConfiguration .Person > personTableSchema = schemaResolver
138
+ .resolveTableSchema (TableSchemaConfiguration .Person .class );
139
+ assertThat (context .getBean ("personTableSchema" )).isEqualTo (personTableSchema );
140
+ });
154
141
}
155
-
156
142
}
157
143
158
144
@ Nested
@@ -252,16 +238,14 @@ void customTableResolverResolverCanBeConfigured() {
252
238
.withPropertyValues (
253
239
"spring.cloud.aws.dynamodb.dax.url:dax://something.dax-clusters.us-east-1.amazonaws.com" )
254
240
.withUserConfiguration (CustomDynamoDbConfiguration .class ).run (context -> {
255
- DynamoDbTableSchemaResolver dynamoDbTableSchemaResolver = context
256
- .getBean (DynamoDbTableSchemaResolver .class );
241
+ DynamoDbTableResolver dynamoDbTableResolver = context .getBean (DynamoDbTableResolver .class );
257
242
DynamoDbTableNameResolver dynamoDBDynamoDbTableNameResolver = context
258
243
.getBean (DynamoDbTableNameResolver .class );
259
244
260
- assertThat (dynamoDbTableSchemaResolver ).isNotNull ();
245
+ assertThat (dynamoDbTableResolver ).isNotNull ();
261
246
assertThat (dynamoDBDynamoDbTableNameResolver ).isNotNull ();
262
247
263
- assertThat (dynamoDbTableSchemaResolver )
264
- .isInstanceOf (CustomDynamoDBDynamoDbTableSchemaResolver .class );
248
+ assertThat (dynamoDbTableResolver ).isInstanceOf (CustomDynamoDBDynamoDbTableResolver .class );
265
249
assertThat (dynamoDBDynamoDbTableNameResolver )
266
250
.isInstanceOf (CustomDynamoDBDynamoDbTableNameResolver .class );
267
251
@@ -274,8 +258,8 @@ void customTableResolverResolverCanBeConfigured() {
274
258
static class CustomDynamoDbConfiguration {
275
259
276
260
@ Bean
277
- DynamoDbTableSchemaResolver tableSchemaResolver () {
278
- return new CustomDynamoDBDynamoDbTableSchemaResolver ();
261
+ DynamoDbTableResolver tableSchemaResolver () {
262
+ return new CustomDynamoDBDynamoDbTableResolver ();
279
263
}
280
264
281
265
@ Bean
@@ -285,10 +269,15 @@ DynamoDbTableNameResolver tableNameResolver() {
285
269
286
270
}
287
271
288
- static class CustomDynamoDBDynamoDbTableSchemaResolver implements DynamoDbTableSchemaResolver {
272
+ static class CustomDynamoDBDynamoDbTableResolver implements DynamoDbTableResolver {
289
273
290
274
@ Override
291
- public <T > TableSchema resolve (Class <T > clazz , String tableName ) {
275
+ public <T > TableSchema resolveTableSchema (Class <T > clazz ) {
276
+ return null ;
277
+ }
278
+
279
+ @ Override
280
+ public String resolveTableName (Class <?> aClass ) {
292
281
return null ;
293
282
}
294
283
@@ -330,25 +319,12 @@ public SdkHttpClient httpClient() {
330
319
static class TableSchemaConfiguration {
331
320
332
321
@ Bean
333
- TableSchema <Object > firstTableSchema () {
334
- return StaticTableSchema .builder (Object .class ).build ();
335
- }
336
-
337
- @ Bean
338
- TableSchema <String > secondTableSchema () {
339
- return StaticTableSchema .builder (String .class ).build ();
322
+ TableSchema <Person > personTableSchema () {
323
+ return StaticTableSchema .builder (Person .class ).build ();
340
324
}
341
325
342
- @ Bean
343
- DynamoDbTableSchemaResolver schemaResolver () {
344
- return spy (CustomDynamoDBDynamoDbTableSchemaResolver .class );
326
+ static class Person {
345
327
}
346
-
347
- @ Bean
348
- DynamoDbTableNameResolver tableNameResolver () {
349
- return spy (CustomDynamoDBDynamoDbTableNameResolver .class );
350
- }
351
-
352
328
}
353
329
354
330
}
0 commit comments