-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsemver_test.go
More file actions
88 lines (70 loc) · 1.98 KB
/
semver_test.go
File metadata and controls
88 lines (70 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package main
import "testing"
func checkInt(t *testing.T, expect, result int) {
if result != expect {
t.Errorf("Expected '%d' but got '%d'", expect, result)
}
}
func TestNewSemVer(t *testing.T) {
semver := NewSemVer(1, 2, 3)
expectMajor := 1
expectMinor := 2
expectPatch := 3
checkInt(t, expectMajor, semver.Major)
checkInt(t, expectMinor, semver.Minor)
checkInt(t, expectPatch, semver.Patch)
}
func TestParseSemVer(t *testing.T) {
versionStrGood := "1.2.3"
versionStrBad1 := "1.2.3.4"
versionStrBad2 := "1.2"
// Good version
semver, _ := ParseSemVer(versionStrGood)
expectMajor := 1
expectMinor := 2
expectPatch := 3
checkInt(t, expectMajor, semver.Major)
checkInt(t, expectMinor, semver.Minor)
checkInt(t, expectPatch, semver.Patch)
// Long version
_, err1 := ParseSemVer(versionStrBad1)
if err1 == nil {
t.Errorf("Expect this version %s to raise an error", versionStrBad1)
}
// Short version
_, err2 := ParseSemVer(versionStrBad2)
if err2 == nil {
t.Errorf("Expect this version %s to raise an error", versionStrBad2)
}
// ToDo:
// Check for bad versions like: "v1.2.3", "1.v2.3", "1v.2.3" etc
}
func TestParseSemVerSlice(t *testing.T) {
versions := []string{"1.2.3", "2.3.4"}
semvers, _ := ParseSemVerSlice(versions)
expectMajor := 2
expectMinor := 3
expectPatch := 4
checkInt(t, expectMajor, semvers[1].Major)
checkInt(t, expectMinor, semvers[1].Minor)
checkInt(t, expectPatch, semvers[1].Patch)
// ToDo:
// Add error cases
}
func TestHighestSemVer(t *testing.T) {
versions := []string{"1.2.3", "2.3.4"}
semvers, _ := ParseSemVerSlice(versions)
expectMajor := 2
expectMinor := 3
expectPatch := 4
highest, _ := GetHighestSemVerFromSlice(semvers)
checkInt(t, expectMajor, highest.Major)
checkInt(t, expectMinor, highest.Minor)
checkInt(t, expectPatch, highest.Patch)
// Sorting an empty array
emptySemver := []SemVer{}
highest, error := GetHighestSemVerFromSlice(emptySemver)
if error == nil {
t.Errorf("Expect an empty array to raise an error")
}
}