Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1348)

Unified Diff: test/version_range_test.dart

Issue 2035983002: Make VersionRange implement Comparable. (Closed) Base URL: git@github.com:dart-lang/pub_semver@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« lib/src/version.dart ('K') | « lib/src/version_union.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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");
}
« lib/src/version.dart ('K') | « lib/src/version_union.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698