11/* Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. */
22package com .amazonaws .services .lambda .runtime .tests ;
33
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 ;
812import org .junit .jupiter .api .Test ;
913
1014import java .time .Instant ;
@@ -52,7 +56,7 @@ public void testLoadAPIGatewayV2CustomAuthorizerEvent() {
5256
5357 assertThat (event ).isNotNull ();
5458 assertThat (event .getRequestContext ().getHttp ().getMethod ()).isEqualTo ("POST" );
55- assertThat (event .getRequestContext ().getTimeEpoch ()).isEqualTo (Instant . ofEpochMilli ( 1583348638390L ) );
59+ assertThat (event .getRequestContext ().getTimeEpoch ()).isEqualTo (1583348638390L );
5660 }
5761
5862 @ Test
@@ -92,7 +96,7 @@ public void testLoadLambdaDestinationEvent() {
9296 LambdaDestinationEvent event = EventLoader .loadLambdaDestinationEvent ("lambda_destination_event.json" );
9397
9498 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" ));
96100 assertThat (event .getRequestContext ().getFunctionArn ()).isEqualTo ("arn:aws:lambda:sa-east-1:123456678912:function:event-destinations:$LATEST" );
97101 assertThat (event .getRequestPayload ().get ("Success" )).isEqualTo (false );
98102 }
@@ -145,13 +149,13 @@ public void testLoadSNSEvent() {
145149 assertThat (record .getEventVersion ()).isEqualTo ("1.0" );
146150 assertThat (record .getEventSubscriptionArn ()).isEqualTo ("arn:aws:sns:eu-central-1:123456789012:TopicSendToMe:e3ddc7d5-2f86-40b8-a13d-3362f94fd8dd" );
147151
148- SNSEvent .SNS sns = record .getSNS ();
152+ SNSEvent .SNS sns = record .getSns ();
149153 assertThat (sns )
150154 .returns ("Test sns message" , from (SNSEvent .SNS ::getSubject ))
151155 .returns ("{\n \" id\" : 42,\n \" name\" : \" Bob\" \n }" , from (SNSEvent .SNS ::getMessage ))
152156 .returns ("arn:aws:sns:eu-central-1:123456789012:TopicSendToMe" , from (SNSEvent .SNS ::getTopicArn ))
153157 .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 ))
155159 .returns ("https://sns.eu-central-1.amazonaws.com/?Action=Unsubscribe" , SNSEvent .SNS ::getUnsubscribeUrl );
156160 assertThat (sns .getMessageAttributes ()).containsKey ("name" );
157161 assertThat (sns .getMessageAttributes ().get ("name" ).getValue ()).isEqualTo ("Bob" );
@@ -167,19 +171,19 @@ public void testLoadDynamoEvent() {
167171 DynamodbEvent .DynamodbStreamRecord record = event .getRecords ().get (0 );
168172 assertThat (record )
169173 .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 ));
171175
172- StreamRecord streamRecord = record .getDynamodb ();
176+ DynamodbEvent . DynamodbStreamRecord . StreamRecord streamRecord = record .getDynamodb ();
173177 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 );
178182
179- assertThat (streamRecord .getKeys ()).contains (entry ("Id" , new AttributeValue ().withN ("101" )));
183+ assertThat (streamRecord .getKeys ()).contains (entry ("Id" , new DynamodbEvent . DynamodbStreamRecord . AttributeValue ().withN ("101" )));
180184 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" ))
183187 );
184188 }
185189
@@ -191,7 +195,7 @@ public void testLoadKinesisEvent() {
191195
192196 KinesisEvent .Record record = event .getRecords ().get (0 ).getKinesis ();
193197 assertThat (record .getEncryptionType ()).isEqualTo ("NONE" );
194- assertThat (record .getApproximateArrivalTimestamp ()).isEqualTo (Date . from ( ofEpochSecond (1428537600 ) ));
198+ assertThat (record .getApproximateArrivalTimestamp ()).isEqualTo (Instant . ofEpochSecond (1428537600 ));
195199 assertThat (new String (record .getData ().array ())).isEqualTo ("Hello, this is a test 123." );
196200 }
197201
@@ -214,7 +218,7 @@ public void testLoadCodeCommitEvent() {
214218 CodeCommitEvent .Record record = event .getRecords ().get (0 );
215219 assertThat (record .getEventSourceArn ()).isEqualTo ("arn:aws:codecommit:eu-central-1:123456789012:my-repo" );
216220 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 " ));
218222
219223 assertThat (record .getCodeCommit ().getReferences ()).hasSize (1 );
220224 CodeCommitEvent .Reference reference = record .getCodeCommit ().getReferences ().get (0 );
@@ -242,7 +246,7 @@ public void testLoadScheduledEvent() {
242246 ScheduledEvent event = EventLoader .loadScheduledEvent ("cloudwatch_event.json" );
243247 assertThat (event ).isNotNull ();
244248 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" ));
246250 }
247251
248252 @ Test
@@ -319,15 +323,15 @@ public void testLoadRabbitMQEvent() {
319323 assertThat (messages ).hasSize (1 );
320324 RabbitMQEvent .RabbitMessage firstMessage = messages .get (0 );
321325 assertThat (firstMessage )
322- .returns (false , RabbitMQEvent .RabbitMessage ::getRedelivered )
326+ .returns (false , RabbitMQEvent .RabbitMessage ::isRedelivered )
323327 .returns ("eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" , RabbitMQEvent .RabbitMessage ::getData );
324328
325329 RabbitMQEvent .BasicProperties basicProperties = firstMessage .getBasicProperties ();
326330 assertThat (basicProperties )
327331 .returns ("text/plain" , from (RabbitMQEvent .BasicProperties ::getContentType ))
328332 .returns (1 , from (RabbitMQEvent .BasicProperties ::getDeliveryMode ))
329333 .returns (34 , from (RabbitMQEvent .BasicProperties ::getPriority ))
330- .returns (60000 , from (RabbitMQEvent .BasicProperties ::getExpiration ))
334+ .returns (" 60000" , from (RabbitMQEvent .BasicProperties ::getExpiration ))
331335 .returns ("AIDACKCEVSQ6C2EXAMPLE" , from (RabbitMQEvent .BasicProperties ::getUserId ))
332336 .returns (80 , from (RabbitMQEvent .BasicProperties ::getBodySize ))
333337 .returns ("Jan 1, 1970, 12:33:41 AM" , from (RabbitMQEvent .BasicProperties ::getTimestamp ));
@@ -338,4 +342,13 @@ public void testLoadRabbitMQEvent() {
338342 assertThat (header1 .get ("bytes" )).contains (118 , 97 , 108 , 117 , 101 , 49 );
339343 assertThat ((Integer ) headers .get ("numberInHeader" )).isEqualTo (10 );
340344 }
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 ("recipient@example.com" );
352+ assertThat (event .getRecords ().get (0 ).getSes ().getMail ().getHeaders ()).hasSize (29 );
353+ }
341354}
0 commit comments