-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathversion_test.go
72 lines (64 loc) · 1.68 KB
/
version_test.go
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
package migo
import "testing"
func TestGreaterOrEqualVersion(t *testing.T) {
for _, v := range []struct{ Greater, Less string }{
{"2.0.0-desc", "1.0.0-desc"},
{"2.0.1-desc", "2.0.0-desc"},
{"1.0.0-desc", "0.9.0-desc"},
{"0.1.1-desc", "0.1.0-desc"},
{"0.1.1-desc", "0.1.0-desc"},
{"0.0.2-desc", "0.0.1-desc"},
{"0.2.2-desc", "0.2.1-desc"},
{"1.0.0-desc", "1.0.0-desc"},
{"1.2.0-desc", "1.2.0-hm"},
{"1.2.1-desc", "1.2.1-hm"},
{"0.0.1-desc", "0.0.1-desc"},
} {
g, err := VersionFromString(v.Greater)
if err != nil {
t.Error(err)
}
l, err := VersionFromString(v.Less)
if err != nil {
t.Error(err)
}
if !g.GreaterThanOrEqual(l) {
t.Error(g, "should be greater then", l, "or equal")
}
}
}
func TestVersionString(t *testing.T) {
source := "1.2.3.4-desc"
v, err := VersionFromString(source)
if err != nil {
t.Error(err)
}
if v.String() != source {
t.Error("wrong response")
}
}
func TestGreatestVersion(t *testing.T) {
for _, v := range []struct {
slice []string
res string
}{
{[]string{"2.0.0-desc", "1.0.0-desc"}, "2-desc"},
{[]string{"1.20.1-desc", "2.0.0-desc", "1.0.0-desc"}, "2-desc"},
{[]string{"1.20.1-desc", "2.0.0-desc", "2.0.0.1-desc"}, "2.0.0.1-desc"},
{[]string{"1.20.1-desc", "2.0.0-desc", "2.0.0.1-desc", "2.0.0.0-desc"}, "2.0.0.1-desc"},
{[]string{"1.20.1-desc", "2.0.0-desc", "2.0.0.21-desc", "2.0.0.1-desc"}, "2.0.0.21-desc"},
} {
versions := []Version{}
for _, v := range v.slice {
v, err := VersionFromString(v)
if err != nil {
t.Error(err)
}
versions = append(versions, *v)
}
result := GreatestVersion(versions)
if result.String() != v.res {
t.Error("expected", v.res, "have", result)
}
}
}