RabbitMQEvent and Test support. (#256) · maxday/aws-lambda-java-libs@cced9dc · GitHub
Skip to content

Commit cced9dc

Browse files
msailescarlzogh
andauthored
RabbitMQEvent and Test support. (aws#256)
Co-authored-by: Carl Zogheib <11421173+carlzogh@users.noreply.github.com>
1 parent da59325 commit cced9dc

4 files changed

Lines changed: 146 additions & 0 deletions

File tree

Lines changed: 57 additions & 0 deletions

‎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
@@ -105,6 +105,10 @@ public static SQSEvent loadSQSEvent(String filename) {
105105
return loadEvent(filename, SQSEvent.class);
106106
}
107107

108+
public static RabbitMQEvent loadRabbitMQEvent(String filename) {
109+
return loadEvent(filename, RabbitMQEvent.class);
110+
}
111+
108112
public static <T> T loadEvent(String filename, Class<T> targetClass) {
109113

110114
if (!filename.endsWith("json")) {

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,4 +304,38 @@ public void testLoadSecretsManagerRotationEvent() {
304304
.returns("arn:aws:secretsmanager:eu-central-1:123456789012:secret:/powertools/secretparam-xBPaJ5", from(SecretsManagerRotationEvent::getSecretId))
305305
.returns("CreateSecret", from(SecretsManagerRotationEvent::getStep));
306306
}
307+
308+
@Test
309+
public void testLoadRabbitMQEvent() {
310+
RabbitMQEvent event = EventLoader.loadRabbitMQEvent("rabbitmq_event.json");
311+
assertThat(event).isNotNull();
312+
assertThat(event)
313+
.returns("aws:rmq", from(RabbitMQEvent::getEventSource))
314+
.returns("arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", from(RabbitMQEvent::getEventSourceArn));
315+
316+
Map<String, List<RabbitMQEvent.RabbitMessage>> messagesByQueue = event.getRmqMessagesByQueue();
317+
assertThat(messagesByQueue).isNotEmpty();
318+
List<RabbitMQEvent.RabbitMessage> messages = messagesByQueue.get("test::/");
319+
assertThat(messages).hasSize(1);
320+
RabbitMQEvent.RabbitMessage firstMessage = messages.get(0);
321+
assertThat(firstMessage)
322+
.returns(false, RabbitMQEvent.RabbitMessage::getRedelivered)
323+
.returns("eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==", RabbitMQEvent.RabbitMessage::getData);
324+
325+
RabbitMQEvent.BasicProperties basicProperties = firstMessage.getBasicProperties();
326+
assertThat(basicProperties)
327+
.returns("text/plain", from(RabbitMQEvent.BasicProperties::getContentType))
328+
.returns(1, from(RabbitMQEvent.BasicProperties::getDeliveryMode))
329+
.returns(34, from(RabbitMQEvent.BasicProperties::getPriority))
330+
.returns(60000, from(RabbitMQEvent.BasicProperties::getExpiration))
331+
.returns("AIDACKCEVSQ6C2EXAMPLE", from(RabbitMQEvent.BasicProperties::getUserId))
332+
.returns(80, from(RabbitMQEvent.BasicProperties::getBodySize))
333+
.returns("Jan 1, 1970, 12:33:41 AM", from(RabbitMQEvent.BasicProperties::getTimestamp));
334+
335+
Map<String, Object> headers = basicProperties.getHeaders();
336+
assertThat(headers).hasSize(3);
337+
Map<String, List<Integer>> header1 = (Map<String, List<Integer>>) headers.get("header1");
338+
assertThat(header1.get("bytes")).contains(118, 97, 108, 117, 101, 49);
339+
assertThat((Integer) headers.get("numberInHeader")).isEqualTo(10);
340+
}
307341
}
Lines changed: 51 additions & 0 deletions

0 commit comments

Comments
 (0)