| // Copyright (c) 2013, 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:path/path.dart' as p; | |
| import 'package:test/test.dart'; | |
| /// A matcher for a closure that throws a [p.PathException]. | |
| final throwsPathException = throwsA(const TypeMatcher<p.PathException>()); | |
| void expectEquals(p.Context context, String path1, String path2) { | |
| expect( | |
| context.equals(path1, path2), | |
| isTrue, | |
| reason: 'Expected "$path1" to equal "$path2".', | |
| ); | |
| expect( | |
| context.equals(path2, path1), | |
| isTrue, | |
| reason: 'Expected "$path2" to equal "$path1".', | |
| ); | |
| expect( | |
| context.hash(path1), | |
| equals(context.hash(path2)), | |
| reason: 'Expected "$path1" to hash the same as "$path2".', | |
| ); | |
| } | |
| void expectNotEquals( | |
| p.Context context, | |
| String path1, | |
| String path2, { | |
| bool allowSameHash = false, | |
| }) { | |
| expect( | |
| context.equals(path1, path2), | |
| isFalse, | |
| reason: 'Expected "$path1" not to equal "$path2".', | |
| ); | |
| expect( | |
| context.equals(path2, path1), | |
| isFalse, | |
| reason: 'Expected "$path2" not to equal "$path1".', | |
| ); | |
| // Hash collisions are allowed, but the test author should be explicitly aware | |
| // when they occur. | |
| if (allowSameHash) return; | |
| expect( | |
| context.hash(path1), | |
| isNot(equals(context.hash(path2))), | |
| reason: 'Expected "$path1" not to hash the same as "$path2".', | |
| ); | |
| } |