Skip to content

Commit a6e2991

Browse files
committed
Add test for DynamodbEvent.DynamodbStreamRecord load
1 parent 04b6e96 commit a6e2991

File tree

3 files changed

+60
-1
lines changed

3 files changed

+60
-1
lines changed

aws-lambda-java-tests/src/main/java/com/amazonaws/services/lambda/runtime/tests/EventLoader.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public static DynamodbEvent loadDynamoDbEvent(String filename) {
6565
return loadEvent(filename, DynamodbEvent.class);
6666
}
6767

68+
public static DynamodbEvent.DynamodbStreamRecord loadDynamodbStreamRecord(String filename) {
69+
return loadEvent(filename, DynamodbEvent.DynamodbStreamRecord.class);
70+
}
71+
6872
public static KafkaEvent loadKafkaEvent(String filename) {
6973
return loadEvent(filename, KafkaEvent.class);
7074
}

aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,10 @@ public void testLoadDynamoEvent() {
174174
.returns("4421584500000000017450439091", StreamRecord::getSequenceNumber)
175175
.returns(26L, StreamRecord::getSizeBytes)
176176
.returns("NEW_AND_OLD_IMAGES", StreamRecord::getStreamViewType)
177-
.returns(Date.from(ofEpochSecond(1428537600)), StreamRecord::getApproximateCreationDateTime);
177+
.returns(Date.from(ofEpochSecond(1428537600)), StreamRecord::getApproximateCreationDateTime)
178+
.doesNotReturn(null, from(StreamRecord::getKeys))
179+
.doesNotReturn(null, from(StreamRecord::getNewImage))
180+
.returns(null, from(StreamRecord::getOldImage));
178181

179182
assertThat(streamRecord.getKeys()).contains(entry("Id", new AttributeValue().withN("101")));
180183
assertThat(streamRecord.getNewImage()).containsAnyOf(
@@ -183,6 +186,23 @@ public void testLoadDynamoEvent() {
183186
);
184187
}
185188

189+
@Test
190+
public void testLoadDynamodbStreamRecord() {
191+
DynamodbEvent.DynamodbStreamRecord record = EventLoader.loadDynamodbStreamRecord("dynamodb_streamRecord.json");
192+
assertThat(record).isNotNull();
193+
194+
StreamRecord streamRecord = record.getDynamodb();
195+
assertThat(streamRecord)
196+
.isNotNull()
197+
.returns("4421584500000000017450439092", StreamRecord::getSequenceNumber)
198+
.returns(59L, StreamRecord::getSizeBytes)
199+
.returns("NEW_AND_OLD_IMAGES", StreamRecord::getStreamViewType)
200+
.returns(Date.from(ofEpochSecond(1428537600)), StreamRecord::getApproximateCreationDateTime)
201+
.doesNotReturn(null, from(StreamRecord::getKeys))
202+
.doesNotReturn(null, from(StreamRecord::getNewImage))
203+
.doesNotReturn(null, from(StreamRecord::getOldImage));
204+
}
205+
186206
@Test
187207
public void testLoadKinesisEvent() {
188208
KinesisEvent event = EventLoader.loadKinesisEvent("kinesis_event.json");
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"eventID": "c81e728d9d4c2f636f067f89cc14862c",
3+
"eventName": "MODIFY",
4+
"eventVersion": "1.1",
5+
"eventSource": "aws:dynamodb",
6+
"awsRegion": "eu-central-1",
7+
"dynamodb": {
8+
"Keys": {
9+
"Id": {
10+
"N": "101"
11+
}
12+
},
13+
"NewImage": {
14+
"Message": {
15+
"S": "This item has changed"
16+
},
17+
"Id": {
18+
"N": "101"
19+
}
20+
},
21+
"OldImage": {
22+
"Message": {
23+
"S": "New item!"
24+
},
25+
"Id": {
26+
"N": "101"
27+
}
28+
},
29+
"ApproximateCreationDateTime": 1428537600,
30+
"SequenceNumber": "4421584500000000017450439092",
31+
"SizeBytes": 59,
32+
"StreamViewType": "NEW_AND_OLD_IMAGES"
33+
},
34+
"eventSourceARN": "arn:aws:dynamodb:eu-central-1:123456789012:table/ExampleTableWithStream/stream/2015-06-27T00:48:05.899"
35+
}

0 commit comments

Comments
 (0)