diff --git a/app/models/models_test.go b/app/models/models_test.go index 4808a20a..d256a36b 100644 --- a/app/models/models_test.go +++ b/app/models/models_test.go @@ -254,3 +254,39 @@ func TestNewListQueuesRequest_SetAttributesFromForm_invalid_max_results(t *testi assert.Equal(t, "next-token", lqr.NextToken) assert.Equal(t, "queue-name-prefix", lqr.QueueNamePrefix) } + +func TestSendMessageRequest_SetAttributesFromForm_success(t *testing.T) { + form := url.Values{} + form.Add("MessageAttribute.1.Name", "Attr1") + form.Add("MessageAttribute.1.Value.DataType", "String") + form.Add("MessageAttribute.1.Value.StringValue", "Value1") + form.Add("MessageAttribute.2.Name", "Attr2") + form.Add("MessageAttribute.2.Value.DataType", "String") + form.Add("MessageAttribute.2.Value.BinaryValue", "VmFsdWUy") + form.Add("MessageAttribute.3.Name", "") + form.Add("MessageAttribute.3.Value.DataType", "String") + form.Add("MessageAttribute.3.Value.StringValue", "Value") + form.Add("MessageAttribute.4.Name", "Attr4") + form.Add("MessageAttribute.4.Value.DataType", "") + form.Add("MessageAttribute.4.Value.StringValue", "Value4") + + r := &SendMessageRequest{ + MessageAttributes: make(map[string]MessageAttributeValue), + MessageSystemAttributes: make(map[string]MessageAttributeValue), + } + r.SetAttributesFromForm(form) + + assert.Equal(t, 2, len(r.MessageAttributes)) + + assert.NotNil(t, r.MessageAttributes["Attr1"]) + attr1 := r.MessageAttributes["Attr1"] + assert.Equal(t, "String", attr1.DataType) + assert.Equal(t, "Value1", attr1.StringValue) + assert.Equal(t, "", attr1.BinaryValue) + + assert.NotNil(t, r.MessageAttributes["Attr2"]) + attr2 := r.MessageAttributes["Attr2"] + assert.Equal(t, "String", attr2.DataType) + assert.Equal(t, "", attr2.StringValue) + assert.Equal(t, "VmFsdWUy", attr2.BinaryValue) +}