second first commit
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env bats
|
||||
# SQS tests
|
||||
|
||||
setup() {
|
||||
load 'test_helper/common-setup'
|
||||
QUEUE_NAME="bats-test-queue-$(unique_name)"
|
||||
QUEUE_URL=""
|
||||
}
|
||||
|
||||
teardown() {
|
||||
if [ -n "$QUEUE_URL" ]; then
|
||||
aws_cmd sqs delete-queue --queue-url "$QUEUE_URL" >/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
|
||||
@test "SQS: create queue" {
|
||||
run aws_cmd sqs create-queue --queue-name "$QUEUE_NAME"
|
||||
assert_success
|
||||
QUEUE_URL=$(json_get "$output" '.QueueUrl')
|
||||
[ -n "$QUEUE_URL" ]
|
||||
}
|
||||
|
||||
@test "SQS: get queue URL" {
|
||||
out=$(aws_cmd sqs create-queue --queue-name "$QUEUE_NAME")
|
||||
QUEUE_URL=$(json_get "$out" '.QueueUrl')
|
||||
|
||||
run aws_cmd sqs get-queue-url --queue-name "$QUEUE_NAME"
|
||||
assert_success
|
||||
got_url=$(json_get "$output" '.QueueUrl')
|
||||
[ "$got_url" = "$QUEUE_URL" ]
|
||||
}
|
||||
|
||||
@test "SQS: list queues" {
|
||||
out=$(aws_cmd sqs create-queue --queue-name "$QUEUE_NAME")
|
||||
QUEUE_URL=$(json_get "$out" '.QueueUrl')
|
||||
|
||||
run aws_cmd sqs list-queues --queue-name-prefix "bats-test"
|
||||
assert_success
|
||||
found=$(echo "$output" | jq --arg name "$QUEUE_NAME" '.QueueUrls | any(contains($name))')
|
||||
[ "$found" = "true" ]
|
||||
}
|
||||
|
||||
@test "SQS: send and receive message" {
|
||||
out=$(aws_cmd sqs create-queue --queue-name "$QUEUE_NAME")
|
||||
QUEUE_URL=$(json_get "$out" '.QueueUrl')
|
||||
|
||||
run aws_cmd sqs send-message --queue-url "$QUEUE_URL" --message-body "hello-bats"
|
||||
assert_success
|
||||
msg_id=$(json_get "$output" '.MessageId')
|
||||
[ -n "$msg_id" ]
|
||||
|
||||
run aws_cmd sqs receive-message --queue-url "$QUEUE_URL" --max-number-of-messages 1 --wait-time-seconds 1
|
||||
assert_success
|
||||
body=$(json_get "$output" '.Messages[0].Body')
|
||||
[ "$body" = "hello-bats" ]
|
||||
}
|
||||
|
||||
@test "SQS: delete message" {
|
||||
out=$(aws_cmd sqs create-queue --queue-name "$QUEUE_NAME")
|
||||
QUEUE_URL=$(json_get "$out" '.QueueUrl')
|
||||
|
||||
aws_cmd sqs send-message --queue-url "$QUEUE_URL" --message-body "hello-bats" >/dev/null
|
||||
|
||||
out=$(aws_cmd sqs receive-message --queue-url "$QUEUE_URL" --max-number-of-messages 1 --wait-time-seconds 1)
|
||||
receipt=$(json_get "$out" '.Messages[0].ReceiptHandle')
|
||||
|
||||
run aws_cmd sqs delete-message --queue-url "$QUEUE_URL" --receipt-handle "$receipt"
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "SQS: get queue attributes" {
|
||||
out=$(aws_cmd sqs create-queue --queue-name "$QUEUE_NAME")
|
||||
QUEUE_URL=$(json_get "$out" '.QueueUrl')
|
||||
|
||||
run aws_cmd sqs get-queue-attributes --queue-url "$QUEUE_URL" --attribute-names ApproximateNumberOfMessages
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "SQS: delete queue" {
|
||||
out=$(aws_cmd sqs create-queue --queue-name "$QUEUE_NAME")
|
||||
QUEUE_URL=$(json_get "$out" '.QueueUrl')
|
||||
|
||||
run aws_cmd sqs delete-queue --queue-url "$QUEUE_URL"
|
||||
assert_success
|
||||
QUEUE_URL=""
|
||||
}
|
||||
|
||||
@test "SQS: tags set at CreateQueue are returned by ListQueueTags" {
|
||||
# Regression test for https://github.com/floci-io/floci/issues/699
|
||||
run aws_cmd sqs create-queue --queue-name "$QUEUE_NAME" --tags "k1=v1,k2=v2"
|
||||
assert_success
|
||||
QUEUE_URL=$(json_get "$output" '.QueueUrl')
|
||||
[ -n "$QUEUE_URL" ]
|
||||
|
||||
run aws_cmd sqs list-queue-tags --queue-url "$QUEUE_URL"
|
||||
assert_success
|
||||
v1=$(json_get "$output" '.Tags.k1')
|
||||
v2=$(json_get "$output" '.Tags.k2')
|
||||
[ "$v1" = "v1" ]
|
||||
[ "$v2" = "v2" ]
|
||||
}
|
||||
Reference in New Issue
Block a user