blob: 4e0c57e9395750cc5b22b7a87eb6fba39099d67b [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 map = PathMap<int>();
map[join("foo", "bar")] = 1;
map[join("foo", "bar")] = 2;
expect(map, hasLength(1));
expect(map, containsPair(join("foo", "bar"), 2));
});
test("two logically equivalent paths", () {
var map = PathMap<int>();
map["foo"] = 1;
map[absolute("foo")] = 2;
expect(map, hasLength(1));
expect(map, containsPair("foo", 2));
expect(map, containsPair(absolute("foo"), 2));
});
test("two nulls", () {
var map = PathMap<int>();
map[null] = 1;
map[null] = 2;
expect(map, hasLength(1));
expect(map, containsPair(null, 2));
});
});
group("considers unequal", () {
test("two distinct paths", () {
var map = PathMap<int>();
map["foo"] = 1;
map["bar"] = 2;
expect(map, hasLength(2));
expect(map, containsPair("foo", 1));
expect(map, containsPair("bar", 2));
});
test("a path and null", () {
var map = PathMap<int>();
map["foo"] = 1;
map[null] = 2;
expect(map, hasLength(2));
expect(map, containsPair("foo", 1));
expect(map, containsPair(null, 2));
});
});
test("uses the custom context", () {
var map = PathMap<int>(context: windows);
map["FOO"] = 1;
map["foo"] = 2;
expect(map, hasLength(1));
expect(map, containsPair("fOo", 2));
});
group(".of()", () {
test("copies the existing map's keys", () {
var map = PathMap.of({"foo": 1, "bar": 2});
expect(map, hasLength(2));
expect(map, containsPair("foo", 1));
expect(map, containsPair("bar", 2));
});
test("uses the second value in the case of duplicates", () {
var map = PathMap.of({"foo": 1, absolute("foo"): 2});
expect(map, hasLength(1));
expect(map, containsPair("foo", 2));
expect(map, containsPair(absolute("foo"), 2));
});
});
}