diff --git a/app/gosqs/gosqs_test.go b/app/gosqs/gosqs_test.go index 1a441e25..441fb91f 100644 --- a/app/gosqs/gosqs_test.go +++ b/app/gosqs/gosqs_test.go @@ -24,106 +24,6 @@ func TestMain(m *testing.M) { m.Run() } -func TestSendMessage_MaximumMessageSize_Success(t *testing.T) { - req, err := http.NewRequest("POST", "/", nil) - if err != nil { - t.Fatal(err) - } - - app.SyncQueues.Queues["test_max_message_size"] = - &app.Queue{Name: "test_max_message_size", MaximumMessageSize: 100} - - 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 - - status, response := SendMessageV1(req) - - // Check the status code is what we expect. - if status != http.StatusOK { - t.Errorf("handler returned wrong status code: got %v want %v", - status, http.StatusOK) - } - - // Check the response body is what we expect. - sendMessageResponse, ok := response.(models.SendMessageResponse) - assert.True(t, ok) - if len(sendMessageResponse.Result.MD5OfMessageBody) == 0 { - t.Errorf("handler returned unexpected body: got %v", - sendMessageResponse.Result) - } -} - -func TestSendMessage_MaximumMessageSize_MessageTooBig(t *testing.T) { - req, err := http.NewRequest("POST", "/", nil) - if err != nil { - t.Fatal(err) - } - - app.SyncQueues.Queues["test_max_message_size"] = - &app.Queue{Name: "test_max_message_size", MaximumMessageSize: 10} - - 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 - - status, response := SendMessageV1(req) - - // Check the status code is what we expect. - if status != http.StatusBadRequest { - t.Errorf("handler returned wrong status code: got %v want %v", - status, http.StatusBadRequest) - } - - // Check the response body is what we expect. - errorResponse, ok := response.(models.ErrorResponse) - assert.True(t, ok) - expected := "MessageTooBig" - if errorResponse.Result.Type != expected { - t.Errorf("handler returned unexpected body: got %v want %v", - errorResponse.Result.Type, expected) - } -} - -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) - if err != nil { - t.Fatal(err) - } - - 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 - - status, response := SendMessageV1(req) - - // Check the status code is what we expect. - if status != http.StatusBadRequest { - t.Errorf("handler returned wrong status code: got %v want %v", - status, http.StatusBadRequest) - } - - // Check the response body is what we expect. - errorResponse, ok := response.(models.ErrorResponse) - assert.True(t, ok) - expected := "Not Found" - if errorResponse.Result.Type != expected { - t.Errorf("handler returned unexpected body: got %v want %v", - errorResponse.Result.Type, expected) - } -} - func TestSendMessageBatch_POST_QueueNotFound(t *testing.T) { req, err := http.NewRequest("POST", "/", nil) if err != nil { diff --git a/app/gosqs/send_message_test.go b/app/gosqs/send_message_test.go new file mode 100644 index 00000000..3d31b939 --- /dev/null +++ b/app/gosqs/send_message_test.go @@ -0,0 +1,111 @@ +package gosqs + +import ( + "net/http" + "net/url" + "testing" + + "github.com/Admiral-Piett/goaws/app" + "github.com/Admiral-Piett/goaws/app/models" + "github.com/stretchr/testify/assert" +) + +func TestSendMessage_MaximumMessageSize_Success(t *testing.T) { + req, err := http.NewRequest("POST", "/", nil) + if err != nil { + t.Fatal(err) + } + + app.SyncQueues.Queues["test_max_message_size"] = + &app.Queue{Name: "test_max_message_size", MaximumMessageSize: 100} + + 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 + + status, response := SendMessageV1(req) + + // Check the status code is what we expect. + if status != http.StatusOK { + t.Errorf("handler returned wrong status code: got %v want %v", + status, http.StatusOK) + } + + // Check the response body is what we expect. + sendMessageResponse, ok := response.(models.SendMessageResponse) + assert.True(t, ok) + if len(sendMessageResponse.Result.MD5OfMessageBody) == 0 { + t.Errorf("handler returned unexpected body: got %v", + sendMessageResponse.Result) + } +} + +func TestSendMessage_MaximumMessageSize_MessageTooBig(t *testing.T) { + req, err := http.NewRequest("POST", "/", nil) + if err != nil { + t.Fatal(err) + } + + app.SyncQueues.Queues["test_max_message_size"] = + &app.Queue{Name: "test_max_message_size", MaximumMessageSize: 10} + + 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 + + status, response := SendMessageV1(req) + + // Check the status code is what we expect. + if status != http.StatusBadRequest { + t.Errorf("handler returned wrong status code: got %v want %v", + status, http.StatusBadRequest) + } + + // Check the response body is what we expect. + errorResponse, ok := response.(models.ErrorResponse) + assert.True(t, ok) + expected := "MessageTooBig" + if errorResponse.Result.Type != expected { + t.Errorf("handler returned unexpected body: got %v want %v", + errorResponse.Result.Type, expected) + } +} + +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) + if err != nil { + t.Fatal(err) + } + + 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 + + status, response := SendMessageV1(req) + + // Check the status code is what we expect. + if status != http.StatusBadRequest { + t.Errorf("handler returned wrong status code: got %v want %v", + status, http.StatusBadRequest) + } + + // Check the response body is what we expect. + errorResponse, ok := response.(models.ErrorResponse) + assert.True(t, ok) + expected := "Not Found" + if errorResponse.Result.Type != expected { + t.Errorf("handler returned unexpected body: got %v want %v", + errorResponse.Result.Type, expected) + } +}