| Index: pkg/analyzer/test/src/task/dart_work_manager_test.dart
|
| diff --git a/pkg/analyzer/test/src/task/dart_work_manager_test.dart b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
|
| index 98720115e4434e6465df79ff8abf2e6b6ec20903..83168b23fe9a54a2e889d3bd07db1d0b7e8d275b 100644
|
| --- a/pkg/analyzer/test/src/task/dart_work_manager_test.dart
|
| +++ b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
|
| @@ -132,6 +132,86 @@ class DartWorkManagerTest {
|
| expect_librarySourceQueue([source1, source3]);
|
| }
|
|
|
| + void test_applyChange_updatePartsLibraries_changeLibrary() {
|
| + Source part1 = new TestSource('part1.dart');
|
| + Source part2 = new TestSource('part2.dart');
|
| + Source part3 = new TestSource('part3.dart');
|
| + Source library1 = new TestSource('library1.dart');
|
| + Source library2 = new TestSource('library2.dart');
|
| + manager.partLibrariesMap[part1] = [library1, library2];
|
| + manager.partLibrariesMap[part2] = [library2];
|
| + manager.partLibrariesMap[part3] = [library1];
|
| + manager.libraryPartsMap[library1] = [part1, part3];
|
| + manager.libraryPartsMap[library2] = [part1, part2];
|
| + // change library1
|
| + manager.applyChange([], [library1], []);
|
| + expect(manager.partLibrariesMap[part1], unorderedEquals([library2]));
|
| + expect(manager.partLibrariesMap[part2], unorderedEquals([library2]));
|
| + expect(manager.partLibrariesMap[part3], unorderedEquals([]));
|
| + expect(manager.libraryPartsMap[library1], isNull);
|
| + expect(manager.libraryPartsMap[library2], [part1, part2]);
|
| + }
|
| +
|
| + void test_applyChange_updatePartsLibraries_changePart() {
|
| + Source part1 = new TestSource('part1.dart');
|
| + Source part2 = new TestSource('part2.dart');
|
| + Source part3 = new TestSource('part3.dart');
|
| + Source library1 = new TestSource('library1.dart');
|
| + Source library2 = new TestSource('library2.dart');
|
| + manager.partLibrariesMap[part1] = [library1, library2];
|
| + manager.partLibrariesMap[part2] = [library2];
|
| + manager.partLibrariesMap[part3] = [library1];
|
| + manager.libraryPartsMap[library1] = [part1, part3];
|
| + manager.libraryPartsMap[library2] = [part1, part2];
|
| + // change part1
|
| + manager.applyChange([], [part1], []);
|
| + expect(manager.partLibrariesMap[part1], isNull);
|
| + expect(manager.partLibrariesMap[part2], unorderedEquals([library2]));
|
| + expect(manager.partLibrariesMap[part3], unorderedEquals([library1]));
|
| + expect(manager.libraryPartsMap[library1], [part3]);
|
| + expect(manager.libraryPartsMap[library2], [part2]);
|
| + }
|
| +
|
| + void test_applyChange_updatePartsLibraries_removeLibrary() {
|
| + Source part1 = new TestSource('part1.dart');
|
| + Source part2 = new TestSource('part2.dart');
|
| + Source part3 = new TestSource('part3.dart');
|
| + Source library1 = new TestSource('library1.dart');
|
| + Source library2 = new TestSource('library2.dart');
|
| + manager.partLibrariesMap[part1] = [library1, library2];
|
| + manager.partLibrariesMap[part2] = [library2];
|
| + manager.partLibrariesMap[part3] = [library1];
|
| + manager.libraryPartsMap[library1] = [part1, part3];
|
| + manager.libraryPartsMap[library2] = [part1, part2];
|
| + // remove library1
|
| + manager.applyChange([], [], [library1]);
|
| + expect(manager.partLibrariesMap[part1], unorderedEquals([library2]));
|
| + expect(manager.partLibrariesMap[part2], unorderedEquals([library2]));
|
| + expect(manager.partLibrariesMap[part3], unorderedEquals([]));
|
| + expect(manager.libraryPartsMap[library1], isNull);
|
| + expect(manager.libraryPartsMap[library2], [part1, part2]);
|
| + }
|
| +
|
| + void test_applyChange_updatePartsLibraries_removePart() {
|
| + Source part1 = new TestSource('part1.dart');
|
| + Source part2 = new TestSource('part2.dart');
|
| + Source part3 = new TestSource('part3.dart');
|
| + Source library1 = new TestSource('library1.dart');
|
| + Source library2 = new TestSource('library2.dart');
|
| + manager.partLibrariesMap[part1] = [library1, library2];
|
| + manager.partLibrariesMap[part2] = [library2];
|
| + manager.partLibrariesMap[part3] = [library1];
|
| + manager.libraryPartsMap[library1] = [part1, part3];
|
| + manager.libraryPartsMap[library2] = [part1, part2];
|
| + // remove part1
|
| + manager.applyChange([], [], [part1]);
|
| + expect(manager.partLibrariesMap[part1], isNull);
|
| + expect(manager.partLibrariesMap[part2], unorderedEquals([library2]));
|
| + expect(manager.partLibrariesMap[part3], unorderedEquals([library1]));
|
| + expect(manager.libraryPartsMap[library1], [part3]);
|
| + expect(manager.libraryPartsMap[library2], [part2]);
|
| + }
|
| +
|
| void test_applyPriorityTargets_library() {
|
| entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
|
| entry2.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
|
| @@ -186,6 +266,24 @@ class DartWorkManagerTest {
|
| expect(errorInfo.lineInfo, lineInfo);
|
| }
|
|
|
| + void test_getLibrariesContainingPart() {
|
| + Source part1 = new TestSource('part1.dart');
|
| + Source part2 = new TestSource('part2.dart');
|
| + Source part3 = new TestSource('part3.dart');
|
| + Source library1 = new TestSource('library1.dart');
|
| + Source library2 = new TestSource('library2.dart');
|
| + manager.partLibrariesMap[part1] = [library1, library2];
|
| + manager.partLibrariesMap[part2] = [library2];
|
| + manager.libraryPartsMap[library1] = [part1];
|
| + manager.libraryPartsMap[library2] = [part1, part2];
|
| + // getLibrariesContainingPart
|
| + expect(manager.getLibrariesContainingPart(part1),
|
| + unorderedEquals([library1, library2]));
|
| + expect(
|
| + manager.getLibrariesContainingPart(part2), unorderedEquals([library2]));
|
| + expect(manager.getLibrariesContainingPart(part3), isEmpty);
|
| + }
|
| +
|
| void test_getNextResult_hasLibraries_firstIsError() {
|
| entry1.setErrorState(caughtException, [LIBRARY_ERRORS_READY]);
|
| manager.librarySourceQueue.addAll([source1, source2]);
|
| @@ -346,6 +444,28 @@ class DartWorkManagerTest {
|
| expect(notice.lineInfo, lineInfo);
|
| }
|
|
|
| + void test_resultsComputed_includedParts() {
|
| + Source part1 = new TestSource('part1.dart');
|
| + Source part2 = new TestSource('part2.dart');
|
| + Source part3 = new TestSource('part3.dart');
|
| + Source library1 = new TestSource('library1.dart');
|
| + Source library2 = new TestSource('library2.dart');
|
| + // library1 parts
|
| + manager.resultsComputed(library1, {INCLUDED_PARTS: [part1, part2]});
|
| + expect(manager.partLibrariesMap[part1], [library1]);
|
| + expect(manager.partLibrariesMap[part2], [library1]);
|
| + expect(manager.partLibrariesMap[part3], isNull);
|
| + expect(manager.libraryPartsMap[library1], [part1, part2]);
|
| + expect(manager.libraryPartsMap[library2], isNull);
|
| + // library2 parts
|
| + manager.resultsComputed(library2, {INCLUDED_PARTS: [part2, part3]});
|
| + expect(manager.partLibrariesMap[part1], [library1]);
|
| + expect(manager.partLibrariesMap[part2], [library1, library2]);
|
| + expect(manager.partLibrariesMap[part3], [library2]);
|
| + expect(manager.libraryPartsMap[library1], [part1, part2]);
|
| + expect(manager.libraryPartsMap[library2], [part2, part3]);
|
| + }
|
| +
|
| void test_resultsComputed_noSourceKind() {
|
| manager.unknownSourceQueue.addAll([source1, source2]);
|
| manager.resultsComputed(source1, {});
|
|
|