Skip to content

Commit 581081c

Browse files
committed
Fixed changes in AWS lib calls (due to new AWS version)
Last commit introduced a new AWS library version which has slighlty changed API calls for table name resolver/overrides causing failed unit tests. This changeset aligns with these changes in the AWS library and makes the unit tests green again.
1 parent 99f8c94 commit 581081c

File tree

2 files changed

+30
-31
lines changed

2 files changed

+30
-31
lines changed

src/main/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBTemplate.java

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,40 +31,43 @@
3131

3232
public class DynamoDBTemplate implements DynamoDBOperations,ApplicationContextAware {
3333

34-
protected DynamoDBMapper dynamoDBMapper;
35-
private AmazonDynamoDB amazonDynamoDB;
36-
private DynamoDBMapperConfig dynamoDBMapperConfig;
34+
private final DynamoDBMapper dynamoDBMapper;
35+
private final AmazonDynamoDB amazonDynamoDB;
36+
private final DynamoDBMapperConfig dynamoDBMapperConfig;
3737
private ApplicationEventPublisher eventPublisher;
3838

39-
public DynamoDBTemplate(AmazonDynamoDB amazonDynamoDB,DynamoDBMapperConfig dynamoDBMapperConfig)
39+
public DynamoDBTemplate(AmazonDynamoDB amazonDynamoDB, DynamoDBMapperConfig dynamoDBMapperConfig)
4040
{
41-
this.amazonDynamoDB = amazonDynamoDB;
42-
setDynamoDBMapperConfig(dynamoDBMapperConfig);
41+
this(amazonDynamoDB, dynamoDBMapperConfig, null);
4342
}
4443

4544
public DynamoDBTemplate(AmazonDynamoDB amazonDynamoDB)
4645
{
47-
this.amazonDynamoDB = amazonDynamoDB;
48-
setDynamoDBMapperConfig(null);
46+
this(amazonDynamoDB, null, null);
4947
}
5048

49+
DynamoDBTemplate(AmazonDynamoDB amazonDynamoDB, DynamoDBMapperConfig dynamoDBMapperConfig, DynamoDBMapper dynamoDBMapper) {
50+
this.amazonDynamoDB = amazonDynamoDB;
51+
if (dynamoDBMapperConfig == null) {
52+
this.dynamoDBMapperConfig = DynamoDBMapperConfig.DEFAULT;
53+
this.dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB);
54+
// Mapper must be null as it could not have been constructed without a Config
55+
assert dynamoDBMapper == null;
56+
} else {
57+
this.dynamoDBMapperConfig = dynamoDBMapperConfig;
58+
if (dynamoDBMapper == null) {
59+
this.dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB, dynamoDBMapperConfig);
60+
} else {
61+
this.dynamoDBMapper = dynamoDBMapper;
62+
}
63+
}
64+
}
65+
5166
@Override
5267
public void setApplicationContext(ApplicationContext applicationContext)
5368
throws BeansException {
5469
this.eventPublisher = applicationContext;
5570
}
56-
57-
58-
public void setDynamoDBMapperConfig(DynamoDBMapperConfig dynamoDBMapperConfig)
59-
{
60-
this.dynamoDBMapperConfig = dynamoDBMapperConfig;
61-
dynamoDBMapper = dynamoDBMapperConfig == null ? new DynamoDBMapper(amazonDynamoDB) : new DynamoDBMapper(
62-
amazonDynamoDB, dynamoDBMapperConfig);
63-
if (dynamoDBMapperConfig == null)
64-
{
65-
this.dynamoDBMapperConfig = DynamoDBMapperConfig.DEFAULT;
66-
}
67-
}
6871

6972
@Override
7073
public <T> int count(Class<T> domainClass,

src/test/java/org/socialsignin/spring/data/dynamodb/core/DynamoDBTemplateUnitTest.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,16 @@ public class DynamoDBTemplateUnitTest {
2323

2424
@Mock
2525
private DynamoDBMapper dynamoDBMapper;
26-
2726
@Mock
2827
private AmazonDynamoDB dynamoDB;
28+
@Mock
29+
private DynamoDBMapperConfig dynamoDBMapperConfig;
2930

3031
private DynamoDBTemplate dynamoDBTemplate;
3132

3233
@Before
3334
public void setUp() {
34-
35-
this.dynamoDBTemplate = new DynamoDBTemplate(dynamoDB);
36-
this.dynamoDBTemplate.dynamoDBMapper = dynamoDBMapper;
37-
35+
this.dynamoDBTemplate = new DynamoDBTemplate(dynamoDB, dynamoDBMapperConfig, dynamoDBMapper);
3836
}
3937

4038
@SuppressWarnings("unchecked")
@@ -58,41 +56,39 @@ public void testBatchSave_CallsCorrectDynamoDBMapperMethod()
5856
@Test
5957
public void testGetOverriddenTableName_WhenConfigIsNull()
6058
{
61-
String overriddenTableName = dynamoDBTemplate.getOverriddenTableName(Object.class, "someTableName");
59+
String overriddenTableName = dynamoDBTemplate.getOverriddenTableName(User.class, "someTableName");
6260
Assert.assertEquals("someTableName", overriddenTableName);
6361
}
6462

6563
@Test
6664
public void testGetOverriddenTableName()
6765
{
68-
String overriddenTableName = dynamoDBTemplate.getOverriddenTableName(Object.class, "someTableName");
66+
String overriddenTableName = dynamoDBTemplate.getOverriddenTableName(User.class, "someTableName");
6967
Assert.assertEquals("someTableName", overriddenTableName);
7068
}
7169

7270
@Test
7371
public void testGetOverriddenTableName_WithTableNameResolver()
7472
{
75-
DynamoDBMapperConfig dynamoDBMapperConfig = Mockito.mock(DynamoDBMapperConfig.class);
7673
TableNameResolver tableNameResolver = Mockito.mock(TableNameResolver.class);
7774
Mockito.when(tableNameResolver.getTableName(Object.class, dynamoDBMapperConfig)).thenReturn(
7875
"someOtherTableName");
7976
Mockito.when(dynamoDBMapperConfig.getTableNameResolver()).thenReturn(tableNameResolver);
80-
dynamoDBTemplate.setDynamoDBMapperConfig(dynamoDBMapperConfig);
8177
String overriddenTableName = dynamoDBTemplate.getOverriddenTableName(Object.class, "someTableName");
8278
Assert.assertEquals("someOtherTableName", overriddenTableName);
8379
}
8480

8581
@Test
8682
public void testLoadByHashKey_WhenDynamoDBMapperReturnsNull()
8783
{
88-
User user = dynamoDBTemplate.load(User.class, "someHashKey");
84+
User user = dynamoDBTemplate.load(User.class, "someHashKey");
8985
Assert.assertNull(user);
9086
}
9187

9288
@Test
9389
public void testLoadByHashKeyAndRangeKey_WhenDynamoDBMapperReturnsNull()
9490
{
95-
Playlist playlist = dynamoDBTemplate.load(Playlist.class, "someHashKey","someRangeKey");
91+
Playlist playlist = dynamoDBTemplate.load(Playlist.class, "someHashKey","someRangeKey");
9692
Assert.assertNull(playlist);
9793
}
9894

0 commit comments

Comments
 (0)