diff --git a/staging/src/k8s.io/apimachinery/pkg/version/helpers_test.go b/staging/src/k8s.io/apimachinery/pkg/version/helpers_test.go index 4ce40c9897b..9f5ad04cb01 100644 --- a/staging/src/k8s.io/apimachinery/pkg/version/helpers_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/version/helpers_test.go @@ -50,3 +50,72 @@ func TestCompareKubeAwareVersionStrings(t *testing.T) { } } } + +func Test_parseKubeVersion(t *testing.T) { + tests := []struct { + name string + v string + wantMajorVersion int + wantVType versionType + wantMinorVersion int + wantOk bool + }{ + { + name: "invaild version for ga", + v: "v1.1", + wantMajorVersion: 0, + wantVType: 0, + wantMinorVersion: 0, + wantOk: false, + }, + { + name: "invaild version for alpha", + v: "v1alpha1.1", + wantMajorVersion: 0, + wantVType: 0, + wantMinorVersion: 0, + wantOk: false, + }, + { + name: "alpha version", + v: "v1alpha1", + wantMajorVersion: 1, + wantVType: 0, + wantMinorVersion: 1, + wantOk: true, + }, + { + name: "beta version", + v: "v2beta10", + wantMajorVersion: 2, + wantVType: 1, + wantMinorVersion: 10, + wantOk: true, + }, + { + name: "ga version", + v: "v3", + wantMajorVersion: 3, + wantVType: 2, + wantMinorVersion: 0, + wantOk: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + gotMajorVersion, gotVType, gotMinorVersion, gotOk := parseKubeVersion(tt.v) + if gotMajorVersion != tt.wantMajorVersion { + t.Errorf("parseKubeVersion() gotMajorVersion = %v, want %v", gotMajorVersion, tt.wantMajorVersion) + } + if gotVType != tt.wantVType { + t.Errorf("parseKubeVersion() gotVType = %v, want %v", gotVType, tt.wantVType) + } + if gotMinorVersion != tt.wantMinorVersion { + t.Errorf("parseKubeVersion() gotMinorVersion = %v, want %v", gotMinorVersion, tt.wantMinorVersion) + } + if gotOk != tt.wantOk { + t.Errorf("parseKubeVersion() gotOk = %v, want %v", gotOk, tt.wantOk) + } + }) + } +}