gopkg.in/essentialkaos/ek.v3@v3.5.1/version/version_test.go (about) 1 package version 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2009-2016 Essential Kaos // 6 // Essential Kaos Open Source License <http://essentialkaos.com/ekol?en> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "testing" 12 13 . "pkg.re/check.v1" 14 ) 15 16 // ////////////////////////////////////////////////////////////////////////////////// // 17 18 func Test(t *testing.T) { TestingT(t) } 19 20 type VersionSuite struct{} 21 22 // ////////////////////////////////////////////////////////////////////////////////// // 23 24 var _ = Suite(&VersionSuite{}) 25 26 // ////////////////////////////////////////////////////////////////////////////////// // 27 28 func (s *VersionSuite) TestMajor(c *C) { 29 c.Assert(Parse("1").Major(), Equals, 1) 30 c.Assert(Parse("2.0.0").Major(), Equals, 2) 31 c.Assert(Parse("3.4.5").Major(), Equals, 3) 32 c.Assert(Parse("4-beta1").Major(), Equals, 4) 33 c.Assert(Parse("5-beta2+exp.sha.5114f85").Major(), Equals, 5) 34 } 35 36 func (s *VersionSuite) TestMinor(c *C) { 37 c.Assert(Parse("1").Minor(), Equals, 0) 38 c.Assert(Parse("2.1").Minor(), Equals, 1) 39 c.Assert(Parse("3.4.5").Minor(), Equals, 4) 40 c.Assert(Parse("4-alpha1").Minor(), Equals, 0) 41 c.Assert(Parse("5-beta1+sha:5114f85").Minor(), Equals, 0) 42 c.Assert(Parse("6.12.1-beta2+exp.sha.5114f85").Minor(), Equals, 12) 43 } 44 45 func (s *VersionSuite) TestPatch(c *C) { 46 c.Assert(Parse("1").Patch(), Equals, 0) 47 c.Assert(Parse("2.1").Patch(), Equals, 0) 48 c.Assert(Parse("3.4.5").Patch(), Equals, 5) 49 c.Assert(Parse("4-alpha1").Patch(), Equals, 0) 50 c.Assert(Parse("5-beta1+sha:5114f85").Patch(), Equals, 0) 51 c.Assert(Parse("6.12.1-beta2+exp.sha.5114f85").Patch(), Equals, 1) 52 } 53 54 func (s *VersionSuite) TestPre(c *C) { 55 c.Assert(Parse("1").PreRelease(), Equals, "") 56 c.Assert(Parse("2.1").PreRelease(), Equals, "") 57 c.Assert(Parse("3.4.5").PreRelease(), Equals, "") 58 c.Assert(Parse("3.4.5-").PreRelease(), Equals, "") 59 c.Assert(Parse("4-alpha1").PreRelease(), Equals, "alpha1") 60 c.Assert(Parse("5-beta1+sha:5114f85").PreRelease(), Equals, "beta1") 61 c.Assert(Parse("6.12.1-beta2+exp.sha.5114f85").PreRelease(), Equals, "beta2") 62 } 63 64 func (s *VersionSuite) TestBuild(c *C) { 65 c.Assert(Parse("1").Build(), Equals, "") 66 c.Assert(Parse("2.1").Build(), Equals, "") 67 c.Assert(Parse("3.4.5").Build(), Equals, "") 68 c.Assert(Parse("4-alpha1+").Build(), Equals, "") 69 c.Assert(Parse("5-beta1+sha:5114f85").Build(), Equals, "sha:5114f85") 70 c.Assert(Parse("6.12.1-beta2+exp.sha.5114f85").Build(), Equals, "exp.sha.5114f85") 71 } 72 73 func (s *VersionSuite) TestString(c *C) { 74 c.Assert(Parse("1").String(), Equals, "1") 75 c.Assert(Parse("2.1").String(), Equals, "2.1") 76 c.Assert(Parse("3.4.5").String(), Equals, "3.4.5") 77 c.Assert(Parse("5-beta1+sha:5114f85").String(), Equals, "5-beta1+sha:5114f85") 78 c.Assert(Parse("6.12.1-beta2+exp.sha.5114f85").String(), Equals, "6.12.1-beta2+exp.sha.5114f85") 79 } 80 81 func (s *VersionSuite) TestValidation(c *C) { 82 var v1 *Version 83 var v2 = &Version{} 84 85 c.Assert(v1.Valid(), Equals, false) 86 c.Assert(v2.Valid(), Equals, false) 87 c.Assert(Parse("A").Valid(), Equals, false) 88 c.Assert(Parse("").Valid(), Equals, false) 89 90 c.Assert(Parse("1").Valid(), Equals, true) 91 c.Assert(Parse("2.1").Valid(), Equals, true) 92 c.Assert(Parse("3.4.5").Valid(), Equals, true) 93 c.Assert(Parse("5-beta1+sha:5114f85").Valid(), Equals, true) 94 c.Assert(Parse("6.12.1-beta2+exp.sha.5114f85").Valid(), Equals, true) 95 } 96 97 func (s *VersionSuite) TestErrors(c *C) { 98 var v1 *Version 99 var v2 = &Version{} 100 101 c.Assert(Parse("A").Major(), Equals, -1) 102 c.Assert(Parse("A").Minor(), Equals, -1) 103 c.Assert(Parse("A").Patch(), Equals, -1) 104 c.Assert(Parse("A").PreRelease(), Equals, "") 105 c.Assert(Parse("A").Build(), Equals, "") 106 107 c.Assert(Parse("").Major(), Equals, -1) 108 c.Assert(Parse("").Minor(), Equals, -1) 109 c.Assert(Parse("").Patch(), Equals, -1) 110 c.Assert(Parse("").PreRelease(), Equals, "") 111 c.Assert(Parse("").Build(), Equals, "") 112 113 c.Assert(v1.Major(), Equals, -1) 114 c.Assert(v1.Minor(), Equals, -1) 115 c.Assert(v1.Patch(), Equals, -1) 116 c.Assert(v1.PreRelease(), Equals, "") 117 c.Assert(v1.Build(), Equals, "") 118 c.Assert(v1.String(), Equals, "") 119 120 c.Assert(v2.Major(), Equals, -1) 121 c.Assert(v2.Minor(), Equals, -1) 122 c.Assert(v2.Patch(), Equals, -1) 123 c.Assert(v2.PreRelease(), Equals, "") 124 c.Assert(v2.Build(), Equals, "") 125 c.Assert(v2.String(), Equals, "") 126 } 127 128 func (s *VersionSuite) TestComparison(c *C) { 129 c.Assert(Parse("1").Equal(Parse("1")), Equals, true) 130 c.Assert(Parse("1").Equal(Parse("2")), Equals, false) 131 c.Assert(Parse("1").Equal(Parse("1.0")), Equals, true) 132 c.Assert(Parse("1").Equal(Parse("1.1")), Equals, false) 133 c.Assert(Parse("1").Equal(Parse("1.0.0")), Equals, true) 134 c.Assert(Parse("1").Equal(Parse("1.0.1")), Equals, false) 135 c.Assert(Parse("1").Equal(Parse("1.0.0-alpha1")), Equals, false) 136 c.Assert(Parse("1").Equal(Parse("1.0.0+sha:5114f85")), Equals, false) 137 c.Assert(Parse("1.0.0+sha:5114f85").Equal(Parse("1.0.0+sha:5114f85")), Equals, true) 138 139 c.Assert(Parse("1").Less(Parse("1")), Equals, false) 140 c.Assert(Parse("1").Less(Parse("1.0")), Equals, false) 141 c.Assert(Parse("1").Less(Parse("1.0.0")), Equals, false) 142 c.Assert(Parse("1").Less(Parse("2")), Equals, true) 143 c.Assert(Parse("1").Less(Parse("1.1")), Equals, true) 144 c.Assert(Parse("1").Less(Parse("1.0.1")), Equals, true) 145 c.Assert(Parse("1.0.1-alpha").Less(Parse("1.0.1")), Equals, true) 146 c.Assert(Parse("1.0.1").Less(Parse("1.0.1-alpha")), Equals, false) 147 c.Assert(Parse("1.0.1-alpha").Less(Parse("1.0.1-beta")), Equals, true) 148 c.Assert(Parse("1.0.1-gamma").Less(Parse("1.0.1-beta")), Equals, false) 149 c.Assert(Parse("1.0.1-alpha").Less(Parse("1.0.1-alpha1")), Equals, true) 150 c.Assert(Parse("1.0.1-a4").Less(Parse("1.0.1-a5")), Equals, true) 151 c.Assert(Parse("1.0.1-a5").Less(Parse("1.0.1-a5")), Equals, false) 152 153 c.Assert(Parse("1").Greater(Parse("1")), Equals, false) 154 c.Assert(Parse("1").Greater(Parse("1.0")), Equals, false) 155 c.Assert(Parse("1").Greater(Parse("1.0.0")), Equals, false) 156 c.Assert(Parse("2").Greater(Parse("1")), Equals, true) 157 c.Assert(Parse("1.1").Greater(Parse("1")), Equals, true) 158 c.Assert(Parse("1.0.1").Greater(Parse("1")), Equals, true) 159 c.Assert(Parse("1.0.1-alpha").Greater(Parse("1.0.1")), Equals, false) 160 c.Assert(Parse("1.0.1").Greater(Parse("1.0.1-alpha")), Equals, true) 161 c.Assert(Parse("1.0.1-alpha").Greater(Parse("1.0.1-beta")), Equals, false) 162 c.Assert(Parse("1.0.1-gamma").Greater(Parse("1.0.1-beta")), Equals, true) 163 c.Assert(Parse("1.0.1-alpha").Greater(Parse("1.0.1-alpha1")), Equals, false) 164 c.Assert(Parse("1.0.1-a4").Greater(Parse("1.0.1-a5")), Equals, false) 165 c.Assert(Parse("1.0.1-a5").Greater(Parse("1.0.1-a5")), Equals, false) 166 167 c.Assert(Parse("1").Contains(Parse("1")), Equals, true) 168 c.Assert(Parse("1").Contains(Parse("1.1")), Equals, true) 169 c.Assert(Parse("1").Contains(Parse("1.0.1")), Equals, true) 170 c.Assert(Parse("2").Contains(Parse("1")), Equals, false) 171 c.Assert(Parse("1.1").Contains(Parse("1.2")), Equals, false) 172 c.Assert(Parse("1.0").Contains(Parse("1.0.2")), Equals, true) 173 c.Assert(Parse("1.0.1").Contains(Parse("1.0.2")), Equals, false) 174 c.Assert(Parse("1.0.1").Contains(Parse("1.0.1-alpha")), Equals, false) 175 }