func TestParamsWithExtras(t *testing.T) { testCases := []struct { InitialBody url.Values Extras [][2]string ExpectedBody url.Values }{ { InitialBody: url.Values{"foo": {"bar"}}, Extras: [][2]string{}, ExpectedBody: url.Values{"foo": {"bar"}}, }, { InitialBody: url.Values{"foo": {"bar"}}, Extras: [][2]string{{"foo", "baz"}, {"other", "thing"}}, ExpectedBody: url.Values{"foo": {"bar", "baz"}, "other": {"thing"}}, }, } for _, testCase := range testCases { p := stripe.Params{} for _, extra := range testCase.Extras { p.AddExtra(extra[0], extra[1]) } body := testCase.InitialBody p.AppendTo(&body) if !reflect.DeepEqual(body, testCase.ExpectedBody) { t.Fatalf("Expected body of %v but got %v.", testCase.ExpectedBody, body) } } }
func TestParamsWithExtras(t *testing.T) { testCases := []struct { InitialBody [][2]string Extras [][2]string ExpectedBody [][2]string }{ { InitialBody: [][2]string{{"foo", "bar"}}, Extras: [][2]string{}, ExpectedBody: [][2]string{{"foo", "bar"}}, }, { InitialBody: [][2]string{{"foo", "bar"}}, Extras: [][2]string{{"foo", "baz"}, {"other", "thing"}}, ExpectedBody: [][2]string{{"foo", "bar"}, {"foo", "baz"}, {"other", "thing"}}, }, } for _, testCase := range testCases { p := stripe.Params{} for _, extra := range testCase.Extras { p.AddExtra(extra[0], extra[1]) } body := valuesFromArray(testCase.InitialBody) p.AppendTo(body) expected := valuesFromArray(testCase.ExpectedBody) if !reflect.DeepEqual(body, expected) { t.Fatalf("Expected body of %v but got %v.", expected, body) } } }