Index: test/version_range_test.dart |
diff --git a/test/version_range_test.dart b/test/version_range_test.dart |
index 9eaa980464cf3329f244213b4eb2a36abae36e84..eaa473f033aba2ce71d14b743a96842305bab8f8 100644 |
--- a/test/version_range_test.dart |
+++ b/test/version_range_test.dart |
@@ -445,4 +445,61 @@ main() { |
expect(new VersionRange().isEmpty, isFalse); |
expect(new VersionRange(min: v123, max: v124).isEmpty, isFalse); |
}); |
+ |
+ group('compareTo()', () { |
+ test("orders by minimum first", () { |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v080), |
+ new VersionRange(min: v010, max: v072)); |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v080), |
+ new VersionRange(min: v010, max: v080)); |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v080), |
+ new VersionRange(min: v010, max: v114)); |
+ }); |
+ |
+ test("orders by maximum second", () { |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v010), |
+ new VersionRange(min: v003, max: v072)); |
+ }); |
+ |
+ test("includeMin comes before !includeMin", () { |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v080, includeMin: true), |
+ new VersionRange(min: v003, max: v080, includeMin: false)); |
+ }); |
+ |
+ test("includeMax comes after !includeMax", () { |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v080, includeMax: false), |
+ new VersionRange(min: v003, max: v080, includeMax: true)); |
+ }); |
+ |
+ test("no minimum comes before small minimum", () { |
+ _expectComparesSmaller( |
+ new VersionRange(max: v010), |
+ new VersionRange(min: v003, max: v010)); |
+ _expectComparesSmaller( |
+ new VersionRange(max: v010, includeMin: true), |
Bob Nystrom
2016/06/03 16:18:03
What's the difference between this and the previou
nweiz
2016/06/06 22:27:46
This *should* be the same as the last test, but Ve
|
+ new VersionRange(min: v003, max: v010)); |
+ }); |
+ |
+ test("no maximium comes after large maximum", () { |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v300), |
+ new VersionRange(min: v003)); |
+ _expectComparesSmaller( |
+ new VersionRange(min: v003, max: v300), |
+ new VersionRange(min: v003, includeMax: true)); |
+ }); |
+ }); |
+} |
+ |
+void _expectComparesSmaller(VersionRange smaller, VersionRange larger) { |
+ expect(smaller.compareTo(larger), lessThan(0), |
+ reason: "expected $smaller to sort below $larger"); |
+ expect(larger.compareTo(smaller), greaterThan(0), |
+ reason: "expected $larger to sort above $smaller"); |
} |