| Index: pkg/lookup_map/test/lookup_map_test.dart
|
| diff --git a/pkg/lookup_map/test/lookup_map_test.dart b/pkg/lookup_map/test/lookup_map_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ce001dd60303ee5789e8112f4cfc625369b5bf95
|
| --- /dev/null
|
| +++ b/pkg/lookup_map/test/lookup_map_test.dart
|
| @@ -0,0 +1,74 @@
|
| +// Copyright (c) 2015, 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:lookup_map/lookup_map.dart';
|
| +
|
| +import 'package:test/test.dart';
|
| +
|
| +class Key {
|
| + final int id;
|
| + const Key(this.id);
|
| +}
|
| +
|
| +class A{}
|
| +const B = const Key(1);
|
| +class C{}
|
| +
|
| +main() {
|
| + test('entries constructor', () {
|
| + var m = const LookupMap(const [
|
| + A, "the-text-for-A",
|
| + B, "the-text-for-B",
|
| + 1.2, "the-text-for-1.2"]);
|
| + expect(m[A], 'the-text-for-A');
|
| + expect(m[B], 'the-text-for-B');
|
| + expect(m[1.2], 'the-text-for-1.2');
|
| + expect(m[C], null);
|
| + expect(m[1.3], null);
|
| + });
|
| +
|
| + test('pair constructor', () {
|
| + var m = const LookupMap.pair(A, "the-text-for-A");
|
| + expect(m[A], 'the-text-for-A');
|
| + expect(m[B], null);
|
| + });
|
| +
|
| + test('nested lookup', () {
|
| + var m = const LookupMap(const [],
|
| + const [const LookupMap.pair(A, "the-text-for-A")]);
|
| + expect(m[A], 'the-text-for-A');
|
| + expect(m[B], null);
|
| + });
|
| +
|
| + test('entry shadows nested maps', () {
|
| + var m = const LookupMap(const [
|
| + A, "the-text-for-A2",
|
| + ], const [
|
| + const LookupMap.pair(A, "the-text-for-A1"),
|
| + ]);
|
| + expect(m[A], 'the-text-for-A2');
|
| + });
|
| +
|
| + test('nested maps shadow in order', () {
|
| + var m = const LookupMap(const [ ], const [
|
| + const LookupMap.pair(A, "the-text-for-A1"),
|
| + const LookupMap.pair(B, "the-text-for-B2"),
|
| + const LookupMap.pair(A, "the-text-for-A2"),
|
| + const LookupMap.pair(B, "the-text-for-B1"),
|
| + ]);
|
| + expect(m[A], 'the-text-for-A2');
|
| + expect(m[B], 'the-text-for-B1');
|
| + });
|
| +
|
| + // This test would fail if dart2js has a bug, but we keep it here for our
|
| + // sanity.
|
| + test('reachable lookups are not tree-shaken', () {
|
| + var m = const LookupMap(const [
|
| + A, B,
|
| + B, C,
|
| + C, 3.4,
|
| + ]);
|
| + expect(m[m[m[A]]], 3.4);
|
| + });
|
| +}
|
|
|