File tree Expand file tree Collapse file tree 14 files changed +192
-13
lines changed Expand file tree Collapse file tree 14 files changed +192
-13
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
2121import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart' ;
2222import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
2323import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
24+ import 'package:analyzer_utilities/check/check.dart' ;
2425import 'package:test/test.dart' ;
2526import 'package:test_reflective_loader/test_reflective_loader.dart' ;
2627
@@ -1599,7 +1600,7 @@ void f() {
15991600
16001601 RequestWithFutureResponse _sendTestCompletionRequest (String id, int offset) {
16011602 var request = CompletionGetSuggestions2Params (
1602- testFilePath ,
1603+ testFilePathPlatform ,
16031604 0 ,
16041605 1 << 10 ,
16051606 ).toRequest (id);
@@ -2794,7 +2795,7 @@ class SuggestionsValidator {
27942795 }
27952796
27962797 void assertEmpty () {
2797- expect (suggestions, isEmpty) ;
2798+ check (suggestions).isEmpty ;
27982799 }
27992800
28002801 void assertLength (Object matcher) {
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check.dart' ;
6+
7+ extension BoolExtension on CheckTarget <bool > {
8+ void get isTrue {
9+ if (! value) {
10+ fail ('is not true' );
11+ }
12+ }
13+
14+ void get isFalse {
15+ if (value) {
16+ fail ('is not false' );
17+ }
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check_target.dart' ;
6+ import 'package:meta/meta.dart' ;
7+
8+ export 'package:analyzer_utilities/check/check_target.dart' ;
9+ export 'package:analyzer_utilities/check/equality.dart' ;
10+ export 'package:analyzer_utilities/check/int.dart' ;
11+ export 'package:analyzer_utilities/check/iterable.dart' ;
12+ export 'package:analyzer_utilities/check/string.dart' ;
13+ export 'package:analyzer_utilities/check/type.dart' ;
14+
15+ @useResult
16+ CheckTarget <T > check <T >(T value) {
17+ return CheckTarget (value, 0 , () => '$value ' );
18+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:test/test.dart' as test_package;
6+
7+ class CheckTarget <T > {
8+ final T value;
9+ final int _depth;
10+
11+ /// The function that return the description of the value, and of the
12+ /// chain how we arrived to this value.
13+ final String Function () _describe;
14+
15+ CheckTarget (this .value, this ._depth, this ._describe);
16+
17+ String get _indent => ' ' * (_depth + 1 );
18+
19+ String valueStr (value) {
20+ if (value is String ) {
21+ return "'$value '" ;
22+ }
23+ return '$value ' ;
24+ }
25+
26+ Never fail (String message) {
27+ test_package.fail (_describe () + '\n ' + _indent + message);
28+ }
29+
30+ /// Chains to the given [value] ; if a subsequent check fails, [describe]
31+ /// will be invoked to describe the [value] .
32+ CheckTarget <U > nest <U >(
33+ U value,
34+ String Function (U value) describe,
35+ ) {
36+ return CheckTarget (value, _depth + 1 , () {
37+ return _describe () + '\n ' + _indent + describe (value);
38+ });
39+ }
40+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check.dart' ;
6+
7+ extension EqualityExtension <T > on CheckTarget <T > {
8+ void isEqualTo (Object ? other) {
9+ if (value != other) {
10+ fail ('is not equal to $other ' );
11+ }
12+ }
13+
14+ void isNotEqualTo (Object ? other) {
15+ if (value == other) {
16+ fail ('is equal to $other ' );
17+ }
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check.dart' ;
6+
7+ extension IntExtension on CheckTarget <int > {
8+ void get isZero {
9+ if (value != 0 ) {
10+ fail ('is not zero' );
11+ }
12+ }
13+
14+ void isGreaterThan (int other) {
15+ if (! (value > other)) {
16+ fail ('is not greater than $other ' );
17+ }
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check.dart' ;
6+
7+ extension IterableExtension <T > on CheckTarget <Iterable <T >> {
8+ void get isEmpty {
9+ if (value.isNotEmpty) {
10+ fail ('is not empty' );
11+ }
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check.dart' ;
6+ import 'package:meta/meta.dart' ;
7+
8+ extension StringExtension on CheckTarget <String > {
9+ void contains (Pattern other) {
10+ if (! value.contains (other)) {
11+ fail ('does not contain ${valueStr (other )}' );
12+ }
13+ }
14+
15+ void startsWith (Pattern other) {
16+ if (! value.startsWith (other)) {
17+ fail ('does not start with ${valueStr (other )}' );
18+ }
19+ }
20+
21+ @useResult
22+ CheckTarget <int > hasLength () {
23+ return nest (
24+ value.length,
25+ (length) => 'has length $length ' ,
26+ );
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ // Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ import 'package:analyzer_utilities/check/check.dart' ;
6+
7+ extension IsExtension <T > on CheckTarget <T > {
8+ CheckTarget <U > isA <U extends T >() {
9+ final value = this .value;
10+ if (value is U ) {
11+ return nest (value, (_) => 'is of type $U ' );
12+ } else {
13+ fail ('is not of type $U ' );
14+ }
15+ }
16+ }
Original file line number Diff line number Diff line change @@ -9,5 +9,7 @@ dependencies:
99 analyzer :
1010 path : ../analyzer
1111 html : any
12+ meta :
13+ path : ../meta
1214 path : any
1315 test : any
You can’t perform that action at this time.
0 commit comments