Skip to content

Commit 6fc8e69

Browse files
committed
Add test coverage
1 parent 3ea4dad commit 6fc8e69

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.hamcrest.Matchers.containsInAnyOrder;
2222
import static org.hamcrest.Matchers.hasSize;
2323
import static org.hamcrest.Matchers.is;
24+
import static org.hamcrest.Matchers.sameInstance;
2425
import static software.amazon.awssdk.enhanced.dynamodb.TableMetadata.primaryIndexName;
2526

2627
import java.util.Collection;
@@ -359,6 +360,43 @@ public void builderReuse_independentValidation() {
359360
assertThat(metadata2.indexPartitionKeys("gsi1"), contains("key1", "key2"));
360361
}
361362

363+
@Test
364+
public void indexPartitionKeys_shouldReturnCachedPartitionKeysList() {
365+
StaticTableMetadata metadata = StaticTableMetadata.builder()
366+
.addIndexPartitionKey(primaryIndexName(),
367+
ATTRIBUTE_NAME,
368+
AttributeValueType.S)
369+
.build();
370+
List<String> first = metadata.indexPartitionKeys(primaryIndexName());
371+
List<String> second = metadata.indexPartitionKeys(primaryIndexName());
372+
373+
assertThat(first, sameInstance(second));
374+
}
375+
376+
@Test
377+
public void indexSortKeys_shouldReturnCachedSortKeysList() {
378+
StaticTableMetadata metadata = StaticTableMetadata.builder()
379+
.addIndexSortKey(primaryIndexName(),
380+
ATTRIBUTE_NAME,
381+
AttributeValueType.S)
382+
.build();
383+
List<String> first = metadata.indexSortKeys(primaryIndexName());
384+
List<String> second = metadata.indexSortKeys(primaryIndexName());
385+
386+
assertThat(first, sameInstance(second));
387+
}
388+
389+
@Test
390+
public void indexSortKeys_shouldReturnUnmodifiableList() {
391+
StaticTableMetadata metadata = StaticTableMetadata.builder()
392+
.addIndexSortKey(primaryIndexName(),
393+
ATTRIBUTE_NAME,
394+
AttributeValueType.S)
395+
.build();
396+
List<String> result = metadata.indexSortKeys(primaryIndexName());
397+
assertThatThrownBy(() -> result.add("foo")).isInstanceOf(UnsupportedOperationException.class);
398+
}
399+
362400
@Test
363401
public void getIndexKeys_partitionAndSort() {
364402
TableMetadata tableMetadata = StaticTableMetadata.builder()

0 commit comments

Comments
 (0)