Beispiel #1
0
// Normalize convert all the values to string, if a value can't not
// convert to string, an error will be returned.
// Float will round to 2 decimal precision.
func (params Parameters) Normalize() (mwsHttps.Values, error) {
	nParams := mwsHttps.NewValues()
	var stringVal string
	for key, val := range params {
		switch t := val.(type) {
		default:
			err := fmt.Errorf("Unexpected type %T", t)
			return nParams, err
		case bool:
			stringVal = strconv.FormatBool(val.(bool))
		case int:
			stringVal = strconv.Itoa(val.(int))
		case float32:
			stringVal = strconv.FormatFloat(float64(val.(float32)), 'f', 2, 32)
		case float64:
			stringVal = strconv.FormatFloat(val.(float64), 'f', 2, 64)
		case string:
			stringVal = val.(string)
		case time.Time:
			isoT := val.(time.Time)
			stringVal = isoT.UTC().Format(time.RFC3339) // "2006-01-02T15:04:05Z07:00"
		}
		nParams.Set(key, stringVal)
	}
	return nParams, nil
}
Beispiel #2
0
func TestValuesEncode(t *testing.T) {
	values := mwsHttps.NewValues()
	values.Add("key1", "a b c")

	Convey("Space should be replaced by %20", t, func() {
		encodeValue := values.Encode()
		So(encodeValue, ShouldEqual, "key1=a%20b%20c")
	})
}
Beispiel #3
0
func TestHttpClient(t *testing.T) {
	client, _ := NewMwsBase(testConfig, "V1", "Test")
	params := mwsHttps.NewValues()
	httpClient := client.HTTPClient(params)

	Convey("Http client has expected host", t, func() {
		So(httpClient.Host, ShouldEqual, "mws.amazonservices.com")
	})

	Convey("Http client has expected path", t, func() {
		So(httpClient.Path, ShouldEqual, "/Test/V1")
	})
}