From 242f842bbec6d534a6c1700aa7dc694f0fdcad08 Mon Sep 17 00:00:00 2001 From: Roberto Rojas Date: Sat, 17 Dec 2022 18:27:16 -0500 Subject: [PATCH] adds delete queues as part of test teardown Signed-off-by: Roberto Rojas --- .../pubsub/aws/snssqs/snssqs_helper.go | 57 +++++++++++++++++++ .../pubsub/aws/snssqs/snssqs_test.go | 43 ++++++++------ 2 files changed, 84 insertions(+), 16 deletions(-) create mode 100644 tests/certification/pubsub/aws/snssqs/snssqs_helper.go diff --git a/tests/certification/pubsub/aws/snssqs/snssqs_helper.go b/tests/certification/pubsub/aws/snssqs/snssqs_helper.go new file mode 100644 index 000000000..0d4bf1bd0 --- /dev/null +++ b/tests/certification/pubsub/aws/snssqs/snssqs_helper.go @@ -0,0 +1,57 @@ +/* +Copyright 2022 The Dapr Authors +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package snssqs_test + +import ( + "fmt" + + // AWS SDK + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/sqs" +) + +func deleteQueues(queues []string) error { + svc := sqsService() + for _, queue := range queues { + if err := deleteQueue(svc, queue); err != nil { + return fmt.Errorf("Got an error deleting the queue URL: %q err:%v\n", queue, err) + } + } + return nil +} + +func sqsService() *sqs.SQS { + sess := session.Must( + session.NewSessionWithOptions( + session.Options{ + SharedConfigState: session.SharedConfigEnable, + }, + )) + return sqs.New(sess) +} + +func deleteQueue(svc *sqs.SQS, queue string) error { + queueUrlOutput, err := svc.GetQueueUrl(&sqs.GetQueueUrlInput{ + QueueName: &queue, + }) + if err != nil { + return fmt.Errorf("error getting the queue URL: %q err:%v\n", queue, err) + } + + _, err = svc.DeleteQueue(&sqs.DeleteQueueInput{ + QueueUrl: queueUrlOutput.QueueUrl, + }) + + return err +} diff --git a/tests/certification/pubsub/aws/snssqs/snssqs_test.go b/tests/certification/pubsub/aws/snssqs/snssqs_test.go index 7dcd96e39..441a1c26b 100644 --- a/tests/certification/pubsub/aws/snssqs/snssqs_test.go +++ b/tests/certification/pubsub/aws/snssqs/snssqs_test.go @@ -61,9 +61,12 @@ const ( partition1 = "partition-1" ) -func teardown(t *testing.T) { - t.Logf("AWS SNS/SQS CertificationTests teardown...") - +// The following Queue names must match +// the values of the "consumerID" metadata properties +// found inside each of the components/*/pubsub.yaml files +var queues = []string{ + "snssqscerttest1", + "snssqscerttest2", } func TestAWSSNSSQSCertificationTests(t *testing.T) { @@ -163,7 +166,7 @@ func SNSSQSBasic(t *testing.T) { } else { err = client.PublishEvent(ctx, pubsubName, topicName, message) } - require.NoError(ctx, err, "error publishing message") + require.NoError(ctx, err, "SNSSQSBasic - error publishing message") } return nil } @@ -174,7 +177,7 @@ func SNSSQSBasic(t *testing.T) { // assert for messages for _, m := range messageWatchers { if !m.Assert(ctx, 25*timeout) { - ctx.Errorf("message assersion failed for watcher: %#v\n", m) + ctx.Errorf("SNSSQSBasic - message assersion failed for watcher: %#v\n", m) } } @@ -291,7 +294,7 @@ func SNSSQSMultipleSubsSameConsumerIDs(t *testing.T) { } else { err = client.PublishEvent(ctx, pubsubName, topicName, message) } - require.NoError(ctx, err, "error publishing message") + require.NoError(ctx, err, "SNSSQSMultipleSubsSameConsumerIDs - error publishing message") } return nil } @@ -302,7 +305,7 @@ func SNSSQSMultipleSubsSameConsumerIDs(t *testing.T) { // assert for messages for _, m := range messageWatchers { if !m.Assert(ctx, 25*timeout) { - ctx.Errorf("message assersion failed for watcher: %#v\n", m) + ctx.Errorf("SNSSQSMultipleSubsSameConsumerIDs - message assersion failed for watcher: %#v\n", m) } } @@ -414,7 +417,7 @@ func SNSSQSMultipleSubsDifferentConsumerIDs(t *testing.T) { } else { err = client.PublishEvent(ctx, pubsubName, topicName, message) } - require.NoError(ctx, err, "error publishing message") + require.NoError(ctx, err, "SNSSQSMultipleSubsDifferentConsumerIDs - error publishing message") } return nil } @@ -425,7 +428,7 @@ func SNSSQSMultipleSubsDifferentConsumerIDs(t *testing.T) { // assert for messages for _, m := range messageWatchers { if !m.Assert(ctx, 25*timeout) { - ctx.Errorf("message assersion failed for watcher: %#v\n", m) + ctx.Errorf("SNSSQSMultipleSubsDifferentConsumerIDs - message assersion failed for watcher: %#v\n", m) } } @@ -540,7 +543,7 @@ func SNSSQSMultiplePubSubsDifferentConsumerIDs(t *testing.T) { } else { err = client.PublishEvent(ctx, pubsubName, topicName, message) } - require.NoError(ctx, err, "error publishing message") + require.NoError(ctx, err, "SNSSQSMultiplePubSubsDifferentConsumerIDs - error publishing message") } return nil } @@ -551,7 +554,7 @@ func SNSSQSMultiplePubSubsDifferentConsumerIDs(t *testing.T) { // assert for messages for _, m := range messageWatchers { if !m.Assert(ctx, 25*timeout) { - ctx.Errorf("message assersion failed for watcher: %#v\n", m) + ctx.Errorf("SNSSQSMultiplePubSubsDifferentConsumerIDs - message assersion failed for watcher: %#v\n", m) } } @@ -663,7 +666,7 @@ func SNSSQSNonexistingTopic(t *testing.T) { } else { err = client.PublishEvent(ctx, pubsubName, topicName, message) } - require.NoError(ctx, err, "error publishing message") + require.NoError(ctx, err, "SNSSQSNonexistingTopic - error publishing message") } return nil } @@ -674,7 +677,7 @@ func SNSSQSNonexistingTopic(t *testing.T) { // assert for messages for _, m := range messageWatchers { if !m.Assert(ctx, 25*timeout) { - ctx.Errorf("message assersion failed for watcher: %#v\n", m) + ctx.Errorf("SNSSQSNonexistingTopic - message assersion failed for watcher: %#v\n", m) } } @@ -766,7 +769,7 @@ func SNSSQSEntityManagement(t *testing.T) { err = client.PublishEvent(ctx, pubsubName, topicName, message) } // Error is expected as the topic does not exist - require.Error(ctx, err, "error publishing message") + require.Error(ctx, err, "SNSSQSEntityManagement - error publishing message") } return nil } @@ -847,7 +850,7 @@ func SNSSQSDefaultTtl(t *testing.T) { } else { err = client.PublishEvent(ctx, pubsubName, topicName, message) } - require.NoError(ctx, err, "error publishing message") + require.NoError(ctx, err, "SNSSQSDefaultTtl - error publishing message") } return nil } @@ -858,7 +861,7 @@ func SNSSQSDefaultTtl(t *testing.T) { // assert for messages for _, m := range messageWatchers { if !m.Assert(ctx, 25*timeout) { - ctx.Errorf("message assersion failed for watcher: %#v\n", m) + ctx.Errorf("SNSSQSDefaultTtl - message assersion failed for watcher: %#v\n", m) } } @@ -907,3 +910,11 @@ func componentRuntimeOptions() []runtime.Option { runtime.WithPubSubs(pubsubRegistry), } } + +func teardown(t *testing.T) { + t.Logf("AWS SNS/SQS CertificationTests teardown...") + if err := deleteQueues(queues); err != nil { + t.Error(err) + } + t.Logf("AWS SNS/SQS CertificationTests teardown...done!") +}