@@ -16,10 +16,11 @@ func TestNew(t *testing.T) {
16
16
ctrl := gomock .NewController (t )
17
17
defer ctrl .Finish ()
18
18
19
+ mockCmdr := mock .NewCommander (ctrl )
19
20
mockFS := mock .NewFileSystem (ctrl )
20
21
mockFS .EXPECT ().HomeDir ().Return ("/Users/test" , nil )
21
22
22
- kubeCfg , err := kubeconfig .New (mockFS )
23
+ kubeCfg , err := kubeconfig .New (mockFS , mockCmdr )
23
24
24
25
assert .Nil (t , err )
25
26
assert .NotNil (t , kubeCfg )
@@ -29,9 +30,10 @@ func TestNew(t *testing.T) {
29
30
ctrl := gomock .NewController (t )
30
31
defer ctrl .Finish ()
31
32
33
+ mockCmdr := mock .NewCommander (ctrl )
32
34
mockFS := mock .NewFileSystem (ctrl )
33
35
mockFS .EXPECT ().HomeDir ().Return ("" , fmt .Errorf ("some error" ))
34
- _ , err := kubeconfig .New (mockFS )
36
+ _ , err := kubeconfig .New (mockFS , mockCmdr )
35
37
36
38
assert .EqualError (t , err , "some error" )
37
39
})
@@ -42,11 +44,12 @@ func TestDelete(t *testing.T) {
42
44
ctrl := gomock .NewController (t )
43
45
defer ctrl .Finish ()
44
46
47
+ mockCmdr := mock .NewCommander (ctrl )
45
48
mockFS := mock .NewFileSystem (ctrl )
46
49
mockFS .EXPECT ().HomeDir ().Return ("/Users/test" , nil )
47
50
mockFS .EXPECT ().Remove ("/Users/test/.kube/configs/context-name" ).Return (nil )
48
51
49
- kubeCfg , _ := kubeconfig .New (mockFS )
52
+ kubeCfg , _ := kubeconfig .New (mockFS , mockCmdr )
50
53
err := kubeCfg .Delete ("context-name" )
51
54
52
55
assert .Nil (t , err )
@@ -56,11 +59,12 @@ func TestDelete(t *testing.T) {
56
59
ctrl := gomock .NewController (t )
57
60
defer ctrl .Finish ()
58
61
62
+ mockCmdr := mock .NewCommander (ctrl )
59
63
mockFS := mock .NewFileSystem (ctrl )
60
64
mockFS .EXPECT ().HomeDir ().Return ("/Users/test" , nil )
61
65
mockFS .EXPECT ().Remove ("/Users/test/.kube/configs/context-name" ).Return (& os.PathError {Op : "remove" , Path : "/Users/test/.kube/configs/context-name" , Err : os .ErrNotExist })
62
66
63
- kubeCfg , _ := kubeconfig .New (mockFS )
67
+ kubeCfg , _ := kubeconfig .New (mockFS , mockCmdr )
64
68
err := kubeCfg .Delete ("context-name" )
65
69
66
70
assert .Nil (t , err )
@@ -70,13 +74,76 @@ func TestDelete(t *testing.T) {
70
74
ctrl := gomock .NewController (t )
71
75
defer ctrl .Finish ()
72
76
77
+ mockCmdr := mock .NewCommander (ctrl )
73
78
mockFS := mock .NewFileSystem (ctrl )
74
79
mockFS .EXPECT ().HomeDir ().Return ("/Users/test" , nil )
75
80
mockFS .EXPECT ().Remove ("/Users/test/.kube/configs/context-name" ).Return (fmt .Errorf ("some error" ))
76
81
77
- kubeCfg , _ := kubeconfig .New (mockFS )
82
+ kubeCfg , _ := kubeconfig .New (mockFS , mockCmdr )
78
83
err := kubeCfg .Delete ("context-name" )
79
84
80
85
assert .EqualError (t , err , "some error" )
81
86
})
82
87
}
88
+
89
+ func TestAddRegionalCluster (t * testing.T ) {
90
+ t .Run ("should invoke command for adding regional cluster" , func (* testing.T ) {
91
+ ctrl := gomock .NewController (t )
92
+ defer ctrl .Finish ()
93
+
94
+ mockFS := mock .NewFileSystem (ctrl )
95
+ mockFS .EXPECT ().HomeDir ().Return ("/Users/test" , nil )
96
+
97
+ mockCmdr := mock .NewCommander (ctrl )
98
+ args := []string {
99
+ "beta" ,
100
+ "container" ,
101
+ "clusters" ,
102
+ "get-credentials" ,
103
+ "test-cluster" ,
104
+ "--region=test-region" ,
105
+ "--project=test-project" ,
106
+ }
107
+ envs := []string {
108
+ "CLOUDSDK_CONTAINER_USE_V1_API_CLIENT=false" ,
109
+ "CLOUDSDK_CONTAINER_USE_V1_API=false" ,
110
+ "KUBECONFIG=/Users/test/.kube/configs/test-context" ,
111
+ }
112
+ mockCmdr .EXPECT ().Execute ("gcloud" , args , envs ).Return ("Context added successfully" , nil )
113
+
114
+ kubeCfg , _ := kubeconfig .New (mockFS , mockCmdr )
115
+ err := kubeCfg .AddRegionalCluster ("test-project" , "test-cluster" , "test-region" , "test-context" )
116
+
117
+ assert .Nil (t , err )
118
+ })
119
+
120
+ t .Run ("should return error if command failed to execute" , func (* testing.T ) {
121
+ ctrl := gomock .NewController (t )
122
+ defer ctrl .Finish ()
123
+
124
+ mockFS := mock .NewFileSystem (ctrl )
125
+ mockFS .EXPECT ().HomeDir ().Return ("/Users/test" , nil )
126
+
127
+ mockCmdr := mock .NewCommander (ctrl )
128
+ args := []string {
129
+ "beta" ,
130
+ "container" ,
131
+ "clusters" ,
132
+ "get-credentials" ,
133
+ "test-cluster" ,
134
+ "--region=test-region" ,
135
+ "--project=test-project" ,
136
+ }
137
+ envs := []string {
138
+ "CLOUDSDK_CONTAINER_USE_V1_API_CLIENT=false" ,
139
+ "CLOUDSDK_CONTAINER_USE_V1_API=false" ,
140
+ "KUBECONFIG=/Users/test/.kube/configs/test-context" ,
141
+ }
142
+ mockCmdr .EXPECT ().Execute ("gcloud" , args , envs ).Return ("" , fmt .Errorf ("some error" ))
143
+
144
+ kubeCfg , _ := kubeconfig .New (mockFS , mockCmdr )
145
+ err := kubeCfg .AddRegionalCluster ("test-project" , "test-cluster" , "test-region" , "test-context" )
146
+
147
+ assert .EqualError (t , err , "some error" )
148
+ })
149
+ }
0 commit comments