func TestValueAtPathFailure(t *testing.T) { var testCases = []struct { expect []interface{} errContains string data interface{} path string }{ {nil, "", data, "C.x"}, {nil, "SyntaxError: Invalid token: tDot", data, ".x"}, {nil, "", data, "X.Y.Z"}, {nil, "", data, "A[100].C"}, {nil, "", data, "A[3].C"}, {nil, "", data, "B.B.C.Z"}, {nil, "", data, "z[-1].C"}, {nil, "", nil, "A.B.C"}, {[]interface{}{}, "", Struct{}, "A"}, {nil, "", data, "A[0].B.C"}, {nil, "", data, "D"}, } for i, c := range testCases { v, err := awsutil.ValuesAtPath(c.data, c.path) if c.errContains != "" { assert.Contains(t, err.Error(), c.errContains, "case %d, expected error, %s", i, c.path) continue } else { assert.NoError(t, err, "case %d, expected no error, %s", i, c.path) } assert.Equal(t, c.expect, v, "case %d, %s", i, c.path) } }
func TestSendMessageBatchChecksumInvalid(t *testing.T) { req, _ := svc.SendMessageBatchRequest(&sqs.SendMessageBatchInput{ Entries: []*sqs.SendMessageBatchRequestEntry{ {Id: aws.String("1"), MessageBody: aws.String("test")}, {Id: aws.String("2"), MessageBody: aws.String("test")}, {Id: aws.String("3"), MessageBody: aws.String("test")}, {Id: aws.String("4"), MessageBody: aws.String("test")}, }, }) req.Handlers.Send.PushBack(func(r *request.Request) { md5 := "098f6bcd4621d373cade4e832627b4f6" body := ioutil.NopCloser(bytes.NewReader([]byte(""))) r.HTTPResponse = &http.Response{StatusCode: 200, Body: body} r.Data = &sqs.SendMessageBatchOutput{ Successful: []*sqs.SendMessageBatchResultEntry{ {MD5OfMessageBody: &md5, MessageId: aws.String("123"), Id: aws.String("1")}, {MD5OfMessageBody: aws.String("000"), MessageId: aws.String("456"), Id: aws.String("2")}, {MD5OfMessageBody: aws.String("000"), MessageId: aws.String("789"), Id: aws.String("3")}, {MD5OfMessageBody: &md5, MessageId: aws.String("012"), Id: aws.String("4")}, }, } }) err := req.Send() assert.Error(t, err) assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) assert.Contains(t, err.(awserr.Error).Message(), "invalid messages: 456, 789") }
func TestBuildJSON(t *testing.T) { for _, test := range jsonTests { out, err := jsonutil.BuildJSON(test.in) if test.err != "" { assert.Error(t, err) assert.Contains(t, err.Error(), test.err) } else { assert.NoError(t, err) assert.Equal(t, string(out), test.out) } } }
func TestSendMessageChecksumNoInput(t *testing.T) { req, _ := svc.SendMessageRequest(&sqs.SendMessageInput{}) req.Handlers.Send.PushBack(func(r *request.Request) { body := ioutil.NopCloser(bytes.NewReader([]byte(""))) r.HTTPResponse = &http.Response{StatusCode: 200, Body: body} r.Data = &sqs.SendMessageOutput{} }) err := req.Send() assert.Error(t, err) assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) assert.Contains(t, err.(awserr.Error).Message(), "cannot compute checksum. missing body") }
func TestSendMessageChecksumInvalid(t *testing.T) { req, _ := svc.SendMessageRequest(&sqs.SendMessageInput{ MessageBody: aws.String("test"), }) req.Handlers.Send.PushBack(func(r *request.Request) { body := ioutil.NopCloser(bytes.NewReader([]byte(""))) r.HTTPResponse = &http.Response{StatusCode: 200, Body: body} r.Data = &sqs.SendMessageOutput{ MD5OfMessageBody: aws.String("000"), MessageId: aws.String("12345"), } }) err := req.Send() assert.Error(t, err) assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) assert.Contains(t, err.(awserr.Error).Message(), "expected MD5 checksum '000', got '098f6bcd4621d373cade4e832627b4f6'") }
func TestRecieveMessageChecksumInvalid(t *testing.T) { req, _ := svc.ReceiveMessageRequest(&sqs.ReceiveMessageInput{}) req.Handlers.Send.PushBack(func(r *request.Request) { md5 := "098f6bcd4621d373cade4e832627b4f6" body := ioutil.NopCloser(bytes.NewReader([]byte(""))) r.HTTPResponse = &http.Response{StatusCode: 200, Body: body} r.Data = &sqs.ReceiveMessageOutput{ Messages: []*sqs.Message{ {Body: aws.String("test"), MD5OfBody: &md5}, {Body: aws.String("test"), MD5OfBody: aws.String("000"), MessageId: aws.String("123")}, {Body: aws.String("test"), MD5OfBody: aws.String("000"), MessageId: aws.String("456")}, {Body: aws.String("test"), MD5OfBody: &md5}, }, } }) err := req.Send() assert.Error(t, err) assert.Equal(t, "InvalidChecksum", err.(awserr.Error).Code()) assert.Contains(t, err.(awserr.Error).Message(), "invalid messages: 123, 456") }