Skip to content

Commit e33be5f

Browse files
Addressing comments (refactoring, removing duplicated tests).
1 parent b278881 commit e33be5f

File tree

9 files changed

+52
-154
lines changed

9 files changed

+52
-154
lines changed

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/DefaultMethodsUnsupportedOperationTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package software.amazon.awssdk.enhanced.dynamodb;
1717

1818
import static java.util.stream.Collectors.toList;
19+
import static org.junit.jupiter.api.Assertions.assertEquals;
1920
import static org.junit.jupiter.api.Assertions.assertThrows;
2021
import static org.mockito.Mockito.CALLS_REAL_METHODS;
2122
import static org.mockito.Mockito.mock;
@@ -47,14 +48,15 @@ public class DefaultMethodsUnsupportedOperationTest {
4748

4849
@TestFactory
4950
Stream<DynamicTest> testDefaultMethodsThrowUnsupportedOperation() {
50-
return scanPackageForClasses(BASE_PACKAGE)
51+
List<DynamicTest> dynamicTestList = scanPackageForClasses(BASE_PACKAGE)
5152
.filter(Class::isInterface)
5253
.filter(this::hasDefaultMethods)
5354
.collect(toList())
5455
.stream()
5556
.flatMap(this::createTestsForInterface)
56-
.collect(toList())
57-
.stream();
57+
.collect(toList());
58+
assertEquals(100, dynamicTestList.size());
59+
return dynamicTestList.stream();
5860
}
5961

6062
private Stream<Class<?>> scanPackageForClasses(String packageName) {

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/converters/attribute/EnumAttributeConverterTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,11 @@ public void transformFromWithNames_returnsName() {
7272
public void transformToWithNames_returnsEnum() {
7373
EnumAttributeConverter<Person> personConverter = EnumAttributeConverter.createWithNameAsKeys(Person.class);
7474

75-
personConverter.transformTo(AttributeValue.fromS("JOHN"));
76-
}
75+
Person john = personConverter.transformTo(AttributeValue.fromS("JOHN"));
76+
77+
assertThat(Person.JOHN.toString()).isEqualTo("I am a cool person");
78+
assertThat(john).isEqualTo(Person.JOHN);
79+
}
7780

7881
@Test
7982
public void transformTo_whenInputStringIsNull_throwsIllegalArgumentException() {

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/extensions/AutoGeneratedTimestampRecordExtensionTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ void toBuilder_preservesClock() {
3232
.baseClock(customClock)
3333
.build();
3434

35-
AutoGeneratedTimestampRecordExtension.Builder rebuilt = extension.toBuilder();
35+
AutoGeneratedTimestampRecordExtension.Builder rebuiltExtensionBuilder = extension.toBuilder();
36+
AutoGeneratedTimestampRecordExtension rebuiltExtension = rebuiltExtensionBuilder.build();
3637

37-
assertThat(rebuilt).isNotNull();
38+
assertThat(rebuiltExtension).isNotNull();
39+
assertThat(rebuiltExtension).usingRecursiveComparison().isEqualTo(extension);
3840
}
3941

4042
@Test

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/extensions/AutoGeneratedUuidExtensionTest.java

Lines changed: 24 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public class AutoGeneratedUuidExtensionTest {
4545
private static final OperationContext PRIMARY_CONTEXT =
4646
DefaultOperationContext.create(TABLE_NAME, TableMetadata.primaryIndexName());
4747

48-
private final AutoGeneratedUuidExtension atomicCounterExtension = AutoGeneratedUuidExtension.create();
48+
private final AutoGeneratedUuidExtension uuidExtension = AutoGeneratedUuidExtension.create();
4949

5050

5151
private static final StaticTableSchema<ItemWithUuid> ITEM_WITH_UUID_MAPPER =
@@ -66,8 +66,8 @@ public class AutoGeneratedUuidExtensionTest {
6666
.build();
6767

6868
@Test
69-
public void beforeWrite_withNullCustomMetadataObject_returnsNoWriteModifications() {
70-
StaticTableSchema<ItemWithUuid> schemaWithoutUuidAttribute =
69+
public void beforeWrite_schemaWithoutUuidAttribute_returnsEmptyWriteModification() {
70+
StaticTableSchema<ItemWithUuid> schemaWithoutUuidMetadata =
7171
StaticTableSchema.builder(ItemWithUuid.class)
7272
.newItemSupplier(ItemWithUuid::new)
7373
.addAttribute(String.class, a -> a.name("id")
@@ -78,19 +78,17 @@ public void beforeWrite_withNullCustomMetadataObject_returnsNoWriteModifications
7878

7979
ItemWithUuid item = new ItemWithUuid();
8080
item.setId(RECORD_ID);
81-
Map<String, AttributeValue> items = schemaWithoutUuidAttribute.itemToMap(item, true);
81+
Map<String, AttributeValue> items = schemaWithoutUuidMetadata.itemToMap(item, true);
8282

83-
WriteModification result = atomicCounterExtension.beforeWrite(
83+
WriteModification result = uuidExtension.beforeWrite(
8484
DefaultDynamoDbExtensionContext.builder()
8585
.items(items)
86-
.tableMetadata(schemaWithoutUuidAttribute.tableMetadata())
86+
.tableMetadata(schemaWithoutUuidMetadata.tableMetadata())
8787
.operationName(OperationName.PUT_ITEM)
88-
.operationContext(PRIMARY_CONTEXT).build());
88+
.operationContext(PRIMARY_CONTEXT)
89+
.build());
8990

90-
assertThat(result).isNotNull();
91-
assertThat(result.transformedItem()).isNull();
92-
assertThat(result.updateExpression()).isNull();
93-
assertThat(result.additionalConditionalExpression()).isNull();
91+
assertThat(result).usingRecursiveComparison().isEqualTo(WriteModification.builder().build());
9492
}
9593

9694
@Test
@@ -104,11 +102,11 @@ public void beforeWrite_updateItemOperation_hasUuidInItem_doesNotCreateUpdateExp
104102
assertThat(items).hasSize(2);
105103

106104
WriteModification result =
107-
atomicCounterExtension.beforeWrite(DefaultDynamoDbExtensionContext.builder()
108-
.items(items)
109-
.tableMetadata(ITEM_WITH_UUID_MAPPER.tableMetadata())
110-
.operationName(OperationName.UPDATE_ITEM)
111-
.operationContext(PRIMARY_CONTEXT).build());
105+
uuidExtension.beforeWrite(DefaultDynamoDbExtensionContext.builder()
106+
.items(items)
107+
.tableMetadata(ITEM_WITH_UUID_MAPPER.tableMetadata())
108+
.operationName(OperationName.UPDATE_ITEM)
109+
.operationContext(PRIMARY_CONTEXT).build());
112110

113111
Map<String, AttributeValue> transformedItem = result.transformedItem();
114112
assertThat(transformedItem).isNotNull().hasSize(2);
@@ -127,11 +125,11 @@ public void beforeWrite_updateItemOperation_hasNoUuidInItem_doesNotCreatesUpdate
127125
assertThat(items).hasSize(1);
128126

129127
WriteModification result =
130-
atomicCounterExtension.beforeWrite(DefaultDynamoDbExtensionContext.builder()
131-
.items(items)
132-
.tableMetadata(ITEM_WITH_UUID_MAPPER.tableMetadata())
133-
.operationName(OperationName.UPDATE_ITEM)
134-
.operationContext(PRIMARY_CONTEXT).build());
128+
uuidExtension.beforeWrite(DefaultDynamoDbExtensionContext.builder()
129+
.items(items)
130+
.tableMetadata(ITEM_WITH_UUID_MAPPER.tableMetadata())
131+
.operationName(OperationName.UPDATE_ITEM)
132+
.operationContext(PRIMARY_CONTEXT).build());
135133

136134
Map<String, AttributeValue> transformedItem = result.transformedItem();
137135
assertThat(transformedItem).isNotNull().hasSize(2);
@@ -149,11 +147,11 @@ public void beforeWrite_updateItemOperation_UuidNotPresent_newUuidCreated() {
149147
assertThat(items).hasSize(1);
150148

151149
WriteModification result =
152-
atomicCounterExtension.beforeWrite(DefaultDynamoDbExtensionContext.builder()
153-
.items(items)
154-
.tableMetadata(ITEM_WITH_UUID_MAPPER.tableMetadata())
155-
.operationName(OperationName.UPDATE_ITEM)
156-
.operationContext(PRIMARY_CONTEXT).build());
150+
uuidExtension.beforeWrite(DefaultDynamoDbExtensionContext.builder()
151+
.items(items)
152+
.tableMetadata(ITEM_WITH_UUID_MAPPER.tableMetadata())
153+
.operationName(OperationName.UPDATE_ITEM)
154+
.operationContext(PRIMARY_CONTEXT).build());
157155
assertThat(result.transformedItem()).isNotNull();
158156
assertThat(result.updateExpression()).isNull();
159157
assertThat(result.transformedItem()).hasSize(2);
@@ -184,32 +182,6 @@ void IllegalArgumentException_for_AutogeneratedUuid_withNonStringType() {
184182
+ " to be used as a Auto Generated Uuid attribute. Only String Class type is supported.");
185183
}
186184

187-
@Test
188-
public void beforeWrite_noCustomMetadata_returnsEmptyModification() {
189-
StaticTableSchema<ItemWithUuid> schemaWithoutMetadata =
190-
StaticTableSchema.builder(ItemWithUuid.class)
191-
.newItemSupplier(ItemWithUuid::new)
192-
.addAttribute(String.class, a -> a.name("id")
193-
.getter(ItemWithUuid::getId)
194-
.setter(ItemWithUuid::setId)
195-
.addTag(primaryPartitionKey()))
196-
.build();
197-
198-
ItemWithUuid item = new ItemWithUuid();
199-
item.setId(RECORD_ID);
200-
Map<String, AttributeValue> items = schemaWithoutMetadata.itemToMap(item, true);
201-
202-
WriteModification result = atomicCounterExtension.beforeWrite(
203-
DefaultDynamoDbExtensionContext.builder()
204-
.items(items)
205-
.tableMetadata(schemaWithoutMetadata.tableMetadata())
206-
.operationName(OperationName.PUT_ITEM)
207-
.operationContext(PRIMARY_CONTEXT)
208-
.build());
209-
210-
assertThat(result).isEqualTo(WriteModification.builder().build());
211-
}
212-
213185
public static boolean isValidUuid(String uuid) {
214186
return UUID_PATTERN.matcher(uuid).matches();
215187
}

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/extensions/AtomicCounterExtensionTest.java

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -263,22 +263,16 @@ public void setCustomCounter(Long customCounter) {
263263

264264
@Override
265265
public boolean equals(Object o) {
266-
if (this == o) {
267-
return true;
268-
}
269266
if (o == null || getClass() != o.getClass()) {
270267
return false;
271268
}
272-
StaticCounterRecord that = (StaticCounterRecord) o;
273-
return Objects.equals(id, that.id)
274-
&& Objects.equals(data, that.data)
275-
&& Objects.equals(defaultCounter, that.defaultCounter)
276-
&& Objects.equals(customCounter, that.customCounter);
269+
BeanCounterRecord that = (BeanCounterRecord) o;
270+
return Objects.equals(id, that.id) && Objects.equals(data, that.data) && Objects.equals(defaultCounter, that.defaultCounter) && Objects.equals(customCounter, that.customCounter);
277271
}
278272

279273
@Override
280274
public int hashCode() {
281-
return Objects.hash(id, defaultCounter, customCounter);
275+
return Objects.hash(id, data, defaultCounter, customCounter);
282276
}
283277
}
284278

@@ -322,22 +316,16 @@ public void setCustomCounter(Long customCounter) {
322316

323317
@Override
324318
public boolean equals(Object o) {
325-
if (this == o) {
326-
return true;
327-
}
328319
if (o == null || getClass() != o.getClass()) {
329320
return false;
330321
}
331322
StaticCounterRecord that = (StaticCounterRecord) o;
332-
return Objects.equals(id, that.id)
333-
&& Objects.equals(data, that.data)
334-
&& Objects.equals(defaultCounter, that.defaultCounter)
335-
&& Objects.equals(customCounter, that.customCounter);
323+
return Objects.equals(id, that.id) && Objects.equals(data, that.data) && Objects.equals(defaultCounter, that.defaultCounter) && Objects.equals(customCounter, that.customCounter);
336324
}
337325

338326
@Override
339327
public int hashCode() {
340-
return Objects.hash(id, defaultCounter, customCounter);
328+
return Objects.hash(id, data, defaultCounter, customCounter);
341329
}
342330
}
343331
}

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/models/AbstractImmutable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public String getSort() {
4141
return sort;
4242
}
4343

44-
public String stringAttribute() {
44+
public String getStringAttribute() {
4545
return stringAttribute;
4646
}
4747

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/models/SimpleImmutable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public String getSort() {
4545
return sort;
4646
}
4747

48-
public String stringAttribute() {
48+
public String getStringAttribute() {
4949
return stringAttribute;
5050
}
5151

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtilsTest.java

Lines changed: 5 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,14 @@
2121
import java.util.HashMap;
2222
import java.util.List;
2323
import java.util.Map;
24-
import java.util.Objects;
2524
import java.util.Optional;
2625
import org.junit.Test;
2726
import org.junit.runner.RunWith;
28-
import org.mockito.Mock;
2927
import org.mockito.junit.MockitoJUnitRunner;
3028
import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClientExtension;
3129
import software.amazon.awssdk.enhanced.dynamodb.DynamoDbExtensionContext;
3230
import software.amazon.awssdk.enhanced.dynamodb.Key;
3331
import software.amazon.awssdk.enhanced.dynamodb.TableMetadata;
34-
import software.amazon.awssdk.enhanced.dynamodb.TableSchema;
3532
import software.amazon.awssdk.enhanced.dynamodb.extensions.ReadModification;
3633
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItem;
3734
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItemWithSort;
@@ -44,9 +41,6 @@ public class EnhancedClientUtilsTest {
4441
private static final AttributeValue PARTITION_VALUE = AttributeValue.builder().s("id123").build();
4542
private static final AttributeValue SORT_VALUE = AttributeValue.builder().s("sort123").build();
4643

47-
@Mock
48-
private TableSchema<Object> mockSchema;
49-
5044
@Test
5145
public void createKeyFromMap_partitionOnly() {
5246
Map<String, AttributeValue> itemMap = new HashMap<>();
@@ -81,42 +75,6 @@ public void cleanAttributeName_cleansSpecialCharacters() {
8175
assertThat(result).isEqualTo("a_b_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u");
8276
}
8377

84-
@Test
85-
public void keyRef_simpleAttributeName_returnsCorrectReference() {
86-
assertThat(EnhancedClientUtils.keyRef("simpleName"))
87-
.isEqualTo("#AMZN_MAPPED_simpleName");
88-
}
89-
90-
@Test
91-
public void keyRef_attributeNameWithSpecialCharacters_returnsCleanedReference() {
92-
assertThat(EnhancedClientUtils.keyRef("a*b.c"))
93-
.isEqualTo("#AMZN_MAPPED_a_b_c");
94-
}
95-
96-
@Test
97-
public void keyRef_nestedAttributeName_returnsNestedReference() {
98-
String result = EnhancedClientUtils.keyRef("foo.nested.bar");
99-
assertThat(result).contains("#AMZN_MAPPED_");
100-
}
101-
102-
@Test
103-
public void valueRef_simpleAttributeName_returnsCorrectReference() {
104-
assertThat(EnhancedClientUtils.valueRef("simpleName"))
105-
.isEqualTo(":AMZN_MAPPED_simpleName");
106-
}
107-
108-
@Test
109-
public void valueRef_attributeNameWithSpecialCharacters_returnsCleanedReference() {
110-
assertThat(EnhancedClientUtils.valueRef("a*b.c"))
111-
.isEqualTo(":AMZN_MAPPED_a_b_c");
112-
}
113-
114-
@Test
115-
public void valueRef_nestedAttributeName_returnsNestedReference() {
116-
String result = EnhancedClientUtils.valueRef("foo.nested.bar");
117-
assertThat(result).contains(":AMZN_MAPPED_");
118-
}
119-
12078
@Test
12179
public void readAndTransformSingleItem_nullItemMap_returnsNull() {
12280
assertThat(
@@ -174,7 +132,8 @@ public ReadModification afterRead(DynamoDbExtensionContext.AfterRead context) {
174132
EnhancedClientUtils.readAndTransformSingleItem(
175133
itemMap,
176134
FakeItem.getTableSchema(),
177-
null, extension))
135+
null,
136+
extension))
178137
.isNotNull();
179138
}
180139

@@ -216,16 +175,16 @@ class TestResponse {
216175
}
217176

218177
@Test
219-
public void createKeyFromItem_partitionKeyOnly_returnsKeyWithPartitionOnly() {
178+
public void createKeyFromItem_itemWithPartitionKeyOnly_returnsKeyWithoutSortKey() {
220179
FakeItem item = new FakeItem();
221-
item.setId("id123");
180+
item.setId("test-id");
222181

223182
Key key = EnhancedClientUtils.createKeyFromItem(
224183
item,
225184
FakeItem.getTableSchema(),
226185
TableMetadata.primaryIndexName());
227186

228-
assertThat(Objects.requireNonNull(key.partitionKeyValue()).s()).isEqualTo("id123");
187+
assertThat(key.partitionKeyValue()).isEqualTo(AttributeValue.builder().s("test-id").build());
229188
assertThat(key.sortKeyValue()).isEmpty();
230189
}
231190

@@ -312,18 +271,6 @@ public void isNullAttributeValue_withFalseNullValue_returnsFalse() {
312271
assertThat(result).isFalse();
313272
}
314273

315-
@Test
316-
public void createKeyFromItem_withPartitionKeyOnly_createsCorrectKey() {
317-
FakeItem item = new FakeItem();
318-
item.setId("test-id");
319-
320-
Key result = EnhancedClientUtils.createKeyFromItem(item, FakeItem.getTableSchema(),
321-
TableMetadata.primaryIndexName());
322-
323-
assertThat(result.partitionKeyValue()).isEqualTo(AttributeValue.builder().s("test-id").build());
324-
assertThat(result.sortKeyValue()).isEmpty();
325-
}
326-
327274
@Test
328275
public void createKeyFromItem_withPartitionAndSortKey_createsCorrectKey() {
329276
FakeItemWithSort item = new FakeItemWithSort();
@@ -338,22 +285,6 @@ public void createKeyFromItem_withPartitionAndSortKey_createsCorrectKey() {
338285
assertThat(result.sortKeyValue().get()).isEqualTo(AttributeValue.builder().s("test-sort").build());
339286
}
340287

341-
@Test
342-
public void readAndTransformSingleItem_withNullItemMap_returnsNull() {
343-
Object result = EnhancedClientUtils.readAndTransformSingleItem(null, mockSchema, null, null);
344-
345-
assertThat(result).isNull();
346-
}
347-
348-
@Test
349-
public void readAndTransformSingleItem_withEmptyItemMap_returnsNull() {
350-
Map<String, AttributeValue> emptyMap = Collections.emptyMap();
351-
352-
Object result = EnhancedClientUtils.readAndTransformSingleItem(emptyMap, mockSchema, null, null);
353-
354-
assertThat(result).isNull();
355-
}
356-
357288
@Test
358289
public void getItemsFromSupplier_withNullList_returnsNull() {
359290
List<Object> result = EnhancedClientUtils.getItemsFromSupplier(null);

0 commit comments

Comments
 (0)