| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library mocks; | 5 library mocks; |
| 6 | 6 |
| 7 @MirrorsUsed(targets: 'mocks', override: '*') | 7 @MirrorsUsed(targets: 'mocks', override: '*') |
| 8 import 'dart:mirrors'; | 8 import 'dart:mirrors'; |
| 9 import 'dart:async'; | 9 import 'dart:async'; |
| 10 import 'dart:io'; | 10 import 'dart:io'; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 */ | 60 */ |
| 61 Future pumpEventQueue([int times = 50]) { | 61 Future pumpEventQueue([int times = 50]) { |
| 62 if (times == 0) return new Future.value(); | 62 if (times == 0) return new Future.value(); |
| 63 // We use a delayed future to allow microtask events to finish. The | 63 // We use a delayed future to allow microtask events to finish. The |
| 64 // Future.value or Future() constructors use scheduleMicrotask themselves and | 64 // Future.value or Future() constructors use scheduleMicrotask themselves and |
| 65 // would therefore not wait for microtask callbacks that are scheduled after | 65 // would therefore not wait for microtask callbacks that are scheduled after |
| 66 // invoking this method. | 66 // invoking this method. |
| 67 return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1)); | 67 return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1)); |
| 68 } | 68 } |
| 69 | 69 |
| 70 /** | |
| 71 * Returns a [Future] that completes when the given [AnalysisServer] finished | |
| 72 * all its scheduled tasks. | |
| 73 */ | |
| 74 Future waitForServerOperationsPerformed(AnalysisServer server) { | |
| 75 if (server.isAnalysisComplete()) { | |
| 76 return new Future.value(); | |
| 77 } | |
| 78 // We use a delayed future to allow microtask events to finish. The | |
| 79 // Future.value or Future() constructors use scheduleMicrotask themselves and | |
| 80 // would therefore not wait for microtask callbacks that are scheduled after | |
| 81 // invoking this method. | |
| 82 return new Future.delayed( | |
| 83 Duration.ZERO, | |
| 84 () => waitForServerOperationsPerformed(server)); | |
| 85 } | |
| 86 | |
| 87 typedef void MockServerOperationPerformFunction(AnalysisServer server); | 70 typedef void MockServerOperationPerformFunction(AnalysisServer server); |
| 88 | 71 |
| 89 class MockAnalysisContext extends StringTypedMock implements AnalysisContext { | 72 class MockAnalysisContext extends StringTypedMock implements AnalysisContext { |
| 90 MockAnalysisContext(String name) : super(name); | 73 MockAnalysisContext(String name) : super(name); |
| 91 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); | 74 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
| 92 } | 75 } |
| 93 | 76 |
| 94 class MockClassElement extends TypedMock implements ClassElement { | 77 class MockClassElement extends TypedMock implements ClassElement { |
| 95 final ElementKind kind = ElementKind.CLASS; | 78 final ElementKind kind = ElementKind.CLASS; |
| 96 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); | 79 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 } | 481 } |
| 499 return mismatchDescription; | 482 return mismatchDescription; |
| 500 } | 483 } |
| 501 | 484 |
| 502 @override | 485 @override |
| 503 bool matches(item, Map matchState) { | 486 bool matches(item, Map matchState) { |
| 504 Response response = item; | 487 Response response = item; |
| 505 return response != null && response.id == _id && response.error == null; | 488 return response != null && response.id == _id && response.error == null; |
| 506 } | 489 } |
| 507 } | 490 } |
| OLD | NEW |