Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Side by Side Diff: pkg/analysis_server/test/mocks.dart

Issue 1256793006: Stop optimizing uses of "pub list". (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 import 'dart:async';
8 import 'dart:io';
7 @MirrorsUsed(targets: 'mocks', override: '*') 9 @MirrorsUsed(targets: 'mocks', override: '*')
8 import 'dart:mirrors'; 10 import 'dart:mirrors';
9 import 'dart:async';
10 import 'dart:io';
11 11
12 import 'package:analysis_server/src/analysis_server.dart'; 12 import 'package:analysis_server/src/analysis_server.dart';
13 import 'package:analysis_server/src/channel/channel.dart'; 13 import 'package:analysis_server/src/channel/channel.dart';
14 import 'package:analysis_server/src/operation/operation.dart'; 14 import 'package:analysis_server/src/operation/operation.dart';
15 import 'package:analysis_server/src/operation/operation_analysis.dart'; 15 import 'package:analysis_server/src/operation/operation_analysis.dart';
16 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind; 16 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind;
17 import 'package:analysis_server/src/source/optimizing_pub_package_map_provider.d art';
18 import 'package:analyzer/file_system/file_system.dart' as resource; 17 import 'package:analyzer/file_system/file_system.dart' as resource;
19 import 'package:analyzer/file_system/memory_file_system.dart' as resource; 18 import 'package:analyzer/file_system/memory_file_system.dart' as resource;
20 import 'package:analyzer/source/package_map_provider.dart'; 19 import 'package:analyzer/source/package_map_provider.dart';
20 import 'package:analyzer/source/pub_package_map_provider.dart';
21 import 'package:analyzer/src/generated/element.dart'; 21 import 'package:analyzer/src/generated/element.dart';
22 import 'package:analyzer/src/generated/engine.dart'; 22 import 'package:analyzer/src/generated/engine.dart';
23 import 'package:analyzer/src/generated/source.dart'; 23 import 'package:analyzer/src/generated/source.dart';
24 import 'package:typed_mock/typed_mock.dart'; 24 import 'package:typed_mock/typed_mock.dart';
25 import 'package:unittest/unittest.dart'; 25 import 'package:unittest/unittest.dart';
26 26
27 /** 27 /**
28 * Answer the absolute path the the SDK relative to the currently running 28 * Answer the absolute path the the SDK relative to the currently running
29 * script or throw an exception if it cannot be found. 29 * script or throw an exception if it cannot be found.
30 */ 30 */
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 145
146 class MockMethodElement extends StringTypedMock implements MethodElement { 146 class MockMethodElement extends StringTypedMock implements MethodElement {
147 final kind = ElementKind.METHOD; 147 final kind = ElementKind.METHOD;
148 MockMethodElement([String name = 'method']) : super(name); 148 MockMethodElement([String name = 'method']) : super(name);
149 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 149 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
150 } 150 }
151 151
152 /** 152 /**
153 * A mock [PackageMapProvider]. 153 * A mock [PackageMapProvider].
154 */ 154 */
155 class MockPackageMapProvider implements OptimizingPubPackageMapProvider { 155 class MockPackageMapProvider implements PubPackageMapProvider {
156 /** 156 /**
157 * Package map that will be returned by the next call to [computePackageMap]. 157 * Package map that will be returned by the next call to [computePackageMap].
158 */ 158 */
159 Map<String, List<resource.Folder>> packageMap = 159 Map<String, List<resource.Folder>> packageMap =
160 <String, List<resource.Folder>>{}; 160 <String, List<resource.Folder>>{};
161 161
162 /** 162 /**
163 * Package maps that will be returned by the next call to [computePackageMap]. 163 * Package maps that will be returned by the next call to [computePackageMap].
164 */ 164 */
165 Map<String, Map<String, List<resource.Folder>>> packageMaps = null; 165 Map<String, Map<String, List<resource.Folder>>> packageMaps = null;
166 166
167 /** 167 /**
168 * Dependency list that will be returned by the next call to [computePackageMa p]. 168 * Dependency list that will be returned by the next call to [computePackageMa p].
169 */ 169 */
170 Set<String> dependencies = new Set<String>(); 170 Set<String> dependencies = new Set<String>();
171 171
172 /** 172 /**
173 * Modification times that will be returned by the next call to
174 * [computePackageMap]. This will be filtered to include only those paths
175 * mentioned in the `dependencies` field of [computePackageMap]'s
176 * `previousInfo` argument.
177 */
178 Map<String, int> modificationTimes = <String, int>{};
179
180 /**
181 * Number of times [computePackageMap] has been called. 173 * Number of times [computePackageMap] has been called.
182 */ 174 */
183 int computeCount = 0; 175 int computeCount = 0;
184 176
185 @override 177 @override
186 OptimizingPubPackageMapInfo computePackageMap(resource.Folder folder, 178 PackageMapInfo computePackageMap(resource.Folder folder) {
187 [OptimizingPubPackageMapInfo previousInfo]) {
188 ++computeCount; 179 ++computeCount;
189 Map<String, int> filteredModificationTimes = <String, int>{}; 180 if (packageMaps != null) {
190 if (previousInfo != null) { 181 return new PackageMapInfo(packageMaps[folder.path], dependencies);
191 for (String dependency in previousInfo.dependencies) {
192 if (modificationTimes.containsKey(dependency)) {
193 filteredModificationTimes[dependency] = modificationTimes[dependency];
194 }
195 }
196 } 182 }
197 if (packageMaps != null) { 183 return new PackageMapInfo(packageMap, dependencies);
198 return new OptimizingPubPackageMapInfo(
199 packageMaps[folder.path], dependencies, filteredModificationTimes);
200 }
201 return new OptimizingPubPackageMapInfo(
202 packageMap, dependencies, filteredModificationTimes);
203 } 184 }
204 185
205 noSuchMethod(Invocation invocation) { 186 noSuchMethod(Invocation invocation) {
206 // No other methods should be called. 187 // No other methods should be called.
207 return super.noSuchMethod(invocation); 188 return super.noSuchMethod(invocation);
208 } 189 }
209 } 190 }
210 191
211 class MockParameterElement extends TypedMock implements ParameterElement { 192 class MockParameterElement extends TypedMock implements ParameterElement {
212 final ElementKind kind = ElementKind.PARAMETER; 193 final ElementKind kind = ElementKind.PARAMETER;
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 } 461 }
481 return mismatchDescription; 462 return mismatchDescription;
482 } 463 }
483 464
484 @override 465 @override
485 bool matches(item, Map matchState) { 466 bool matches(item, Map matchState) {
486 Response response = item; 467 Response response = item;
487 return response != null && response.id == _id && response.error == null; 468 return response != null && response.id == _id && response.error == null;
488 } 469 }
489 } 470 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698