Skip to content

Commit a97a7c4

Browse files
author
t-qini
committed
Add unit tests for azure VMSS client async operations.
1 parent 07cf649 commit a97a7c4

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ go_test(
3232
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients:go_default_library",
3333
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient:go_default_library",
3434
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient:go_default_library",
35+
"//staging/src/k8s.io/legacy-cloud-providers/azure/retry:go_default_library",
3536
"//vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute:go_default_library",
3637
"//vendor/github.com/Azure/go-autorest/autorest:go_default_library",
38+
"//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library",
3739
"//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library",
3840
"//vendor/github.com/golang/mock/gomock:go_default_library",
3941
"//vendor/github.com/stretchr/testify/assert:go_default_library",

staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,22 @@ import (
2222
"bytes"
2323
"context"
2424
"encoding/json"
25+
"fmt"
2526
"io/ioutil"
2627
"net/http"
2728
"testing"
2829

2930
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
3031
"github.com/Azure/go-autorest/autorest"
32+
"github.com/Azure/go-autorest/autorest/azure"
3133
"github.com/Azure/go-autorest/autorest/to"
3234
"github.com/golang/mock/gomock"
3335
"github.com/stretchr/testify/assert"
3436

3537
azclients "k8s.io/legacy-cloud-providers/azure/clients"
3638
"k8s.io/legacy-cloud-providers/azure/clients/armclient"
3739
"k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient"
40+
"k8s.io/legacy-cloud-providers/azure/retry"
3841
)
3942

4043
func TestGetNotFound(t *testing.T) {
@@ -119,6 +122,41 @@ func TestCreateOrUpdate(t *testing.T) {
119122
assert.Nil(t, rerr)
120123
}
121124

125+
func TestCreateOrUpdateAsync(t *testing.T) {
126+
ctrl := gomock.NewController(t)
127+
defer ctrl.Finish()
128+
129+
vmss := getTestVMSS("vmss1")
130+
armClient := mockarmclient.NewMockInterface(ctrl)
131+
future := &azure.Future{}
132+
133+
armClient.EXPECT().PutResourceAsync(gomock.Any(), to.String(vmss.ID), vmss).Return(future, nil).Times(1)
134+
vmssClient := getTestVMSSClient(armClient)
135+
_, rerr := vmssClient.CreateOrUpdateAsync(context.TODO(), "rg", "vmss1", vmss)
136+
assert.Nil(t, rerr)
137+
138+
retryErr := &retry.Error{RawError: fmt.Errorf("error")}
139+
armClient.EXPECT().PutResourceAsync(gomock.Any(), to.String(vmss.ID), vmss).Return(future, retryErr).Times(1)
140+
_, rerr = vmssClient.CreateOrUpdateAsync(context.TODO(), "rg", "vmss1", vmss)
141+
assert.Equal(t, retryErr, rerr)
142+
}
143+
144+
func TestWaitForAsyncOperationResult(t *testing.T) {
145+
ctrl := gomock.NewController(t)
146+
defer ctrl.Finish()
147+
148+
armClient := mockarmclient.NewMockInterface(ctrl)
149+
response := &http.Response{
150+
StatusCode: http.StatusOK,
151+
Body: ioutil.NopCloser(bytes.NewReader([]byte(""))),
152+
}
153+
154+
armClient.EXPECT().WaitForAsyncOperationResult(gomock.Any(), &azure.Future{}, "VMSSWaitForAsyncOperationResult").Return(response, nil)
155+
vmssClient := getTestVMSSClient(armClient)
156+
_, err := vmssClient.WaitForAsyncOperationResult(context.TODO(), &azure.Future{})
157+
assert.Nil(t, err)
158+
}
159+
122160
func TestDeleteInstances(t *testing.T) {
123161
ctrl := gomock.NewController(t)
124162
defer ctrl.Finish()

0 commit comments

Comments
 (0)