kingbbode / spring-boot-aws-mock

Aws Mock Library for Spring Boot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

spring-boot-aws-mock

Build Status Coverage Status Release

Spring Boot Starter support for Amazon Web Service Mocking.

Requirements

0.x, 1.x

  • Java 8
  • Spring Boot 1.5.x
  • Spring Cloud 1.2.1

2.x (Not Release)

  • Java 8
  • Spring Boot 2.x
  • Spring Cloud 2.x

Mock Modules

  • SQS
    • Amazon Simple Queue Service

Install

Mock SQS

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile 'com.github.jojoldu.spring-boot-aws-mock:spring-boot-starter-mock-sqs:0.0.6'
}

Usage

Default

application.yml

cloud:
  aws:
    region:
      static: ap-northeast-2 //aws region code (required)

sqs:
  mock:
    enabled: true //required
  queues: {
    "key1dlq": {
      "name": "key1-dlq"
    },
    "key1": {
      "name": "key1",
      "defaultVisibilityTimeout": 1,
      "delay": 0,
      "receiveMessageWait": 0,
      "deadLettersQueue": {
        "name": "key1-dlq",
        "maxReceiveCount": 1
      }
    }
  }

Controller.java

public class SampleController {
    @Autowired private QueueMessagingTemplate messagingTemplate;
    @Autowired private SqsQueues sqsQueues; // Queue name Collection Object

    @PostMapping("/url")
    public String save(@RequestBody RequestDto requestDto){
        String queueName = sqsQueues.getQueueName("key1");
        messagingTemplate.convertAndSend(queueName, requestDto);
        ...
    }

    @SqsListener(value = "${sqs.queue.key1.name}")
    public void receive(String message, @Header("SenderId") String senderId) throws IOException {
        ...
    }
}

Run Test & Show Log

log

Options

sqs:
  mock:
    port: your mock sqs server port
  queues: {
    "key1dlq": { // key1 dead letter queue
      "name": "key1-dlq" // queue name
    },
    "key1": {
      "name": "key1",
      "defaultVisibilityTimeout": 1,
      "delay": 0,
      "receiveMessageWait": 0,
      "deadLettersQueue": { // dead letter queue
        "name": "key1-dlq",
        "maxReceiveCount": 1
      }
    }
 

Example

Sample Project

About

Aws Mock Library for Spring Boot


Languages

Language:Java 76.5%Language:Groovy 23.5%