Skip to content

Commit e26bfb8

Browse files
437 - Increase code coverage.
1 parent 8c238de commit e26bfb8

File tree

3 files changed

+146
-2
lines changed

3 files changed

+146
-2
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,24 @@ void backwardCompatibility_newMethodsMatchDeprecated() {
7777
assertThat(newPartitionKeys).hasSize(1);
7878
assertThat(newPartitionKeys.get(0)).isEqualTo(deprecatedPartitionKey);
7979
}
80+
81+
@Test
82+
void indexPartitionKeys_withValidIndex_returnsSingletonList() {
83+
TableMetadata metadata = INDEXED_SCHEMA.tableMetadata();
84+
85+
List<String> result = metadata.indexPartitionKeys("gsi_1");
86+
87+
assertThat(result).hasSize(1);
88+
assertThat(result.get(0)).isEqualTo("gsi_id");
89+
}
90+
91+
@Test
92+
void indexPartitionKeys_withNonExistentIndex_returnsEmptyList() {
93+
TableMetadata metadata = SIMPLE_SCHEMA.tableMetadata();
94+
95+
List<String> result = metadata.indexPartitionKeys("non_existent_index");
96+
97+
assertThat(result).isEmpty();
98+
}
99+
80100
}

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
1919

20+
import java.lang.invoke.MethodHandles;
2021
import java.util.Collection;
2122
import java.util.List;
2223
import java.util.Map;
@@ -26,7 +27,9 @@
2627
import org.junit.rules.ExpectedException;
2728
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItem;
2829
import software.amazon.awssdk.enhanced.dynamodb.mapper.BeanTableSchema;
30+
import software.amazon.awssdk.enhanced.dynamodb.mapper.BeanTableSchemaParams;
2931
import software.amazon.awssdk.enhanced.dynamodb.mapper.ImmutableTableSchema;
32+
import software.amazon.awssdk.enhanced.dynamodb.mapper.ImmutableTableSchemaParams;
3033
import software.amazon.awssdk.enhanced.dynamodb.mapper.StaticImmutableTableSchema;
3134
import software.amazon.awssdk.enhanced.dynamodb.mapper.StaticTableSchema;
3235
import software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.CommonTypesBean;
@@ -81,6 +84,17 @@ public void fromBean_constructsBeanTableSchema() {
8184
assertThat(beanBeanTableSchema).isNotNull();
8285
}
8386

87+
@Test
88+
public void fromBean_withParams_constructsBeanTableSchema() {
89+
BeanTableSchemaParams<SimpleBean> params = BeanTableSchemaParams.builder(SimpleBean.class)
90+
.lookup(MethodHandles.lookup())
91+
.build();
92+
BeanTableSchema<SimpleBean> beanTableSchema = TableSchema.fromBean(params);
93+
94+
assertThat(beanTableSchema).isNotNull();
95+
assertThat(beanTableSchema.itemType().rawClass()).isEqualTo(SimpleBean.class);
96+
}
97+
8498
@Test
8599
public void fromImmutable_constructsImmutableTableSchema() {
86100
ImmutableTableSchema<SimpleImmutable> immutableTableSchema =
@@ -89,6 +103,17 @@ public void fromImmutable_constructsImmutableTableSchema() {
89103
assertThat(immutableTableSchema).isNotNull();
90104
}
91105

106+
@Test
107+
public void fromImmutable_withParams_constructsImmutableTableSchema() {
108+
ImmutableTableSchemaParams<SimpleImmutable> params = ImmutableTableSchemaParams.builder(SimpleImmutable.class)
109+
.lookup(MethodHandles.lookup())
110+
.build();
111+
ImmutableTableSchema<SimpleImmutable> immutableTableSchema = TableSchema.fromImmutableClass(params);
112+
113+
assertThat(immutableTableSchema).isNotNull();
114+
assertThat(immutableTableSchema.itemType().rawClass()).isEqualTo(SimpleImmutable.class);
115+
}
116+
92117
@Test
93118
public void fromClass_constructsBeanTableSchema() {
94119
TableSchema<SimpleBean> tableSchema = TableSchema.fromClass(SimpleBean.class);

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

Lines changed: 101 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,53 @@ public void itemType_returnsCorrectClassWhenBuiltWithEnhancedType() {
814814
assertThat(tableSchema.itemType(), is(equalTo(EnhancedType.of(FakeMappedItem.class))));
815815
}
816816

817+
@Test
818+
public void attributes_varargs_setsAttributesCorrectly() {
819+
StaticAttribute<FakeMappedItem, String> attr1 = StaticAttribute.builder(FakeMappedItem.class, String.class)
820+
.name("attr1")
821+
.getter(FakeMappedItem::getAString)
822+
.setter(FakeMappedItem::setAString)
823+
.build();
824+
825+
StaticAttribute<FakeMappedItem, Boolean> attr2 = StaticAttribute.builder(FakeMappedItem.class, Boolean.class)
826+
.name("attr2")
827+
.getter(FakeMappedItem::getABoolean)
828+
.setter(FakeMappedItem::setABoolean)
829+
.build();
830+
831+
StaticTableSchema<FakeMappedItem> schema = StaticTableSchema.builder(FakeMappedItem.class)
832+
.newItemSupplier(FakeMappedItem::new)
833+
.attributes(attr1, attr2)
834+
.build();
835+
836+
FakeMappedItem item = FakeMappedItem.builder().aString("test").aBoolean(true).build();
837+
Map<String, AttributeValue> result = schema.itemToMap(item, false);
838+
839+
assertThat(result.size(), is(2));
840+
assertThat(result, hasEntry("attr1", AttributeValue.builder().s("test").build()));
841+
assertThat(result, hasEntry("attr2", AttributeValue.builder().bool(true).build()));
842+
}
843+
844+
@Test
845+
public void attribute_setsAttributeCorrectly() {
846+
StaticAttribute<FakeMappedItem, String> attr = StaticAttribute.builder(FakeMappedItem.class, String.class)
847+
.name("attr")
848+
.getter(FakeMappedItem::getAString)
849+
.setter(FakeMappedItem::setAString)
850+
.build();
851+
852+
StaticTableSchema<FakeMappedItem> schema = StaticTableSchema.builder(FakeMappedItem.class)
853+
.newItemSupplier(FakeMappedItem::new)
854+
.addAttribute(attr)
855+
.build();
856+
857+
FakeMappedItem item = FakeMappedItem.builder().aString("test").aBoolean(true).build();
858+
Map<String, AttributeValue> result = schema.itemToMap(item, false);
859+
860+
assertThat(result.size(), is(1));
861+
assertThat(result, hasEntry("attr", AttributeValue.builder().s("test").build()));
862+
}
863+
817864
@Test
818865
public void getTableMetadata_hasCorrectFields() {
819866
TableMetadata tableMetadata = FakeItemWithSort.getTableSchema().tableMetadata();
@@ -1360,7 +1407,7 @@ public void buildAbstractExtends() {
13601407
}
13611408

13621409
@Test
1363-
public void buildAbstractTagWith() {
1410+
public void buildAbstractTagsWith() {
13641411

13651412
StaticTableSchema<FakeDocument> abstractTableSchema =
13661413
StaticTableSchema
@@ -1373,7 +1420,7 @@ public void buildAbstractTagWith() {
13731420
}
13741421

13751422
@Test
1376-
public void buildConcreteTagWith() {
1423+
public void buildConcreteTagsWith() {
13771424

13781425
StaticTableSchema<FakeDocument> concreteTableSchema =
13791426
StaticTableSchema
@@ -1386,6 +1433,58 @@ public void buildConcreteTagWith() {
13861433
is(Optional.of(TABLE_TAG_VALUE)));
13871434
}
13881435

1436+
@Test
1437+
public void buildAbstractTagsCollection() {
1438+
1439+
StaticTableSchema<FakeDocument> abstractTableSchema =
1440+
StaticTableSchema
1441+
.builder(FakeDocument.class)
1442+
.tags(singletonList(new TestStaticTableTag()))
1443+
.build();
1444+
1445+
assertThat(abstractTableSchema.tableMetadata().customMetadataObject(TABLE_TAG_KEY, String.class),
1446+
is(Optional.of(TABLE_TAG_VALUE)));
1447+
}
1448+
1449+
@Test
1450+
public void buildConcreteTagsCollection() {
1451+
1452+
StaticTableSchema<FakeDocument> concreteTableSchema =
1453+
StaticTableSchema
1454+
.builder(FakeDocument.class)
1455+
.newItemSupplier(FakeDocument::new)
1456+
.tags(singletonList(new TestStaticTableTag()))
1457+
.build();
1458+
1459+
assertThat(concreteTableSchema.tableMetadata().customMetadataObject(TABLE_TAG_KEY, String.class),
1460+
is(Optional.of(TABLE_TAG_VALUE)));
1461+
}
1462+
1463+
@Test
1464+
public void buildAbstractAddTag() {
1465+
StaticTableSchema<FakeDocument> abstractTableSchema =
1466+
StaticTableSchema
1467+
.builder(FakeDocument.class)
1468+
.addTag(new TestStaticTableTag())
1469+
.build();
1470+
1471+
assertThat(abstractTableSchema.tableMetadata().customMetadataObject(TABLE_TAG_KEY, String.class),
1472+
is(Optional.of(TABLE_TAG_VALUE)));
1473+
}
1474+
1475+
@Test
1476+
public void buildConcreteAddTag() {
1477+
StaticTableSchema<FakeDocument> concreteTableSchema =
1478+
StaticTableSchema
1479+
.builder(FakeDocument.class)
1480+
.newItemSupplier(FakeDocument::new)
1481+
.addTag(new TestStaticTableTag())
1482+
.build();
1483+
1484+
assertThat(concreteTableSchema.tableMetadata().customMetadataObject(TABLE_TAG_KEY, String.class),
1485+
is(Optional.of(TABLE_TAG_VALUE)));
1486+
}
1487+
13891488
@Test
13901489
public void instantiateFlattenedAbstractClassShouldThrowException() {
13911490
StaticTableSchema<FakeAbstractSuperclass> superclassTableSchema =

0 commit comments

Comments
 (0)