OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library pub_semver.test.version_test; | 5 library pub_semver.test.version_test; |
6 | 6 |
7 import 'package:test/test.dart'; | 7 import 'package:test/test.dart'; |
8 | 8 |
9 import 'package:pub_semver/pub_semver.dart'; | 9 import 'package:pub_semver/pub_semver.dart'; |
10 | 10 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 test('allows()', () { | 131 test('allows()', () { |
132 expect(v123, allows(v123)); | 132 expect(v123, allows(v123)); |
133 expect(v123, doesNotAllow( | 133 expect(v123, doesNotAllow( |
134 new Version.parse('2.2.3'), | 134 new Version.parse('2.2.3'), |
135 new Version.parse('1.3.3'), | 135 new Version.parse('1.3.3'), |
136 new Version.parse('1.2.4'), | 136 new Version.parse('1.2.4'), |
137 new Version.parse('1.2.3-dev'), | 137 new Version.parse('1.2.3-dev'), |
138 new Version.parse('1.2.3+build'))); | 138 new Version.parse('1.2.3+build'))); |
139 }); | 139 }); |
140 | 140 |
| 141 test('allowsAll()', () { |
| 142 expect(v123.allowsAll(v123), isTrue); |
| 143 expect(v123.allowsAll(v003), isFalse); |
| 144 expect(v123.allowsAll(new VersionRange(min: v114, max: v124)), isFalse); |
| 145 expect(v123.allowsAll(VersionConstraint.any), isFalse); |
| 146 expect(v123.allowsAll(VersionConstraint.empty), isTrue); |
| 147 }); |
| 148 |
| 149 test('allowsAny()', () { |
| 150 expect(v123.allowsAny(v123), isTrue); |
| 151 expect(v123.allowsAny(v003), isFalse); |
| 152 expect(v123.allowsAny(new VersionRange(min: v114, max: v124)), isTrue); |
| 153 expect(v123.allowsAny(VersionConstraint.any), isTrue); |
| 154 expect(v123.allowsAny(VersionConstraint.empty), isFalse); |
| 155 }); |
| 156 |
141 test('intersect()', () { | 157 test('intersect()', () { |
142 // Intersecting the same version returns the version. | 158 // Intersecting the same version returns the version. |
143 expect(v123.intersect(v123), equals(v123)); | 159 expect(v123.intersect(v123), equals(v123)); |
144 | 160 |
145 // Intersecting a different version allows no versions. | 161 // Intersecting a different version allows no versions. |
146 expect(v123.intersect(v114).isEmpty, isTrue); | 162 expect(v123.intersect(v114).isEmpty, isTrue); |
147 | 163 |
148 // Intersecting a range returns the version if the range allows it. | 164 // Intersecting a range returns the version if the range allows it. |
149 expect(v123.intersect(new VersionRange(min: v114, max: v124)), | 165 expect(v123.intersect(new VersionRange(min: v114, max: v124)), |
150 equals(v123)); | 166 equals(v123)); |
151 | 167 |
152 // Intersecting a range allows no versions if the range doesn't allow it. | 168 // Intersecting a range allows no versions if the range doesn't allow it. |
153 expect(v114.intersect(new VersionRange(min: v123, max: v124)).isEmpty, | 169 expect(v114.intersect(new VersionRange(min: v123, max: v124)).isEmpty, |
154 isTrue); | 170 isTrue); |
155 }); | 171 }); |
156 | 172 |
| 173 group('union()', () { |
| 174 test("with the same version returns the version", () { |
| 175 expect(v123.union(v123), equals(v123)); |
| 176 }); |
| 177 |
| 178 test("with a different version returns a version that matches both", () { |
| 179 var result = v123.union(v080); |
| 180 expect(result, allows(v123)); |
| 181 expect(result, allows(v080)); |
| 182 |
| 183 // Nothing in between should match. |
| 184 expect(result, doesNotAllow(v114)); |
| 185 }); |
| 186 |
| 187 test("with a range returns the range if it contains the version", () { |
| 188 var range = new VersionRange(min: v114, max: v124); |
| 189 expect(v123.union(range), equals(range)); |
| 190 }); |
| 191 |
| 192 test("with a range with the version on the edge, expands the range", () { |
| 193 expect(v124.union(new VersionRange(min: v114, max: v124)), |
| 194 equals(new VersionRange(min: v114, max: v124, includeMax: true))); |
| 195 expect(v114.union(new VersionRange(min: v114, max: v124)), |
| 196 equals(new VersionRange(min: v114, max: v124, includeMin: true))); |
| 197 }); |
| 198 |
| 199 test("with a range allows both the range and the version if the range " |
| 200 "doesn't contain the version", () { |
| 201 var result = v123.union(new VersionRange(min: v003, max: v114)); |
| 202 expect(result, allows(v123)); |
| 203 expect(result, allows(v010)); |
| 204 }); |
| 205 }); |
| 206 |
157 test('isEmpty', () { | 207 test('isEmpty', () { |
158 expect(v123.isEmpty, isFalse); | 208 expect(v123.isEmpty, isFalse); |
159 }); | 209 }); |
160 | 210 |
161 test('nextMajor', () { | 211 test('nextMajor', () { |
162 expect(v123.nextMajor, equals(v200)); | 212 expect(v123.nextMajor, equals(v200)); |
163 expect(v114.nextMajor, equals(v200)); | 213 expect(v114.nextMajor, equals(v200)); |
164 expect(v200.nextMajor, equals(v300)); | 214 expect(v200.nextMajor, equals(v300)); |
165 | 215 |
166 // Ignores pre-release if not on a major version. | 216 // Ignores pre-release if not on a major version. |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 expect(new Version(1, 2, 3, pre: 'pre', build: 'bui').toString(), | 301 expect(new Version(1, 2, 3, pre: 'pre', build: 'bui').toString(), |
252 equals('1.2.3-pre+bui')); | 302 equals('1.2.3-pre+bui')); |
253 }); | 303 }); |
254 | 304 |
255 test('preserves leading zeroes', () { | 305 test('preserves leading zeroes', () { |
256 expect(new Version.parse('001.02.0003-01.dev+pre.002').toString(), | 306 expect(new Version.parse('001.02.0003-01.dev+pre.002').toString(), |
257 equals('001.02.0003-01.dev+pre.002')); | 307 equals('001.02.0003-01.dev+pre.002')); |
258 }); | 308 }); |
259 }); | 309 }); |
260 } | 310 } |
OLD | NEW |