- Standalone SQS-service repository - Multi-tenant message queue service, AWS SQS compatible - Based on GoAws, with mutable tenants, auth, WebUI, Redis persistence - Ready for independent development and deployment - See doc/ and README.md for architecture and usage
105 lines
2.6 KiB
Go
105 lines
2.6 KiB
Go
package gosqs
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"shared-sqs/app/test"
|
|
|
|
"shared-sqs/app/conf"
|
|
"shared-sqs/app/fixtures"
|
|
"shared-sqs/app/interfaces"
|
|
"shared-sqs/app/models"
|
|
"shared-sqs/app/utils"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGetQueueUrlV1_success(t *testing.T) {
|
|
conf.LoadYamlConfig("../conf/mock-data/mock-config.yaml", "BaseUnitTests")
|
|
|
|
defer func() {
|
|
models.ResetApp()
|
|
utils.REQUEST_TRANSFORMER = utils.TransformRequest
|
|
}()
|
|
|
|
utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request, emptyRequestValid bool) (success bool) {
|
|
v := resultingStruct.(*models.GetQueueUrlRequest)
|
|
*v = models.GetQueueUrlRequest{
|
|
QueueName: "unit-queue1",
|
|
QueueOwnerAWSAccountId: "fugafuga",
|
|
}
|
|
return true
|
|
}
|
|
|
|
_, r := test.GenerateRequestInfo(
|
|
"POST",
|
|
"/",
|
|
nil,
|
|
true)
|
|
code, response := GetQueueUrlV1(r)
|
|
|
|
get_queue_url_response := response.(models.GetQueueUrlResponse)
|
|
|
|
assert.Equal(t, http.StatusOK, code)
|
|
assert.Contains(t, get_queue_url_response.Result.QueueUrl, fmt.Sprintf("%s/%s", fixtures.BASE_URL, "unit-queue1"))
|
|
|
|
}
|
|
|
|
func TestGetQueueUrlV1_error_no_queue(t *testing.T) {
|
|
|
|
conf.LoadYamlConfig("../conf/mock-data/mock-config.yaml", "BaseUnitTests")
|
|
|
|
defer func() {
|
|
models.ResetApp()
|
|
utils.REQUEST_TRANSFORMER = utils.TransformRequest
|
|
}()
|
|
|
|
utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request, emptyRequestValid bool) (success bool) {
|
|
v := resultingStruct.(*models.GetQueueUrlRequest)
|
|
*v = models.GetQueueUrlRequest{
|
|
QueueName: "not-exist-unit-queue1",
|
|
QueueOwnerAWSAccountId: "fugafuga",
|
|
}
|
|
return true
|
|
}
|
|
|
|
_, r := test.GenerateRequestInfo(
|
|
"POST",
|
|
"/",
|
|
nil,
|
|
true)
|
|
code, response := GetQueueUrlV1(r)
|
|
|
|
expected := models.ErrorResult{
|
|
Type: "Not Found",
|
|
Code: "AWS.SimpleQueueService.NonExistentQueue",
|
|
Message: "The specified queue does not exist for this wsdl version.",
|
|
}
|
|
|
|
assert.Equal(t, http.StatusBadRequest, code)
|
|
assert.Equal(t, response.GetResult().(models.ErrorResult), expected)
|
|
}
|
|
|
|
func TestGetQueueUrlV1_error_request_transformer(t *testing.T) {
|
|
|
|
conf.LoadYamlConfig("../conf/mock-data/mock-config.yaml", "BaseUnitTests")
|
|
|
|
defer func() {
|
|
models.ResetApp()
|
|
utils.REQUEST_TRANSFORMER = utils.TransformRequest
|
|
}()
|
|
|
|
utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request, emptyRequestValid bool) (success bool) {
|
|
return false
|
|
}
|
|
|
|
_, r := test.GenerateRequestInfo(
|
|
"POST",
|
|
"/",
|
|
nil,
|
|
true)
|
|
code, _ := GetQueueUrlV1(r)
|
|
assert.Equal(t, http.StatusBadRequest, code)
|
|
}
|