Add unit test case for pkg/apis/kops/util/versions_test.go

Signed-off-by: ZouYu <zouy.fnst@cn.fujitsu.com>
This commit is contained in:
ZouYu 2020-05-22 15:23:25 +08:00
parent 8a6e13698c
commit 956f07188f
2 changed files with 69 additions and 15 deletions

View File

@ -23,6 +23,7 @@ go_test(
], ],
embed = [":go_default_library"], embed = [":go_default_library"],
deps = [ deps = [
"//vendor/github.com/blang/semver:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
], ],

View File

@ -17,26 +17,79 @@ limitations under the License.
package util package util
import ( import (
"fmt"
"reflect"
"testing" "testing"
"github.com/blang/semver"
) )
func Test_ParseKubernetesVersion(t *testing.T) { func Test_ParseKubernetesVersion(t *testing.T) {
grid := map[string]string{ cases := []struct {
"1.3.7": "1.3.7", version string
"v1.4.0-beta.8": "1.4.0-beta.8", expected *semver.Version
"1.5.0": "1.5.0", expectedError error
"https://storage.googleapis.com/kubernetes-release-dev/ci/v1.4.0-alpha.2.677+ea69570f61af8e/": "1.4.0", }{
{
version: "1.3.7",
expected: &semver.Version{
Major: 1,
Minor: 3,
Patch: 7,
},
},
{
version: "v1.4.0-beta.8",
expected: &semver.Version{
Major: 1,
Minor: 4,
Patch: 0,
Pre: []semver.PRVersion{
{
VersionStr: "beta",
},
{
VersionNum: 8,
IsNum: true,
},
},
},
},
{
version: "1.5.0",
expected: &semver.Version{
Major: 1,
Minor: 5,
Patch: 0,
},
},
{
version: "https://storage.googleapis.com/kubernetes-release-dev/ci/v1.4.0-alpha.2.677+ea69570f61af8e/",
expected: &semver.Version{
Major: 1,
Minor: 4,
Patch: 0,
},
},
{
version: "",
expectedError: fmt.Errorf("unable to parse kubernetes version \"\""),
},
{
version: "abc",
expectedError: fmt.Errorf("unable to parse kubernetes version \"abc\""),
},
} }
for version, expected := range grid { for _, c := range cases {
sv, err := ParseKubernetesVersion(version) t.Run(c.version, func(t *testing.T) {
if err != nil { actual, err := ParseKubernetesVersion(c.version)
t.Errorf("ParseKubernetesVersion error parsing %q: %v", version, err) if !reflect.DeepEqual(err, c.expectedError) {
} t.Errorf("ParseKubernetesVersion error parsing %q: %v", c.version, err)
}
actual := sv.String() if !reflect.DeepEqual(actual, c.expected) {
if actual != expected { t.Errorf("version mismatch: %q -> %q but expected %q", c.version, actual, c.expected)
t.Errorf("version mismatch: %q -> %q but expected %q", version, actual, expected) }
} })
} }
} }