- 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
76 lines
1.6 KiB
Go
76 lines
1.6 KiB
Go
package models
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"shared-sqs/app/test"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type StringToIntStruct struct {
|
|
Field1 StringToInt `json:"Field1"`
|
|
Field2 StringToInt `json:"Field2"`
|
|
}
|
|
|
|
func TestStringToInt_unmarshalJSON_int(t *testing.T) {
|
|
body := struct {
|
|
Field1 int `json:"Field1"`
|
|
Field2 int `json:"Field2"`
|
|
}{
|
|
Field1: 1,
|
|
Field2: 2,
|
|
}
|
|
_, r := test.GenerateRequestInfo("POST", "/", body, true)
|
|
|
|
result := &StringToIntStruct{}
|
|
decoder := json.NewDecoder(r.Body)
|
|
err := decoder.Decode(result)
|
|
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, StringToInt(1), result.Field1)
|
|
assert.Equal(t, StringToInt(2), result.Field2)
|
|
}
|
|
|
|
func TestStringToInt_unmarshalJSON_string(t *testing.T) {
|
|
body := struct {
|
|
Field1 string `json:"Field1"`
|
|
Field2 string `json:"Field2"`
|
|
}{
|
|
Field1: "1",
|
|
Field2: "2",
|
|
}
|
|
_, r := test.GenerateRequestInfo("POST", "/", body, true)
|
|
|
|
result := &StringToIntStruct{}
|
|
decoder := json.NewDecoder(r.Body)
|
|
err := decoder.Decode(result)
|
|
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, StringToInt(1), result.Field1)
|
|
assert.Equal(t, StringToInt(2), result.Field2)
|
|
}
|
|
|
|
func TestStringToInt_unmarshalJSON_invalid_type_returns_error(t *testing.T) {
|
|
body := struct {
|
|
Field1 bool `json:"Field1"`
|
|
Field2 bool `json:"Field2"`
|
|
}{
|
|
Field1: true,
|
|
Field2: false,
|
|
}
|
|
_, r := test.GenerateRequestInfo("POST", "/", body, true)
|
|
|
|
result := &StringToIntStruct{}
|
|
decoder := json.NewDecoder(r.Body)
|
|
err := decoder.Decode(result)
|
|
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestStringToInt_int_returns_int_type(t *testing.T) {
|
|
s := StringToInt(1)
|
|
|
|
assert.Equal(t, int(1), s.Int())
|
|
}
|