From 7a0330f7ecd73c5b4053495c513d985c1a1b8119 Mon Sep 17 00:00:00 2001 From: Andrei Ozerov Date: Wed, 18 Apr 2018 14:34:41 +0300 Subject: [PATCH] Resell V2 - add client with a custom endpoint Users may want to use custom endpoint for the Resell V2 API. This commit adds a new NewV2ResellClientWithEndpoint method, fixes argument capitalization in the old NewV2ResellClient method and adds simple tests. --- selvpcclient/resell/v2/client.go | 16 ++++++++-- selvpcclient/resell/v2/client_test.go | 43 +++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 selvpcclient/resell/v2/client_test.go diff --git a/selvpcclient/resell/v2/client.go b/selvpcclient/resell/v2/client.go index 2cf98ea..7ed431a 100644 --- a/selvpcclient/resell/v2/client.go +++ b/selvpcclient/resell/v2/client.go @@ -11,11 +11,23 @@ import ( const APIVersion = "v2" // NewV2ResellClient initializes a new Resell client for the V2 API. -func NewV2ResellClient(TokenID string) *selvpcclient.ServiceClient { +func NewV2ResellClient(tokenID string) *selvpcclient.ServiceClient { resellClient := &selvpcclient.ServiceClient{ HTTPClient: &http.Client{}, Endpoint: resell.Endpoint + "/" + APIVersion, - TokenID: TokenID, + TokenID: tokenID, + UserAgent: resell.UserAgent, + } + + return resellClient +} + +// NewV2ResellClientWithEndpoint initializes a new Resell client for the V2 API with custom endpoint. +func NewV2ResellClientWithEndpoint(tokenID, endpoint string) *selvpcclient.ServiceClient { + resellClient := &selvpcclient.ServiceClient{ + HTTPClient: &http.Client{}, + Endpoint: endpoint, + TokenID: tokenID, UserAgent: resell.UserAgent, } diff --git a/selvpcclient/resell/v2/client_test.go b/selvpcclient/resell/v2/client_test.go new file mode 100644 index 0000000..a590eeb --- /dev/null +++ b/selvpcclient/resell/v2/client_test.go @@ -0,0 +1,43 @@ +package v2 + +import ( + "net/http" + "reflect" + "testing" + + "github.com/selectel/go-selvpcclient/selvpcclient" + "github.com/selectel/go-selvpcclient/selvpcclient/resell" +) + +func TestNewV2ResellClient(t *testing.T) { + token := "fakeID" + expected := &selvpcclient.ServiceClient{ + HTTPClient: &http.Client{}, + Endpoint: resell.Endpoint + "/" + APIVersion, + TokenID: token, + UserAgent: resell.UserAgent, + } + + actual := NewV2ResellClient(token) + + if !reflect.DeepEqual(expected, actual) { + t.Fatalf("expected %#v, but got %#v", expected, actual) + } +} + +func TestNewV2ResellClientWithEndpoint(t *testing.T) { + token := "fakeID" + endpoint := "http://example.org" + expected := &selvpcclient.ServiceClient{ + HTTPClient: &http.Client{}, + Endpoint: endpoint, + TokenID: token, + UserAgent: resell.UserAgent, + } + + actual := NewV2ResellClientWithEndpoint(token, endpoint) + + if !reflect.DeepEqual(expected, actual) { + t.Fatalf("expected %#v, but got %#v", expected, actual) + } +}