diff --git a/smoke_tests/fixtures/requests.go b/smoke_tests/fixtures/requests.go index 6c18fb7f..ecdbba06 100644 --- a/smoke_tests/fixtures/requests.go +++ b/smoke_tests/fixtures/requests.go @@ -7,6 +7,16 @@ import ( "github.com/Admiral-Piett/goaws/app/models" ) +var CreateQueuesRequestBodyXML = struct { + Action string `xml:"Action"` + Version string `xml:"Version"` + QueueName string `xml:"QueueName"` +}{ + Action: "CreateQueue", + Version: "2012-11-05", + QueueName: "new-queue-1", +} + var ListQueuesRequestBodyXML = struct { Action string `xml:"Action"` Version string `xml:"Version"` diff --git a/smoke_tests/sqs_send_message_test.go b/smoke_tests/sqs_send_message_test.go index 44c052d7..38429f3a 100644 --- a/smoke_tests/sqs_send_message_test.go +++ b/smoke_tests/sqs_send_message_test.go @@ -1 +1,54 @@ package smoke_tests + +import ( + "context" + "testing" + + af "github.com/Admiral-Piett/goaws/app/fixtures" + "github.com/Admiral-Piett/goaws/app/utils" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/sqs" + "github.com/stretchr/testify/assert" +) + +func Test_SendMessageV1_json_no_attributes(t *testing.T) { + server := generateServer() + defer func() { + server.Close() + utils.ResetResources() + }() + + sdkConfig, _ := config.LoadDefaultConfig(context.TODO()) + sdkConfig.BaseEndpoint = aws.String(server.URL) + sqsClient := sqs.NewFromConfig(sdkConfig) + sdkResponse, _ := sqsClient.CreateQueue(context.TODO(), &sqs.CreateQueueInput{ + QueueName: &af.QueueName, + }) + targetQueueUrl := sdkResponse.QueueUrl + + // TODO: I tried invoke without awssdk but there was an unexpected/unknown error on Xml.Decode on CreateQueue API logic... + // e := httpexpect.Default(t, server.URL) + // r := e.POST("/"). + // WithForm(sf.CreateQueuesRequestBodyXML). + // Expect(). + // Status(http.StatusOK). + // Body().Raw() + // r2 := models.CreateQueueResponse{} + // xml.Unmarshal([]byte(r), &r2) + // targetQueueUrl := r2.Result.QueueUrl + + // Target test + targetMessageBody := "Test_SendMessageV1_json_no_attributes" + // sdkConfig, _ := config.LoadDefaultConfig(context.TODO()) + // sdkConfig.BaseEndpoint = aws.String(server.URL) + // sqsClient := sqs.NewFromConfig(sdkConfig) + sendMessageOutput, _ := sqsClient.SendMessage(context.TODO(), &sqs.SendMessageInput{ + QueueUrl: targetQueueUrl, + MessageBody: &targetMessageBody, + }) + + assert.NotNil(t, sendMessageOutput.MessageId) + + // TODO: Assert message count in queue with GetQueueAttributes API +}