Skip to content

Commit

Permalink
Update UT
Browse files Browse the repository at this point in the history
  • Loading branch information
kojisaikiAtSony committed May 15, 2024
1 parent 14c8798 commit fe667e4
Showing 1 changed file with 83 additions and 37 deletions.
120 changes: 83 additions & 37 deletions app/gosqs/send_message_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,41 @@ package gosqs

import (
"net/http"
"net/url"
"testing"

"github.com/Admiral-Piett/goaws/app"
"github.com/Admiral-Piett/goaws/app/fixtures"
"github.com/Admiral-Piett/goaws/app/interfaces"
"github.com/Admiral-Piett/goaws/app/models"
"github.com/Admiral-Piett/goaws/app/utils"
"github.com/stretchr/testify/assert"
)

func TestSendMessage_Success(t *testing.T) {
req, err := http.NewRequest("POST", "/", nil)
assert.Nil(t, err)
func TestSendMessageV1_Success(t *testing.T) {
app.CurrentEnvironment = fixtures.LOCAL_ENVIRONMENT
defer func() {
utils.ResetApp()
utils.REQUEST_TRANSFORMER = utils.TransformRequest
}()

app.SyncQueues.Queues["test_max_message_size"] =
&app.Queue{Name: "test_max_message_size", MaximumMessageSize: 100}
sendMessageRequest_success := models.SendMessageRequest{
QueueUrl: "http://localhost:4200/new-queue-1",
MessageBody: "Test Message",
}
utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request) (success bool) {
v := resultingStruct.(*models.SendMessageRequest)
*v = sendMessageRequest_success
return true
}

form := url.Values{}
form.Add("Action", "SendMessage")
form.Add("QueueUrl", "http://localhost:4100/queue/test_max_message_size")
form.Add("MessageBody", "test%20message%20body%201")
form.Add("Version", "2012-11-05")
req.PostForm = form
q := &app.Queue{
Name: "new-queue-1",
MaximumMessageSize: 1024,
}
app.SyncQueues.Queues["new-queue-1"] = q

status, response := SendMessageV1(req)
_, r := utils.GenerateRequestInfo("POST", "/", nil, true)
status, response := SendMessageV1(r)

// Check the status code is what we expect.
if status != http.StatusOK {
Expand All @@ -41,21 +53,48 @@ func TestSendMessage_Success(t *testing.T) {
}
}

func TestSendMessage_MaximumMessageSize_MessageTooBig(t *testing.T) {
req, err := http.NewRequest("POST", "/", nil)
assert.Nil(t, err)
func TestSendMessageV1_request_transformer_error(t *testing.T) {
app.CurrentEnvironment = fixtures.LOCAL_ENVIRONMENT
defer func() {
utils.ResetApp()
utils.REQUEST_TRANSFORMER = utils.TransformRequest
}()

utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request) (success bool) {
return false
}

app.SyncQueues.Queues["test_max_message_size"] =
&app.Queue{Name: "test_max_message_size", MaximumMessageSize: 10}
_, r := utils.GenerateRequestInfo("POST", "/", nil, true)
code, _ := SendMessageV1(r)

form := url.Values{}
form.Add("Action", "SendMessage")
form.Add("QueueUrl", "http://localhost:4100/queue/test_max_message_size")
form.Add("MessageBody", "test%20message%20body%201")
form.Add("Version", "2012-11-05")
req.PostForm = form
assert.Equal(t, http.StatusBadRequest, code)
}

status, response := SendMessageV1(req)
func TestSendMessageV1_MaximumMessageSize_MessageTooBig(t *testing.T) {
app.CurrentEnvironment = fixtures.LOCAL_ENVIRONMENT
defer func() {
utils.ResetApp()
utils.REQUEST_TRANSFORMER = utils.TransformRequest
}()

sendMessageRequest_success := models.SendMessageRequest{
QueueUrl: "http://localhost:4200/new-queue-1",
MessageBody: "Test Message",
}
utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request) (success bool) {
v := resultingStruct.(*models.SendMessageRequest)
*v = sendMessageRequest_success
return true
}

q := &app.Queue{
Name: "new-queue-1",
MaximumMessageSize: 1,
}
app.SyncQueues.Queues["new-queue-1"] = q

_, r := utils.GenerateRequestInfo("POST", "/", nil, true)
status, response := SendMessageV1(r)

// Check the status code is what we expect.
if status != http.StatusBadRequest {
Expand All @@ -73,20 +112,27 @@ func TestSendMessage_MaximumMessageSize_MessageTooBig(t *testing.T) {
}
}

func TestSendQueue_POST_NonExistant(t *testing.T) {
// Create a request to pass to our handler. We don't have any query parameters for now, so we'll
// pass 'nil' as the third parameter.
req, err := http.NewRequest("POST", "/", nil)
assert.Nil(t, err)
func TestSendMessageV1_POST_QueueNonExistant(t *testing.T) {
app.CurrentEnvironment = fixtures.LOCAL_ENVIRONMENT
defer func() {
utils.ResetApp()
utils.REQUEST_TRANSFORMER = utils.TransformRequest
}()

sendMessageRequest_success := models.SendMessageRequest{
QueueUrl: "http://localhost:4200/new-queue-1",
MessageBody: "Test Message",
}
utils.REQUEST_TRANSFORMER = func(resultingStruct interfaces.AbstractRequestBody, req *http.Request) (success bool) {
v := resultingStruct.(*models.SendMessageRequest)
*v = sendMessageRequest_success
return true
}

form := url.Values{}
form.Add("Action", "SendMessage")
form.Add("QueueUrl", "http://localhost:4100/queue/NON-EXISTANT")
form.Add("MessageBody", "Test123")
form.Add("Version", "2012-11-05")
req.PostForm = form
// No test queue is added to app.SyncQueues

status, response := SendMessageV1(req)
_, r := utils.GenerateRequestInfo("POST", "/", nil, true)
status, response := SendMessageV1(r)

// Check the status code is what we expect.
if status != http.StatusBadRequest {
Expand Down

0 comments on commit fe667e4

Please sign in to comment.