Skip to content

Commit 087b338

Browse files
committed
Fix architecture tests
1 parent d48a10b commit 087b338

File tree

2 files changed

+62
-1
lines changed

2 files changed

+62
-1
lines changed

services-custom/dynamodb-enhanced/src/it/java/software/amazon/awssdk/enhanced/dynamodb/ScanQueryIntegrationTest.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,20 @@
3333
import org.junit.AfterClass;
3434
import org.junit.BeforeClass;
3535
import org.junit.Test;
36+
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbAttribute;
37+
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean;
38+
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbConvertedBy;
3639
import software.amazon.awssdk.enhanced.dynamodb.model.Page;
40+
import software.amazon.awssdk.enhanced.dynamodb.model.PageIterable;
41+
import software.amazon.awssdk.enhanced.dynamodb.model.QueryConditional;
3742
import software.amazon.awssdk.enhanced.dynamodb.model.QueryEnhancedRequest;
3843
import software.amazon.awssdk.enhanced.dynamodb.model.Record;
3944
import software.amazon.awssdk.enhanced.dynamodb.model.ScanEnhancedRequest;
4045
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
4146
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
4247
import software.amazon.awssdk.services.dynamodb.model.ConsumedCapacity;
4348
import software.amazon.awssdk.services.dynamodb.model.ReturnConsumedCapacity;
49+
import software.amazon.awssdk.services.dynamodb.model.Select;
4450

4551
public class ScanQueryIntegrationTest extends DynamoDbEnhancedIntegrationTestBase {
4652

@@ -57,6 +63,60 @@ public static void setup() {
5763
mappedTable = enhancedClient.table(TABLE_NAME, TABLE_SCHEMA);
5864
mappedTable.createTable();
5965
dynamoDbClient.waiter().waitUntilTableExists(r -> r.tableName(TABLE_NAME));
66+
67+
// sandbox
68+
69+
QueryConditional queryConditional = QueryConditional.keyEqualTo(Key.builder().partitionValue("val").build());
70+
71+
PageIterable<Record> pageIterable = mappedTable.query(QueryEnhancedRequest.builder()
72+
.queryConditional(queryConditional)
73+
.select(Select.COUNT)
74+
.build());
75+
Iterator<Page<Record>> iterator = pageIterable.iterator();
76+
77+
Page<Record> page = iterator.next();
78+
79+
int count = page.count();
80+
}
81+
82+
public class NullifyEmptyStringConverter implements AttributeConverter<String> {
83+
@Override
84+
public AttributeValue transformFrom(String value) {
85+
if (value == null || value.isEmpty()) {
86+
return AttributeValue.builder().nul(true).build();
87+
}
88+
return AttributeValue.builder().s(value).build();
89+
}
90+
91+
@Override
92+
public String transformTo(AttributeValue attributeValue) {
93+
if (attributeValue.nul()) {
94+
return null;
95+
}
96+
return attributeValue.s();
97+
}
98+
99+
@Override
100+
public EnhancedType<String> type() {
101+
return EnhancedType.of(String.class);
102+
}
103+
104+
@Override
105+
public AttributeValueType attributeValueType() {
106+
return AttributeValueType.S;
107+
}
108+
}
109+
110+
// Usage:
111+
@DynamoDbBean
112+
public class Customer {
113+
private String name;
114+
115+
@DynamoDbAttribute("name")
116+
@DynamoDbConvertedBy(NullifyEmptyStringConverter.class)
117+
public String getName() {
118+
return name;
119+
}
60120
}
61121

62122
@AfterClass

test/architecture-tests/src/test/java/software/amazon/awssdk/archtests/CodingConventionWithSuppressionTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ public class CodingConventionWithSuppressionTest {
5252
ArchUtils.classNameToPattern(MakeHttpRequestStage.class),
5353
ArchUtils.classNameToPattern("software.amazon.awssdk.services.s3.internal.crt.S3CrtResponseHandlerAdapter"),
5454
ArchUtils.classNameToPattern(
55-
"software.amazon.awssdk.services.s3.internal.crt.CrtResponseFileResponseTransformer")));
55+
"software.amazon.awssdk.services.s3.internal.crt.CrtResponseFileResponseTransformer"),
56+
ArchUtils.classNameToPattern("software.amazon.awssdk.utils.ImmutableMap")));
5657

5758
private static final Set<Pattern> ALLOWED_ERROR_LOG_SUPPRESSION = new HashSet<>(
5859
Arrays.asList(

0 commit comments

Comments
 (0)