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

Side by Side Diff: pkg/analyzer/test/src/task/driver_test.dart

Issue 1555073003: Replace ResultProvider with 'aboutToComputeResult'. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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
« no previous file with comments | « pkg/analyzer/test/generated/engine_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 analyzer.test.src.task.driver_test; 5 library analyzer.test.src.task.driver_test;
6 6
7 import 'package:analyzer/src/context/cache.dart'; 7 import 'package:analyzer/src/context/cache.dart';
8 import 'package:analyzer/src/generated/engine.dart'; 8 import 'package:analyzer/src/generated/engine.dart';
9 import 'package:analyzer/src/generated/java_engine.dart'; 9 import 'package:analyzer/src/generated/java_engine.dart';
10 import 'package:analyzer/src/task/driver.dart'; 10 import 'package:analyzer/src/task/driver.dart';
(...skipping 18 matching lines...) Expand all
29 29
30 class AbstractDriverTest { 30 class AbstractDriverTest {
31 TaskManager taskManager = new TaskManager(); 31 TaskManager taskManager = new TaskManager();
32 List<WorkManager> workManagers = <WorkManager>[]; 32 List<WorkManager> workManagers = <WorkManager>[];
33 InternalAnalysisContext context = new _InternalAnalysisContextMock(); 33 InternalAnalysisContext context = new _InternalAnalysisContextMock();
34 AnalysisDriver analysisDriver; 34 AnalysisDriver analysisDriver;
35 35
36 void setUp() { 36 void setUp() {
37 context = new _InternalAnalysisContextMock(); 37 context = new _InternalAnalysisContextMock();
38 analysisDriver = new AnalysisDriver(taskManager, workManagers, context); 38 analysisDriver = new AnalysisDriver(taskManager, workManagers, context);
39 when(context.aboutToComputeResult(anyObject, anyObject)).thenReturn(false);
39 } 40 }
40 } 41 }
41 42
42 @reflectiveTest 43 @reflectiveTest
43 class AnalysisDriverTest extends AbstractDriverTest { 44 class AnalysisDriverTest extends AbstractDriverTest {
44 WorkManager workManager1 = new _WorkManagerMock(); 45 WorkManager workManager1 = new _WorkManagerMock();
45 WorkManager workManager2 = new _WorkManagerMock(); 46 WorkManager workManager2 = new _WorkManagerMock();
46 47
47 AnalysisTarget target1 = new TestSource('/1.dart'); 48 AnalysisTarget target1 = new TestSource('/1.dart');
48 AnalysisTarget target2 = new TestSource('/2.dart'); 49 AnalysisTarget target2 = new TestSource('/2.dart');
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 } 338 }
338 339
339 test_performAnalysisTask_onResultComputed() { 340 test_performAnalysisTask_onResultComputed() {
340 AnalysisTarget target = new TestSource(); 341 AnalysisTarget target = new TestSource();
341 ResultDescriptor result = new ResultDescriptor('result', null); 342 ResultDescriptor result = new ResultDescriptor('result', null);
342 TestAnalysisTask task; 343 TestAnalysisTask task;
343 TaskDescriptor descriptor = new TaskDescriptor( 344 TaskDescriptor descriptor = new TaskDescriptor(
344 'task', (context, target) => task, (target) => {}, [result]); 345 'task', (context, target) => task, (target) => {}, [result]);
345 task = new TestAnalysisTask(context, target, 346 task = new TestAnalysisTask(context, target,
346 descriptor: descriptor, value: 42); 347 descriptor: descriptor, value: 42);
347 WorkItem item = 348 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
348 new WorkItem(context, null, target, descriptor, null, 0, null);
349 349
350 bool streamNotified = false; 350 bool streamNotified = false;
351 analysisDriver.onResultComputed(result).listen((event) { 351 analysisDriver.onResultComputed(result).listen((event) {
352 streamNotified = true; 352 streamNotified = true;
353 expect(event.context, same(context)); 353 expect(event.context, same(context));
354 expect(event.target, same(target)); 354 expect(event.target, same(target));
355 expect(event.descriptor, same(result)); 355 expect(event.descriptor, same(result));
356 expect(event.value, 42); 356 expect(event.value, 42);
357 }); 357 });
358 analysisDriver.performWorkItem(item); 358 analysisDriver.performWorkItem(item);
359 expect(streamNotified, isTrue); 359 expect(streamNotified, isTrue);
360 } 360 }
361 361
362 test_performWorkItem_exceptionInTask() { 362 test_performWorkItem_exceptionInTask() {
363 AnalysisTarget target = new TestSource(); 363 AnalysisTarget target = new TestSource();
364 ResultDescriptor result = new ResultDescriptor('result', null); 364 ResultDescriptor result = new ResultDescriptor('result', null);
365 CaughtException exception = 365 CaughtException exception =
366 new CaughtException(new AnalysisException(), null); 366 new CaughtException(new AnalysisException(), null);
367 TestAnalysisTask task; 367 TestAnalysisTask task;
368 TaskDescriptor descriptor = new TaskDescriptor( 368 TaskDescriptor descriptor = new TaskDescriptor(
369 'task', (context, target) => task, (target) => {}, [result]); 369 'task', (context, target) => task, (target) => {}, [result]);
370 task = new TestAnalysisTask(context, target, 370 task = new TestAnalysisTask(context, target,
371 descriptor: descriptor, exception: exception); 371 descriptor: descriptor, exception: exception);
372 WorkItem item = 372 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
373 new WorkItem(context, null, target, descriptor, null, 0, null);
374 373
375 analysisDriver.performWorkItem(item); 374 analysisDriver.performWorkItem(item);
376 CacheEntry targetEntry = context.getCacheEntry(item.target); 375 CacheEntry targetEntry = context.getCacheEntry(item.target);
377 expect(targetEntry.exception, exception); 376 expect(targetEntry.exception, exception);
378 expect(targetEntry.getState(result), CacheState.ERROR); 377 expect(targetEntry.getState(result), CacheState.ERROR);
379 } 378 }
380 379
381 test_performWorkItem_noException() { 380 test_performWorkItem_noException() {
382 AnalysisTarget target = new TestSource(); 381 AnalysisTarget target = new TestSource();
383 ResultDescriptor result = new ResultDescriptor('result', null); 382 ResultDescriptor result = new ResultDescriptor('result', null);
384 TestAnalysisTask task; 383 TestAnalysisTask task;
385 TaskDescriptor descriptor = new TaskDescriptor( 384 TaskDescriptor descriptor = new TaskDescriptor(
386 'task', (context, target) => task, (target) => {}, [result]); 385 'task', (context, target) => task, (target) => {}, [result]);
387 task = new TestAnalysisTask(context, target, descriptor: descriptor); 386 task = new TestAnalysisTask(context, target, descriptor: descriptor);
388 WorkItem item = 387 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
389 new WorkItem(context, null, target, descriptor, null, 0, null);
390 388
391 analysisDriver.performWorkItem(item); 389 analysisDriver.performWorkItem(item);
392 CacheEntry targetEntry = context.getCacheEntry(item.target); 390 CacheEntry targetEntry = context.getCacheEntry(item.target);
393 expect(targetEntry.exception, isNull); 391 expect(targetEntry.exception, isNull);
394 expect(targetEntry.getState(result), CacheState.VALID); 392 expect(targetEntry.getState(result), CacheState.VALID);
395 } 393 }
396 394
397 test_performWorkItem_preExistingException() { 395 test_performWorkItem_preExistingException() {
398 AnalysisTarget target = new TestSource(); 396 AnalysisTarget target = new TestSource();
399 ResultDescriptor result = new ResultDescriptor('result', null); 397 ResultDescriptor result = new ResultDescriptor('result', null);
400 TaskDescriptor descriptor = new TaskDescriptor( 398 TaskDescriptor descriptor = new TaskDescriptor(
401 'task', 399 'task',
402 (context, target) => new TestAnalysisTask(context, target), 400 (context, target) => new TestAnalysisTask(context, target),
403 (target) => {}, 401 (target) => {},
404 [result]); 402 [result]);
405 CaughtException exception = 403 CaughtException exception =
406 new CaughtException(new AnalysisException(), null); 404 new CaughtException(new AnalysisException(), null);
407 WorkItem item = 405 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
408 new WorkItem(context, null, target, descriptor, null, 0, null);
409 item.exception = exception; 406 item.exception = exception;
410 407
411 analysisDriver.performWorkItem(item); 408 analysisDriver.performWorkItem(item);
412 CacheEntry targetEntry = context.getCacheEntry(item.target); 409 CacheEntry targetEntry = context.getCacheEntry(item.target);
413 expect(targetEntry.exception, exception); 410 expect(targetEntry.exception, exception);
414 expect(targetEntry.getState(result), CacheState.ERROR); 411 expect(targetEntry.getState(result), CacheState.ERROR);
415 } 412 }
416 413
417 test_reset() { 414 test_reset() {
418 ResultDescriptor inputResult = new ResultDescriptor('input', null); 415 ResultDescriptor inputResult = new ResultDescriptor('input', null);
419 TaskDescriptor descriptor = new TaskDescriptor( 416 TaskDescriptor descriptor = new TaskDescriptor(
420 'task', 417 'task',
421 (context, target) => new TestAnalysisTask(context, target), 418 (context, target) => new TestAnalysisTask(context, target),
422 (target) => {'one': inputResult.of(target)}, 419 (target) => {'one': inputResult.of(target)},
423 [new ResultDescriptor('output', null)]); 420 [new ResultDescriptor('output', null)]);
424 analysisDriver.currentWorkOrder = new WorkOrder( 421 analysisDriver.currentWorkOrder = new WorkOrder(
425 taskManager, new WorkItem(null, null, null, descriptor, null, 0, null)); 422 taskManager, new WorkItem(null, null, descriptor, null, 0, null));
426 423
427 analysisDriver.reset(); 424 analysisDriver.reset();
428 expect(analysisDriver.currentWorkOrder, isNull); 425 expect(analysisDriver.currentWorkOrder, isNull);
429 } 426 }
430 427
431 void _configureDescriptors12() { 428 void _configureDescriptors12() {
432 descriptor1 = new TaskDescriptor( 429 descriptor1 = new TaskDescriptor(
433 'task1', 430 'task1',
434 (context, target) => 431 (context, target) =>
435 new TestAnalysisTask(context, target, descriptor: descriptor1), 432 new TestAnalysisTask(context, target, descriptor: descriptor1),
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 610
614 @reflectiveTest 611 @reflectiveTest
615 class WorkItemTest extends AbstractDriverTest { 612 class WorkItemTest extends AbstractDriverTest {
616 test_buildTask_complete() { 613 test_buildTask_complete() {
617 AnalysisTarget target = new TestSource(); 614 AnalysisTarget target = new TestSource();
618 TaskDescriptor descriptor = new TaskDescriptor( 615 TaskDescriptor descriptor = new TaskDescriptor(
619 'task', 616 'task',
620 (context, target) => new TestAnalysisTask(context, target), 617 (context, target) => new TestAnalysisTask(context, target),
621 (target) => {}, 618 (target) => {},
622 [new ResultDescriptor('output', null)]); 619 [new ResultDescriptor('output', null)]);
623 WorkItem item = 620 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
624 new WorkItem(context, null, target, descriptor, null, 0, null);
625 AnalysisTask task = item.buildTask(); 621 AnalysisTask task = item.buildTask();
626 expect(task, isNotNull); 622 expect(task, isNotNull);
627 } 623 }
628 624
629 test_buildTask_incomplete() { 625 test_buildTask_incomplete() {
630 AnalysisTarget target = new TestSource(); 626 AnalysisTarget target = new TestSource();
631 ResultDescriptor inputResult = new ResultDescriptor('input', null); 627 ResultDescriptor inputResult = new ResultDescriptor('input', null);
632 List<ResultDescriptor> outputResults = <ResultDescriptor>[ 628 List<ResultDescriptor> outputResults = <ResultDescriptor>[
633 new ResultDescriptor('output', null) 629 new ResultDescriptor('output', null)
634 ]; 630 ];
635 TaskDescriptor descriptor = new TaskDescriptor( 631 TaskDescriptor descriptor = new TaskDescriptor(
636 'task', 632 'task',
637 (context, target) => 633 (context, target) =>
638 new TestAnalysisTask(context, target, results: outputResults), 634 new TestAnalysisTask(context, target, results: outputResults),
639 (target) => {'one': inputResult.of(target)}, 635 (target) => {'one': inputResult.of(target)},
640 outputResults); 636 outputResults);
641 WorkItem item = 637 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
642 new WorkItem(context, null, target, descriptor, null, 0, null);
643 expect(() => item.buildTask(), throwsStateError); 638 expect(() => item.buildTask(), throwsStateError);
644 } 639 }
645 640
646 test_create() { 641 test_create() {
647 AnalysisTarget target = new TestSource(); 642 AnalysisTarget target = new TestSource();
648 TaskDescriptor descriptor = new TaskDescriptor( 643 TaskDescriptor descriptor = new TaskDescriptor(
649 'task', null, (target) => {}, [new ResultDescriptor('result', null)]); 644 'task', null, (target) => {}, [new ResultDescriptor('result', null)]);
650 WorkItem item = 645 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
651 new WorkItem(context, null, target, descriptor, null, 0, null);
652 expect(item, isNotNull); 646 expect(item, isNotNull);
653 expect(item.context, context); 647 expect(item.context, context);
654 expect(item.descriptor, descriptor); 648 expect(item.descriptor, descriptor);
655 expect(item.target, target); 649 expect(item.target, target);
656 } 650 }
657 651
658 test_gatherInputs_complete() { 652 test_gatherInputs_complete() {
659 AnalysisTarget target = new TestSource(); 653 AnalysisTarget target = new TestSource();
660 TaskDescriptor descriptor = new TaskDescriptor( 654 TaskDescriptor descriptor = new TaskDescriptor(
661 'task', 655 'task',
662 (context, target) => new TestAnalysisTask(context, target), 656 (context, target) => new TestAnalysisTask(context, target),
663 (target) => {}, 657 (target) => {},
664 [new ResultDescriptor('output', null)]); 658 [new ResultDescriptor('output', null)]);
665 WorkItem item = 659 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
666 new WorkItem(context, null, target, descriptor, null, 0, null);
667 WorkItem result = item.gatherInputs(taskManager, []); 660 WorkItem result = item.gatherInputs(taskManager, []);
668 expect(result, isNull); 661 expect(result, isNull);
669 expect(item.exception, isNull); 662 expect(item.exception, isNull);
670 } 663 }
671 664
672 test_gatherInputs_incomplete() { 665 test_gatherInputs_incomplete() {
673 AnalysisTarget target = new TestSource(); 666 AnalysisTarget target = new TestSource();
674 ResultDescriptor resultA = new ResultDescriptor('resultA', null); 667 ResultDescriptor resultA = new ResultDescriptor('resultA', null);
675 ResultDescriptor resultB = new ResultDescriptor('resultB', null); 668 ResultDescriptor resultB = new ResultDescriptor('resultB', null);
676 // prepare tasks 669 // prepare tasks
677 TaskDescriptor task1 = new TaskDescriptor( 670 TaskDescriptor task1 = new TaskDescriptor(
678 'task', 671 'task',
679 (context, target) => 672 (context, target) =>
680 new TestAnalysisTask(context, target, results: [resultA]), 673 new TestAnalysisTask(context, target, results: [resultA]),
681 (target) => {}, 674 (target) => {},
682 [resultA]); 675 [resultA]);
683 TaskDescriptor task2 = new TaskDescriptor( 676 TaskDescriptor task2 = new TaskDescriptor(
684 'task', 677 'task',
685 (context, target) => new TestAnalysisTask(context, target), 678 (context, target) => new TestAnalysisTask(context, target),
686 (target) => {'one': resultA.of(target)}, 679 (target) => {'one': resultA.of(target)},
687 [resultB]); 680 [resultB]);
688 taskManager.addTaskDescriptor(task1); 681 taskManager.addTaskDescriptor(task1);
689 taskManager.addTaskDescriptor(task2); 682 taskManager.addTaskDescriptor(task2);
690 // gather inputs 683 // gather inputs
691 WorkItem item = new WorkItem(context, null, target, task2, null, 0, null); 684 WorkItem item = new WorkItem(context, target, task2, null, 0, null);
692 WorkItem inputItem = item.gatherInputs(taskManager, []); 685 WorkItem inputItem = item.gatherInputs(taskManager, []);
693 expect(inputItem, isNotNull); 686 expect(inputItem, isNotNull);
694 } 687 }
695 688
696 test_gatherInputs_invalid() { 689 test_gatherInputs_invalid() {
697 AnalysisTarget target = new TestSource(); 690 AnalysisTarget target = new TestSource();
698 ResultDescriptor inputResult = new ResultDescriptor('input', null); 691 ResultDescriptor inputResult = new ResultDescriptor('input', null);
699 TaskDescriptor descriptor = new TaskDescriptor( 692 TaskDescriptor descriptor = new TaskDescriptor(
700 'task', 693 'task',
701 (context, target) => new TestAnalysisTask(context, target), 694 (context, target) => new TestAnalysisTask(context, target),
702 (target) => {'one': inputResult.of(target)}, 695 (target) => {'one': inputResult.of(target)},
703 [new ResultDescriptor('output', null)]); 696 [new ResultDescriptor('output', null)]);
704 WorkItem item = 697 WorkItem item = new WorkItem(context, target, descriptor, null, 0, null);
705 new WorkItem(context, null, target, descriptor, null, 0, null);
706 WorkItem result = item.gatherInputs(taskManager, []); 698 WorkItem result = item.gatherInputs(taskManager, []);
707 expect(result, isNull); 699 expect(result, isNull);
708 expect(item.exception, isNotNull); 700 expect(item.exception, isNotNull);
709 } 701 }
710 702
711 test_gatherInputs_useResultProvider_hasResult() { 703 test_gatherInputs_aboutToComputeResult_hasResult() {
712 AnalysisTarget target = new TestSource(); 704 AnalysisTarget target = new TestSource();
713 ResultDescriptor resultA = new ResultDescriptor('resultA', null); 705 ResultDescriptor resultA = new ResultDescriptor('resultA', null);
714 ResultDescriptor resultB = new ResultDescriptor('resultB', null); 706 ResultDescriptor resultB = new ResultDescriptor('resultB', null);
715 // prepare tasks 707 // prepare tasks
716 TaskDescriptor task1 = new TaskDescriptor( 708 TaskDescriptor task1 = new TaskDescriptor(
717 'task', 709 'task',
718 (context, target) => 710 (context, target) =>
719 new TestAnalysisTask(context, target, results: [resultA]), 711 new TestAnalysisTask(context, target, results: [resultA]),
720 (target) => {}, 712 (target) => {},
721 [resultA]); 713 [resultA]);
722 TaskDescriptor task2 = new TaskDescriptor( 714 TaskDescriptor task2 = new TaskDescriptor(
723 'task', 715 'task',
724 (context, target) => new TestAnalysisTask(context, target), 716 (context, target) => new TestAnalysisTask(context, target),
725 (target) => {'one': resultA.of(target)}, 717 (target) => {'one': resultA.of(target)},
726 [resultB]); 718 [resultB]);
727 taskManager.addTaskDescriptor(task1); 719 taskManager.addTaskDescriptor(task1);
728 taskManager.addTaskDescriptor(task2); 720 taskManager.addTaskDescriptor(task2);
729 // configure ResultProvider 721 // configure mocks
730 ResultProvider resultProvider = new _ResultProviderMock(); 722 when(context.aboutToComputeResult(anyObject, resultA)).thenReturn(true);
731 when(resultProvider.provideResult(context, anyObject, resultA))
732 .thenReturn(true);
733 // gather inputs 723 // gather inputs
734 WorkItem item = 724 WorkItem item = new WorkItem(context, target, task2, null, 0, null);
735 new WorkItem(context, resultProvider, target, task2, null, 0, null);
736 WorkItem inputItem = item.gatherInputs(taskManager, []); 725 WorkItem inputItem = item.gatherInputs(taskManager, []);
737 expect(inputItem, isNull); 726 expect(inputItem, isNull);
738 } 727 }
739 728
740 test_gatherInputs_useResultProvider_noResult() { 729 test_gatherInputs_aboutToComputeResult_noResult() {
741 AnalysisTarget target = new TestSource(); 730 AnalysisTarget target = new TestSource();
742 ResultDescriptor resultA = new ResultDescriptor('resultA', null); 731 ResultDescriptor resultA = new ResultDescriptor('resultA', null);
743 ResultDescriptor resultB = new ResultDescriptor('resultB', null); 732 ResultDescriptor resultB = new ResultDescriptor('resultB', null);
744 // prepare tasks 733 // prepare tasks
745 TaskDescriptor task1 = new TaskDescriptor( 734 TaskDescriptor task1 = new TaskDescriptor(
746 'task', 735 'task',
747 (context, target) => 736 (context, target) =>
748 new TestAnalysisTask(context, target, results: [resultA]), 737 new TestAnalysisTask(context, target, results: [resultA]),
749 (target) => {}, 738 (target) => {},
750 [resultA]); 739 [resultA]);
751 TaskDescriptor task2 = new TaskDescriptor( 740 TaskDescriptor task2 = new TaskDescriptor(
752 'task', 741 'task',
753 (context, target) => new TestAnalysisTask(context, target), 742 (context, target) => new TestAnalysisTask(context, target),
754 (target) => {'one': resultA.of(target)}, 743 (target) => {'one': resultA.of(target)},
755 [resultB]); 744 [resultB]);
756 taskManager.addTaskDescriptor(task1); 745 taskManager.addTaskDescriptor(task1);
757 taskManager.addTaskDescriptor(task2); 746 taskManager.addTaskDescriptor(task2);
758 // configure ResultProvider 747 // configure ResultProvider
759 ResultProvider resultProvider = new _ResultProviderMock(); 748 // configure mocks
760 when(resultProvider.provideResult(anyObject, anyObject, anyObject)) 749 when(context.aboutToComputeResult(anyObject, resultA)).thenReturn(false);
761 .thenReturn(false);
762 // gather inputs 750 // gather inputs
763 WorkItem item = 751 WorkItem item = new WorkItem(context, target, task2, null, 0, null);
764 new WorkItem(context, resultProvider, target, task2, null, 0, null);
765 WorkItem inputItem = item.gatherInputs(taskManager, []); 752 WorkItem inputItem = item.gatherInputs(taskManager, []);
766 expect(inputItem, isNotNull); 753 expect(inputItem, isNotNull);
767 expect(inputItem.target, target); 754 expect(inputItem.target, target);
768 expect(inputItem.descriptor, task1); 755 expect(inputItem.descriptor, task1);
769 } 756 }
770 } 757 }
771 758
772 @reflectiveTest 759 @reflectiveTest
773 class WorkOrderTest extends EngineTestCase { 760 class WorkOrderTest extends EngineTestCase {
774 test_create() { 761 test_create() {
775 TaskManager manager = new TaskManager(); 762 TaskManager manager = new TaskManager();
776 TaskDescriptor descriptor = new TaskDescriptor( 763 TaskDescriptor descriptor = new TaskDescriptor(
777 'task', null, (_) => {}, [new ResultDescriptor('result', null)]); 764 'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
778 WorkOrder order = new WorkOrder( 765 WorkOrder order = new WorkOrder(
779 manager, new WorkItem(null, null, null, descriptor, null, 0, null)); 766 manager, new WorkItem(null, null, descriptor, null, 0, null));
780 expect(order, isNotNull); 767 expect(order, isNotNull);
781 expect(order.currentItems, isNull); 768 expect(order.currentItems, isNull);
782 expect(order.current, isNull); 769 expect(order.current, isNull);
783 } 770 }
784 771
785 test_moveNext() { 772 test_moveNext() {
786 TaskManager manager = new TaskManager(); 773 TaskManager manager = new TaskManager();
787 TaskDescriptor descriptor = new TaskDescriptor( 774 TaskDescriptor descriptor = new TaskDescriptor(
788 'task', null, (_) => {}, [new ResultDescriptor('result', null)]); 775 'task', null, (_) => {}, [new ResultDescriptor('result', null)]);
789 WorkItem workItem = 776 WorkItem workItem = new WorkItem(null, null, descriptor, null, 0, null);
790 new WorkItem(null, null, null, descriptor, null, 0, null);
791 WorkOrder order = new WorkOrder(manager, workItem); 777 WorkOrder order = new WorkOrder(manager, workItem);
792 // "item" has no child items 778 // "item" has no child items
793 expect(order.moveNext(), isTrue); 779 expect(order.moveNext(), isTrue);
794 expect(order.current, workItem); 780 expect(order.current, workItem);
795 // done 781 // done
796 expect(order.moveNext(), isFalse); 782 expect(order.moveNext(), isFalse);
797 expect(order.current, isNull); 783 expect(order.current, isNull);
798 } 784 }
799 } 785 }
800 786
(...skipping 19 matching lines...) Expand all
820 CacheEntry getCacheEntry(AnalysisTarget target) { 806 CacheEntry getCacheEntry(AnalysisTarget target) {
821 CacheEntry entry = analysisCache.get(target); 807 CacheEntry entry = analysisCache.get(target);
822 if (entry == null) { 808 if (entry == null) {
823 entry = new CacheEntry(target); 809 entry = new CacheEntry(target);
824 analysisCache.put(entry); 810 analysisCache.put(entry);
825 } 811 }
826 return entry; 812 return entry;
827 } 813 }
828 } 814 }
829 815
830 class _ResultProviderMock extends TypedMock implements ResultProvider {}
831
832 /** 816 /**
833 * Concrete class for testing [CycleAwareDependencyWalker] behavior. 817 * Concrete class for testing [CycleAwareDependencyWalker] behavior.
834 */ 818 */
835 class _TestCycleAwareDependencyWalker extends CycleAwareDependencyWalker<int> { 819 class _TestCycleAwareDependencyWalker extends CycleAwareDependencyWalker<int> {
836 final Map<int, List<int>> graph; 820 final Map<int, List<int>> graph;
837 821
838 Set<int> evaluatedNodes = new Set<int>(); 822 Set<int> evaluatedNodes = new Set<int>();
839 823
840 _TestCycleAwareDependencyWalker(this.graph, int startingNode) 824 _TestCycleAwareDependencyWalker(this.graph, int startingNode)
841 : super(startingNode); 825 : super(startingNode);
842 826
843 @override 827 @override
844 int getNextInput(int node, List<int> skipInputs) { 828 int getNextInput(int node, List<int> skipInputs) {
845 for (int dependency in graph[node]) { 829 for (int dependency in graph[node]) {
846 if (!skipInputs.contains(dependency) && 830 if (!skipInputs.contains(dependency) &&
847 !evaluatedNodes.contains(dependency)) { 831 !evaluatedNodes.contains(dependency)) {
848 return dependency; 832 return dependency;
849 } 833 }
850 } 834 }
851 return null; 835 return null;
852 } 836 }
853 } 837 }
854 838
855 class _WorkManagerMock extends TypedMock implements WorkManager {} 839 class _WorkManagerMock extends TypedMock implements WorkManager {}
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/engine_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698