blob: f7b6bd0e08ce0614e673268e219f516e9f6e9a57 [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:test/test.dart';
import 'package:path/path.dart';
void main() {
group("considers equal", () {
test("two identical paths", () {
var set = PathSet();
expect(set.add(join("foo", "bar")), isTrue);
expect(set.add(join("foo", "bar")), isFalse);
expect(set, hasLength(1));
expect(set, contains(join("foo", "bar")));
});
test("two logically equivalent paths", () {
var set = PathSet();
expect(set.add("foo"), isTrue);
expect(set.add(absolute("foo")), isFalse);
expect(set, hasLength(1));
expect(set, contains("foo"));
expect(set, contains(absolute("foo")));
});
test("two nulls", () {
var set = PathSet();
expect(set.add(null), isTrue);
expect(set.add(null), isFalse);
expect(set, hasLength(1));
expect(set, contains(null));
});
});
group("considers unequal", () {
test("two distinct paths", () {
var set = PathSet();
expect(set.add("foo"), isTrue);
expect(set.add("bar"), isTrue);
expect(set, hasLength(2));
expect(set, contains("foo"));
expect(set, contains("bar"));
});
test("a path and null", () {
var set = PathSet();
expect(set.add("foo"), isTrue);
expect(set.add(null), isTrue);
expect(set, hasLength(2));
expect(set, contains("foo"));
expect(set, contains(null));
});
});
test("uses the custom context", () {
var set = PathSet(context: windows);
expect(set.add("FOO"), isTrue);
expect(set.add("foo"), isFalse);
expect(set, hasLength(1));
expect(set, contains("fOo"));
});
group(".of()", () {
test("copies the existing set's keys", () {
var set = PathSet.of(["foo", "bar"]);
expect(set, hasLength(2));
expect(set, contains("foo"));
expect(set, contains("bar"));
});
test("uses the first value in the case of duplicates", () {
var set = PathSet.of(["foo", absolute("foo")]);
expect(set, hasLength(1));
expect(set, contains("foo"));
expect(set, contains(absolute("foo")));
expect(set.first, "foo");
});
});
}