package util

import (
	"github.com/stretchr/testify/require"
	urllib "net/url"
	"testing"
)

func TestRequest_AppendQuery(t *testing.T) {
	for _, item := range []struct {
		name     string
		key      string
		val      string
		expected string
	}{
		{name: "appendExistedKey", key: "p1", val: "val1", expected: "http://example/path?p1=val1&p1=val1"},
		{name: "appendNonExistedKey", key: "p2", val: "val2", expected: "http://example/path?p1=val1&p2=val2"},
	} {
		t.Run(item.name, func(t *testing.T) {
			url, err := urllib.Parse("http://example/path?p1=val1")
			require.NoError(t, err)
			r := Request{url: *url}
			r.AppendQuery(item.key, item.val)
			require.Equal(t, item.expected, r.url.String())
		})
	}

}
