Skip to content

Commit fc7e3c2

Browse files
committed
add unit test
1 parent afbc94c commit fc7e3c2

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

pkg/gce-cloud-provider/compute/gce_test.go

+66
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,28 @@ limitations under the License.
1818
package gcecloudprovider
1919

2020
import (
21+
"context"
2122
"errors"
2223
"fmt"
2324
"net/http"
2425
"testing"
26+
"time"
27+
28+
"golang.org/x/oauth2"
2529

2630
"google.golang.org/api/googleapi"
2731
)
2832

33+
type mockTokenSource struct{}
34+
35+
func (*mockTokenSource) Token() (*oauth2.Token, error) {
36+
return &oauth2.Token{
37+
AccessToken: "access",
38+
TokenType: "Bearer",
39+
RefreshToken: "refresh",
40+
Expiry: time.Now().Add(1 * time.Hour),
41+
}, nil
42+
}
2943
func TestIsGCEError(t *testing.T) {
3044
testCases := []struct {
3145
name string
@@ -84,3 +98,55 @@ func TestIsGCEError(t *testing.T) {
8498
}
8599
}
86100
}
101+
102+
func TestGetComputeVersion(t *testing.T) {
103+
testCases := []struct {
104+
name string
105+
computeEndpoint string
106+
computeEnvironment Environment
107+
computeVersion Version
108+
expectedEndpoint string
109+
expectError bool
110+
}{
111+
112+
{
113+
name: "check for production environment",
114+
computeEndpoint: "https://compute.googleapis.com",
115+
computeEnvironment: "production",
116+
computeVersion: "v1",
117+
expectedEndpoint: "https://compute.googleapis.com/compute/v1/",
118+
expectError: false,
119+
},
120+
{
121+
name: "check for incorrect endpoint",
122+
computeEndpoint: "https://compute.googleapis",
123+
computeEnvironment: "prod",
124+
computeVersion: "v1",
125+
expectError: true,
126+
},
127+
{
128+
name: "check for staging environment",
129+
computeEndpoint: "https://compute.googleapis.com",
130+
computeEnvironment: environmentStaging,
131+
computeVersion: "v1",
132+
expectedEndpoint: "compute/staging_v1/",
133+
expectError: false,
134+
},
135+
{
136+
name: "check for random string as endpoint",
137+
computeEndpoint: "compute-googleapis",
138+
computeEnvironment: "prod",
139+
computeVersion: "v1",
140+
expectedEndpoint: "compute/v1/",
141+
expectError: true,
142+
},
143+
}
144+
for _, tc := range testCases {
145+
ctx := context.Background()
146+
_, err := getComputeVersion(ctx, &mockTokenSource{}, tc.computeEndpoint, tc.computeEnvironment, tc.computeVersion)
147+
if err != nil && !tc.expectError {
148+
t.Fatalf("Got error %v, expected endpoint %s", err, tc.expectedEndpoint)
149+
}
150+
}
151+
152+
}

0 commit comments

Comments
 (0)