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

Unified Diff: pkg/analysis_server/test/services/search/search_engine_test.dart

Issue 2962023002: Add SearchEngine.membersOfSubtypes(). (Closed)
Patch Set: Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/test/services/search/search_engine_test.dart
diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
index 228a9069d8c32e34446169062bd047807e81382c..04ef87313b65e312ada041bc66c36dd2b33d4ee9 100644
--- a/pkg/analysis_server/test/services/search/search_engine_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
@@ -46,6 +46,123 @@ class SearchEngineImpl2Test {
scheduler.start();
}
+ test_membersOfSubtypes_hasMembers() async {
+ var a = _p('/test/a.dart');
+ var b = _p('/test/b.dart');
+ var c = _p('/test/c.dart');
+
+ provider.newFile(
+ a,
+ '''
+class A {
+ void a() {}
+ void b() {}
+ void c() {}
+}
+''');
+ provider.newFile(
+ b,
+ '''
+import 'a.dart';
+class B extends A {
+ void a() {}
+}
+''');
+ provider.newFile(
+ c,
+ '''
+import 'a.dart';
+class C extends A {
+ void b() {}
+}
+''');
+
+ var driver1 = _newDriver();
+ var driver2 = _newDriver();
+
+ driver1.addFile(a);
+ driver2.addFile(b);
+ driver2.addFile(c);
+ await scheduler.waitForIdle();
+
+ var resultA = await driver1.getResult(a);
+ ClassElement elementA = resultA.unit.element.types[0];
+
+ var searchEngine = new SearchEngineImpl([driver1, driver2]);
+ Set<String> members = await searchEngine.membersOfSubtypes(elementA);
+ expect(members, unorderedEquals(['a', 'b']));
+ }
+
+ test_membersOfSubtypes_noMembers() async {
+ var a = _p('/test/a.dart');
+ var b = _p('/test/b.dart');
+
+ provider.newFile(
+ a,
+ '''
+class A {
+ void a() {}
+ void b() {}
+ void c() {}
+}
+''');
+ provider.newFile(
+ b,
+ '''
+import 'a.dart';
+class B extends A {}
+''');
+
+ var driver = _newDriver();
+
+ driver.addFile(a);
+ driver.addFile(b);
+ await scheduler.waitForIdle();
+
+ var resultA = await driver.getResult(a);
+ ClassElement elementA = resultA.unit.element.types[0];
+
+ var searchEngine = new SearchEngineImpl([driver]);
+ Set<String> members = await searchEngine.membersOfSubtypes(elementA);
+ expect(members, isEmpty);
+ }
+
+ test_membersOfSubtypes_noSubtypes() async {
+ var a = _p('/test/a.dart');
+ var b = _p('/test/b.dart');
+
+ provider.newFile(
+ a,
+ '''
+class A {
+ void a() {}
+ void b() {}
+ void c() {}
+}
+''');
+ provider.newFile(
+ b,
+ '''
+import 'a.dart';
+class B {
+ void a() {}
+}
+''');
+
+ var driver = _newDriver();
+
+ driver.addFile(a);
+ driver.addFile(b);
+ await scheduler.waitForIdle();
+
+ var resultA = await driver.getResult(a);
+ ClassElement elementA = resultA.unit.element.types[0];
+
+ var searchEngine = new SearchEngineImpl([driver]);
+ Set<String> members = await searchEngine.membersOfSubtypes(elementA);
+ expect(members, isNull);
+ }
+
test_searchAllSubtypes() async {
var p = _p('/test.dart');

Powered by Google App Engine
This is Rietveld 408576698