Skip to content

Commit eee158c

Browse files
committed
Added unit tests for identity server, fixed small spec inconsistency
1 parent 53270e2 commit eee158c

File tree

3 files changed

+74
-4
lines changed

3 files changed

+74
-4
lines changed

pkg/gce-pd-csi-driver/gce-pd-driver.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ import (
2626
)
2727

2828
type GCEDriver struct {
29-
name string
30-
nodeID string
29+
name string
30+
nodeID string
31+
vendorVersion string
3132

3233
ids *GCEIdentityServer
3334
ns *GCENodeServer
@@ -38,11 +39,15 @@ type GCEDriver struct {
3839
nscap []*csi.NodeServiceCapability
3940
}
4041

42+
const (
43+
vendorVersion = "v0.3.0-alpha"
44+
)
45+
4146
func GetGCEDriver() *GCEDriver {
4247
return &GCEDriver{}
4348
}
4449

45-
func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter mountmanager.Mounter, name string, nodeID string) error {
50+
func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter mountmanager.Mounter, name, nodeID string) error {
4651
if name == "" {
4752
return fmt.Errorf("Driver name missing")
4853
}
@@ -52,6 +57,7 @@ func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter
5257

5358
gceDriver.name = name
5459
gceDriver.nodeID = nodeID
60+
gceDriver.vendorVersion = vendorVersion
5561

5662
// Adding Capabilities
5763
vcam := []csi.VolumeCapability_AccessMode_Mode{

pkg/gce-pd-csi-driver/identity.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ func (gceIdentity *GCEIdentityServer) GetPluginInfo(ctx context.Context, req *cs
3535
}
3636

3737
return &csi.GetPluginInfoResponse{
38-
Name: gceIdentity.Driver.name,
38+
Name: gceIdentity.Driver.name,
39+
VendorVersion: gceIdentity.Driver.vendorVersion,
3940
}, nil
4041
}
4142

pkg/gce-pd-csi-driver/identity_test.go

+63
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,66 @@ limitations under the License.
1313
*/
1414

1515
package gceGCEDriver
16+
17+
import (
18+
"testing"
19+
20+
csi "github.com/container-storage-interface/spec/lib/go/csi/v0"
21+
"golang.org/x/net/context"
22+
)
23+
24+
func TestGetPluginInfo(t *testing.T) {
25+
gceDriver := GetGCEDriver()
26+
err := gceDriver.SetupGCEDriver(nil, nil, driver, node)
27+
if err != nil {
28+
t.Fatalf("Failed to setup GCE Driver: %v", err)
29+
}
30+
31+
resp, err := gceDriver.ids.GetPluginInfo(context.TODO(), &csi.GetPluginInfoRequest{})
32+
if err != nil {
33+
t.Fatalf("GetPluginInfo returned unexpected error: %v", err)
34+
}
35+
36+
if resp.GetName() != driver {
37+
t.Fatalf("Response name expected: %v, got: %v", driver, resp.GetName())
38+
}
39+
40+
respVer := resp.GetVendorVersion()
41+
if respVer != vendorVersion {
42+
t.Fatalf("Vendor version expected: %v, got: %v", vendorVersion, respVer)
43+
}
44+
}
45+
46+
func TestGetPluginCapabilities(t *testing.T) {
47+
gceDriver := GetGCEDriver()
48+
err := gceDriver.SetupGCEDriver(nil, nil, driver, node)
49+
if err != nil {
50+
t.Fatalf("Failed to setup GCE Driver: %v", err)
51+
}
52+
53+
resp, err := gceDriver.ids.GetPluginCapabilities(context.TODO(), &csi.GetPluginCapabilitiesRequest{})
54+
if err != nil {
55+
t.Fatalf("GetPluginCapabilities returned unexpected error: %v", err)
56+
}
57+
58+
for _, capability := range resp.GetCapabilities() {
59+
switch capability.GetService().GetType() {
60+
case csi.PluginCapability_Service_CONTROLLER_SERVICE:
61+
default:
62+
t.Fatalf("Unknown capability: %v", capability.GetService().GetType())
63+
}
64+
}
65+
}
66+
67+
func TestProbe(t *testing.T) {
68+
gceDriver := GetGCEDriver()
69+
err := gceDriver.SetupGCEDriver(nil, nil, driver, node)
70+
if err != nil {
71+
t.Fatalf("Failed to setup GCE Driver: %v", err)
72+
}
73+
74+
_, err = gceDriver.ids.Probe(context.TODO(), &csi.ProbeRequest{})
75+
if err != nil {
76+
t.Fatalf("Probe returned unexpected error: %v", err)
77+
}
78+
}

0 commit comments

Comments
 (0)