1
1
/* Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. */
2
2
package com .amazonaws .services .lambda .runtime .tests ;
3
3
4
- import com .amazonaws .services .lambda .runtime .events .models .dynamodb .AttributeValue ;
5
- import com .amazonaws .services .lambda .runtime .events .models .dynamodb .Record ;
6
- import com .amazonaws .services .lambda .runtime .events .models .dynamodb .StreamRecord ;
7
- import org .joda .time .DateTime ;
4
+ import com .amazonaws .services .lambda .runtime .events .apigateway .APIGatewayCustomAuthorizerEvent ;
5
+ import com .amazonaws .services .lambda .runtime .events .apigateway .APIGatewayProxyRequestEvent ;
6
+ import com .amazonaws .services .lambda .runtime .events .apigateway .APIGatewayV2CustomAuthorizerEvent ;
7
+ import com .amazonaws .services .lambda .runtime .events .apigateway .APIGatewayV2HTTPEvent ;
8
+ import com .amazonaws .services .lambda .runtime .events .dynamodb .DynamodbEvent ;
9
+ import com .amazonaws .services .lambda .runtime .events .kinesis .KinesisEvent ;
10
+ import com .amazonaws .services .lambda .runtime .events .kinesis .KinesisFirehoseEvent ;
11
+ import com .amazonaws .services .lambda .runtime .events .s3 .S3Event ;
8
12
import org .junit .jupiter .api .Test ;
9
13
10
14
import java .time .Instant ;
@@ -52,7 +56,7 @@ public void testLoadAPIGatewayV2CustomAuthorizerEvent() {
52
56
53
57
assertThat (event ).isNotNull ();
54
58
assertThat (event .getRequestContext ().getHttp ().getMethod ()).isEqualTo ("POST" );
55
- assertThat (event .getRequestContext ().getTimeEpoch ()).isEqualTo (Instant . ofEpochMilli ( 1583348638390L ) );
59
+ assertThat (event .getRequestContext ().getTimeEpoch ()).isEqualTo (1583348638390L );
56
60
}
57
61
58
62
@ Test
@@ -92,7 +96,7 @@ public void testLoadLambdaDestinationEvent() {
92
96
LambdaDestinationEvent event = EventLoader .loadLambdaDestinationEvent ("lambda_destination_event.json" );
93
97
94
98
assertThat (event ).isNotNull ();
95
- assertThat (event .getTimestamp ()).isEqualTo (DateTime .parse ("2019-11-24T21:52:47.333Z" ));
99
+ assertThat (event .getTimestamp ()).isEqualTo (Instant .parse ("2019-11-24T21:52:47.333Z" ));
96
100
assertThat (event .getRequestContext ().getFunctionArn ()).isEqualTo ("arn:aws:lambda:sa-east-1:123456678912:function:event-destinations:$LATEST" );
97
101
assertThat (event .getRequestPayload ().get ("Success" )).isEqualTo (false );
98
102
}
@@ -145,13 +149,13 @@ public void testLoadSNSEvent() {
145
149
assertThat (record .getEventVersion ()).isEqualTo ("1.0" );
146
150
assertThat (record .getEventSubscriptionArn ()).isEqualTo ("arn:aws:sns:eu-central-1:123456789012:TopicSendToMe:e3ddc7d5-2f86-40b8-a13d-3362f94fd8dd" );
147
151
148
- SNSEvent .SNS sns = record .getSNS ();
152
+ SNSEvent .SNS sns = record .getSns ();
149
153
assertThat (sns )
150
154
.returns ("Test sns message" , from (SNSEvent .SNS ::getSubject ))
151
155
.returns ("{\n \" id\" : 42,\n \" name\" : \" Bob\" \n }" , from (SNSEvent .SNS ::getMessage ))
152
156
.returns ("arn:aws:sns:eu-central-1:123456789012:TopicSendToMe" , from (SNSEvent .SNS ::getTopicArn ))
153
157
.returns ("dc918f50-80c6-56a2-ba33-d8a9bbf013ab" , from (SNSEvent .SNS ::getMessageId ))
154
- .returns (DateTime .parse ("2020-10-08T16:06:14.656Z" ), from (SNSEvent .SNS ::getTimestamp ))
158
+ .returns (Instant .parse ("2020-10-08T16:06:14.656Z" ), from (SNSEvent .SNS ::getTimestamp ))
155
159
.returns ("https://sns.eu-central-1.amazonaws.com/?Action=Unsubscribe" , SNSEvent .SNS ::getUnsubscribeUrl );
156
160
assertThat (sns .getMessageAttributes ()).containsKey ("name" );
157
161
assertThat (sns .getMessageAttributes ().get ("name" ).getValue ()).isEqualTo ("Bob" );
@@ -167,19 +171,19 @@ public void testLoadDynamoEvent() {
167
171
DynamodbEvent .DynamodbStreamRecord record = event .getRecords ().get (0 );
168
172
assertThat (record )
169
173
.returns ("arn:aws:dynamodb:eu-central-1:123456789012:table/ExampleTableWithStream/stream/2015-06-27T00:48:05.899" , from (DynamodbEvent .DynamodbStreamRecord ::getEventSourceARN ))
170
- .returns ("INSERT" , from (Record ::getEventName ));
174
+ .returns ("INSERT" , from (DynamodbEvent . DynamodbStreamRecord ::getEventName ));
171
175
172
- StreamRecord streamRecord = record .getDynamodb ();
176
+ DynamodbEvent . DynamodbStreamRecord . StreamRecord streamRecord = record .getDynamodb ();
173
177
assertThat (streamRecord )
174
- .returns ("4421584500000000017450439091" , StreamRecord ::getSequenceNumber )
175
- .returns (26L , StreamRecord ::getSizeBytes )
176
- .returns (" NEW_AND_OLD_IMAGES" , StreamRecord ::getStreamViewType )
177
- .returns (Date . from ( ofEpochSecond (1428537600 )), StreamRecord ::getApproximateCreationDateTime );
178
+ .returns ("4421584500000000017450439091" , DynamodbEvent . DynamodbStreamRecord . StreamRecord ::getSequenceNumber )
179
+ .returns (26L , DynamodbEvent . DynamodbStreamRecord . StreamRecord ::getSizeBytes )
180
+ .returns (DynamodbEvent . DynamodbStreamRecord . StreamViewType . NEW_AND_OLD_IMAGES , DynamodbEvent . DynamodbStreamRecord . StreamRecord ::getStreamViewType )
181
+ .returns (Instant . ofEpochSecond (1428537600 ), DynamodbEvent . DynamodbStreamRecord . StreamRecord ::getApproximateCreationDateTime );
178
182
179
- assertThat (streamRecord .getKeys ()).contains (entry ("Id" , new AttributeValue ().withN ("101" )));
183
+ assertThat (streamRecord .getKeys ()).contains (entry ("Id" , new DynamodbEvent . DynamodbStreamRecord . AttributeValue ().withN ("101" )));
180
184
assertThat (streamRecord .getNewImage ()).containsAnyOf (
181
- entry ("Message" , new AttributeValue ("New item!" )),
182
- entry ("Id" , new AttributeValue ().withN ("101" ))
185
+ entry ("Message" , new DynamodbEvent . DynamodbStreamRecord . AttributeValue ("New item!" )),
186
+ entry ("Id" , new DynamodbEvent . DynamodbStreamRecord . AttributeValue ().withN ("101" ))
183
187
);
184
188
}
185
189
@@ -191,7 +195,7 @@ public void testLoadKinesisEvent() {
191
195
192
196
KinesisEvent .Record record = event .getRecords ().get (0 ).getKinesis ();
193
197
assertThat (record .getEncryptionType ()).isEqualTo ("NONE" );
194
- assertThat (record .getApproximateArrivalTimestamp ()).isEqualTo (Date . from ( ofEpochSecond (1428537600 ) ));
198
+ assertThat (record .getApproximateArrivalTimestamp ()).isEqualTo (Instant . ofEpochSecond (1428537600 ));
195
199
assertThat (new String (record .getData ().array ())).isEqualTo ("Hello, this is a test 123." );
196
200
}
197
201
@@ -214,7 +218,7 @@ public void testLoadCodeCommitEvent() {
214
218
CodeCommitEvent .Record record = event .getRecords ().get (0 );
215
219
assertThat (record .getEventSourceArn ()).isEqualTo ("arn:aws:codecommit:eu-central-1:123456789012:my-repo" );
216
220
assertThat (record .getUserIdentityArn ()).isEqualTo ("arn:aws:iam::123456789012:root" );
217
- assertThat (record .getEventTime ()).isEqualTo (DateTime .parse ("2016-01-01T23:59:59.000+0000 " ));
221
+ assertThat (record .getEventTime ()).isEqualTo (Instant .parse ("2016-01-01T23:59:59Z " ));
218
222
219
223
assertThat (record .getCodeCommit ().getReferences ()).hasSize (1 );
220
224
CodeCommitEvent .Reference reference = record .getCodeCommit ().getReferences ().get (0 );
@@ -242,7 +246,7 @@ public void testLoadScheduledEvent() {
242
246
ScheduledEvent event = EventLoader .loadScheduledEvent ("cloudwatch_event.json" );
243
247
assertThat (event ).isNotNull ();
244
248
assertThat (event .getDetailType ()).isEqualTo ("Scheduled Event" );
245
- assertThat (event .getTime ()).isEqualTo (DateTime .parse ("2020-09-30T15:58:34Z" ));
249
+ assertThat (event .getTime ()).isEqualTo (Instant .parse ("2020-09-30T15:58:34Z" ));
246
250
}
247
251
248
252
@ Test
@@ -319,15 +323,15 @@ public void testLoadRabbitMQEvent() {
319
323
assertThat (messages ).hasSize (1 );
320
324
RabbitMQEvent .RabbitMessage firstMessage = messages .get (0 );
321
325
assertThat (firstMessage )
322
- .returns (false , RabbitMQEvent .RabbitMessage ::getRedelivered )
326
+ .returns (false , RabbitMQEvent .RabbitMessage ::isRedelivered )
323
327
.returns ("eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" , RabbitMQEvent .RabbitMessage ::getData );
324
328
325
329
RabbitMQEvent .BasicProperties basicProperties = firstMessage .getBasicProperties ();
326
330
assertThat (basicProperties )
327
331
.returns ("text/plain" , from (RabbitMQEvent .BasicProperties ::getContentType ))
328
332
.returns (1 , from (RabbitMQEvent .BasicProperties ::getDeliveryMode ))
329
333
.returns (34 , from (RabbitMQEvent .BasicProperties ::getPriority ))
330
- .returns (60000 , from (RabbitMQEvent .BasicProperties ::getExpiration ))
334
+ .returns (" 60000" , from (RabbitMQEvent .BasicProperties ::getExpiration ))
331
335
.returns ("AIDACKCEVSQ6C2EXAMPLE" , from (RabbitMQEvent .BasicProperties ::getUserId ))
332
336
.returns (80 , from (RabbitMQEvent .BasicProperties ::getBodySize ))
333
337
.returns ("Jan 1, 1970, 12:33:41 AM" , from (RabbitMQEvent .BasicProperties ::getTimestamp ));
@@ -338,4 +342,13 @@ public void testLoadRabbitMQEvent() {
338
342
assertThat (header1 .get ("bytes" )).contains (118 , 97 , 108 , 117 , 101 , 49 );
339
343
assertThat ((Integer ) headers .get ("numberInHeader" )).isEqualTo (10 );
340
344
}
345
+
346
+ @ Test
347
+ public void testLoadSESEvent () {
348
+ SESEvent event = EventLoader .loadSESEvent ("ses_event.json" );
349
+ assertThat (event ).isNotNull ();
350
+ assertThat (event .getRecords ()).hasSize (1 );
351
+ assertThat (
event .
getRecords ().
get (
0 ).
getSes ().
getMail ().
getDestination ()[
0 ]).
isEqualTo (
"[email protected] " );
352
+ assertThat (event .getRecords ().get (0 ).getSes ().getMail ().getHeaders ()).hasSize (29 );
353
+ }
341
354
}
0 commit comments