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

Side by Side Diff: mojo/public/dart/third_party/analyzer/test/src/task/inputs_test.dart

Issue 1346773002: Stop running pub get at gclient sync time and fix build bugs (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 3 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.src.task.inputs_test;
6
7 import 'package:analyzer/src/task/inputs.dart';
8 import 'package:analyzer/src/task/model.dart';
9 import 'package:analyzer/task/model.dart';
10 import 'package:unittest/unittest.dart';
11
12 import '../../generated/test_support.dart';
13 import '../../reflective_tests.dart';
14 import '../../utils.dart';
15
16 main() {
17 initializeTestEnvironment();
18 runReflectiveTests(ListTaskInputImplTest);
19 runReflectiveTests(ListToListTaskInputTest);
20 runReflectiveTests(ListToListTaskInputBuilderTest);
21 runReflectiveTests(ListToMapTaskInputBuilderTest);
22 runReflectiveTests(ListToMapTaskInputTest);
23 runReflectiveTests(ObjectToListTaskInputBuilderTest);
24 runReflectiveTests(ObjectToListTaskInputTest);
25 runReflectiveTests(SimpleTaskInputTest);
26 runReflectiveTests(SimpleTaskInputBuilderTest);
27 runReflectiveTests(TopLevelTaskInputBuilderTest);
28 }
29
30 @reflectiveTest
31 class ListTaskInputImplTest extends EngineTestCase {
32 static final AnalysisTarget target = new TestSource();
33 static final result1 =
34 new ResultDescriptorImpl<List<AnalysisTarget>>('result1', null);
35 static final result2 = new ResultDescriptorImpl<int>('result2', null);
36
37 test_create() {
38 var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
39 expect(input, isNotNull);
40 expect(input.target, target);
41 expect(input.result, result1);
42 }
43
44 test_createBuilder() {
45 var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
46 expect(input.createBuilder(), new isInstanceOf<SimpleTaskInputBuilder>());
47 }
48
49 test_toList() {
50 var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
51 TaskInput<List> input2 = input.toList((target) => 'name');
52 expect(input2,
53 new isInstanceOf<ListToListTaskInput<AnalysisTarget, String>>());
54 }
55
56 test_toListOf() {
57 var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
58 TaskInput<List> input2 = input.toListOf(result2);
59 expect(
60 input2, new isInstanceOf<ListToListTaskInput<AnalysisTarget, int>>());
61 }
62
63 test_toMap() {
64 var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
65 TaskInput<Map> input2 = input.toMap((target) => 'name');
66 expect(
67 input2, new isInstanceOf<ListToMapTaskInput<AnalysisTarget, String>>());
68 }
69
70 test_toMapOf() {
71 var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
72 TaskInput<Map> input2 = input.toMapOf(result2);
73 expect(input2, new isInstanceOf<ListToMapTaskInput<AnalysisTarget, int>>());
74 }
75 }
76
77 @reflectiveTest
78 class ListToListTaskInputBuilderTest extends EngineTestCase {
79 static final AnalysisTarget target1 = new TestSource();
80 static final ResultDescriptorImpl result1 =
81 new ResultDescriptorImpl('result1', null);
82 static final ResultDescriptorImpl result2 =
83 new ResultDescriptorImpl('result2', null);
84 static final ListToListTaskInput input = new ListToListTaskInput(
85 result1.of(target1), (element) => result2.of(element));
86
87 test_create() {
88 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
89 expect(builder, isNotNull);
90 expect(builder.input, input);
91 }
92
93 test_currentResult_afterComplete() {
94 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
95 builder.moveNext();
96 builder.currentValue = [];
97 builder.moveNext();
98 expect(builder.currentResult, null);
99 }
100
101 test_currentResult_afterCurrentValueNotAvailable() {
102 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
103 builder.moveNext();
104 builder.currentValueNotAvailable();
105 builder.moveNext();
106 expect(builder.currentResult, null);
107 }
108
109 test_currentResult_afterOneMoveNext() {
110 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
111 builder.moveNext();
112 expect(builder.currentResult, result1);
113 }
114
115 test_currentResult_beforeMoveNext() {
116 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
117 expect(builder.currentResult, null);
118 }
119
120 test_currentTarget_afterComplete() {
121 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
122 builder.moveNext();
123 builder.currentValue = [];
124 builder.moveNext();
125 expect(builder.currentTarget, null);
126 }
127
128 test_currentTarget_afterCurrentValueNotAvailable() {
129 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
130 builder.moveNext();
131 builder.currentValueNotAvailable();
132 builder.moveNext();
133 expect(builder.currentTarget, null);
134 }
135
136 test_currentTarget_afterOneMoveNext() {
137 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
138 builder.moveNext();
139 expect(builder.currentTarget, target1);
140 }
141
142 test_currentTarget_beforeMoveNext() {
143 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
144 expect(builder.currentTarget, null);
145 }
146
147 test_currentValue_afterOneMoveNext() {
148 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
149 builder.moveNext();
150 builder.currentValue = [];
151 }
152
153 test_currentValue_beforeMoveNext() {
154 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
155 expect(() {
156 builder.currentValue = [];
157 }, throwsStateError);
158 }
159
160 test_currentValueNotAvailable_afterOneMoveNext() {
161 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
162 builder.moveNext();
163 builder.currentValueNotAvailable();
164 }
165
166 test_currentValueNotAvailable_beforeMoveNext() {
167 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
168 expect(() {
169 builder.currentValueNotAvailable();
170 }, throwsStateError);
171 }
172
173 test_inputValue_afterComplete() {
174 AnalysisTarget target2 = new TestSource();
175 AnalysisTarget target3 = new TestSource();
176 String value2 = 'value2';
177 String value3 = 'value3';
178 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
179 builder.moveNext(); // Advance to requesting the list
180 builder.currentValue = [target2, target3];
181 builder.moveNext(); // Advance to requesting result2 for target2
182 builder.currentValue = value2;
183 builder.moveNext(); // Advance to requesting result2 for target3
184 builder.currentValue = value3;
185 builder.moveNext(); // Advance to the end
186 var inputValue = builder.inputValue;
187 expect(inputValue, new isInstanceOf<List>());
188 List list = inputValue;
189 expect(list.length, 2);
190 expect(list[0], value2);
191 expect(list[1], value3);
192 }
193
194 test_inputValue_afterFirstValueNotAvailable() {
195 AnalysisTarget target2 = new TestSource();
196 AnalysisTarget target3 = new TestSource();
197 String value3 = 'value3';
198 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
199 builder.moveNext(); // Advance to requesting the list
200 builder.currentValue = [target2, target3];
201 builder.moveNext(); // Advance to requesting result2 for target2
202 builder.currentValueNotAvailable();
203 builder.moveNext(); // Advance to requesting result2 for target3
204 builder.currentValue = value3;
205 builder.moveNext(); // Advance to the end
206 var inputValue = builder.inputValue;
207 expect(inputValue, new isInstanceOf<List>());
208 List list = inputValue;
209 expect(list, orderedEquals([value3]));
210 }
211
212 test_inputValue_afterListNotAvailable() {
213 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
214 builder.moveNext(); // Advance to requesting the list
215 builder.currentValueNotAvailable();
216 builder.moveNext(); // Advance to the end
217 var inputValue = builder.inputValue;
218 expect(inputValue, new isInstanceOf<List>());
219 List list = inputValue;
220 expect(list, isEmpty);
221 }
222
223 test_inputValue_afterOneMoveNext() {
224 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
225 builder.moveNext();
226 expect(() => builder.inputValue, throwsStateError);
227 }
228
229 test_inputValue_beforeMoveNext() {
230 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
231 expect(() => builder.inputValue, throwsStateError);
232 }
233
234 test_moveNext_withoutSet() {
235 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
236 expect(builder.moveNext(), true);
237 expect(() => builder.moveNext(), throwsStateError);
238 }
239
240 test_moveNext_withSet() {
241 ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
242 expect(builder.moveNext(), true);
243 builder.currentValue = [];
244 expect(builder.moveNext(), false);
245 expect(builder.moveNext(), false);
246 }
247 }
248
249 @reflectiveTest
250 class ListToListTaskInputTest extends EngineTestCase {
251 static final AnalysisTarget target = new TestSource();
252 static final ResultDescriptorImpl result =
253 new ResultDescriptorImpl('result', null);
254
255 test_create() {
256 SimpleTaskInput baseAccessor = result.of(target);
257 GenerateTaskInputs generate = (object) {};
258 ListToListTaskInput input = new ListToListTaskInput(baseAccessor, generate);
259 expect(input, isNotNull);
260 expect(input.baseAccessor, baseAccessor);
261 expect(input.generateTaskInputs, equals(generate));
262 }
263
264 test_createBuilder() {
265 SimpleTaskInput baseAccessor = result.of(target);
266 GenerateTaskInputs generate = (object) {};
267 ListToListTaskInput input = new ListToListTaskInput(baseAccessor, generate);
268 expect(input.createBuilder(), isNotNull);
269 }
270 }
271
272 @reflectiveTest
273 class ListToMapTaskInputBuilderTest extends EngineTestCase {
274 static final AnalysisTarget target1 = new TestSource('target1');
275 static final ResultDescriptorImpl result1 =
276 new ResultDescriptorImpl('result1', null);
277 static final ResultDescriptorImpl result2 =
278 new ResultDescriptorImpl('result2', null);
279 static final ListToMapTaskInput input = new ListToMapTaskInput(
280 result1.of(target1), (element) => result2.of(element));
281
282 test_create() {
283 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
284 expect(builder, isNotNull);
285 expect(builder.input, input);
286 }
287
288 test_currentResult_afterComplete() {
289 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
290 builder.moveNext();
291 builder.currentValue = [];
292 builder.moveNext();
293 expect(builder.currentResult, null);
294 }
295
296 test_currentResult_afterCurrentValueNotAvailable() {
297 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
298 builder.moveNext();
299 builder.currentValueNotAvailable();
300 builder.moveNext();
301 expect(builder.currentResult, null);
302 }
303
304 test_currentResult_afterOneMoveNext() {
305 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
306 builder.moveNext();
307 expect(builder.currentResult, result1);
308 }
309
310 test_currentResult_beforeMoveNext() {
311 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
312 expect(builder.currentResult, null);
313 }
314
315 test_currentTarget_afterComplete() {
316 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
317 builder.moveNext();
318 builder.currentValue = [];
319 builder.moveNext();
320 expect(builder.currentTarget, null);
321 }
322
323 test_currentTarget_afterCurrentValueNotAvailable() {
324 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
325 builder.moveNext();
326 builder.currentValueNotAvailable();
327 builder.moveNext();
328 expect(builder.currentTarget, null);
329 }
330
331 test_currentTarget_afterOneMoveNext() {
332 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
333 builder.moveNext();
334 expect(builder.currentTarget, target1);
335 }
336
337 test_currentTarget_beforeMoveNext() {
338 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
339 expect(builder.currentTarget, null);
340 }
341
342 test_currentValue_afterOneMoveNext() {
343 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
344 builder.moveNext();
345 builder.currentValue = [];
346 }
347
348 test_currentValue_beforeMoveNext() {
349 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
350 expect(() {
351 builder.currentValue = [];
352 }, throwsStateError);
353 }
354
355 test_currentValueNotAvailable_afterOneMoveNext() {
356 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
357 builder.moveNext();
358 builder.currentValueNotAvailable();
359 }
360
361 test_currentValueNotAvailable_beforeMoveNext() {
362 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
363 expect(() {
364 builder.currentValueNotAvailable();
365 }, throwsStateError);
366 }
367
368 test_inputValue_afterComplete() {
369 AnalysisTarget target2 = new TestSource('target2');
370 AnalysisTarget target3 = new TestSource('target3');
371 String value2 = 'value2';
372 String value3 = 'value3';
373 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
374 builder.moveNext(); // Advance to requesting the list
375 builder.currentValue = [target2, target3];
376 builder.moveNext(); // Advance to requesting result2 for target2
377 builder.currentValue = value2;
378 builder.moveNext(); // Advance to requesting result2 for target3
379 builder.currentValue = value3;
380 builder.moveNext(); // Advance to the end
381 var inputValue = builder.inputValue;
382 expect(inputValue, new isInstanceOf<Map>());
383 expect(inputValue.length, 2);
384 expect(inputValue, containsPair(target2, value2));
385 expect(inputValue, containsPair(target3, value3));
386 }
387
388 test_inputValue_afterFirstValueNotAvailable() {
389 AnalysisTarget target2 = new TestSource('target2');
390 AnalysisTarget target3 = new TestSource('target3');
391 String value3 = 'value3';
392 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
393 builder.moveNext(); // Advance to requesting the list
394 builder.currentValue = [target2, target3];
395 builder.moveNext(); // Advance to requesting result2 for target2
396 builder.currentValueNotAvailable();
397 builder.moveNext(); // Advance to requesting result2 for target3
398 builder.currentValue = value3;
399 builder.moveNext(); // Advance to the end
400 var inputValue = builder.inputValue;
401 expect(inputValue, new isInstanceOf<Map>());
402 expect(inputValue, hasLength(1));
403 expect(inputValue, containsPair(target3, value3));
404 }
405
406 test_inputValue_afterListNotAvailable() {
407 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
408 builder.moveNext(); // Advance to requesting the list
409 builder.currentValueNotAvailable();
410 builder.moveNext(); // Advance to the end
411 var inputValue = builder.inputValue;
412 expect(inputValue, new isInstanceOf<Map>());
413 expect(inputValue, isEmpty);
414 }
415
416 test_inputValue_afterOneMoveNext() {
417 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
418 builder.moveNext();
419 expect(() => builder.inputValue, throwsStateError);
420 }
421
422 test_inputValue_beforeMoveNext() {
423 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
424 expect(() => builder.inputValue, throwsStateError);
425 }
426
427 test_moveNext_withoutSet() {
428 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
429 expect(builder.moveNext(), true);
430 expect(() => builder.moveNext(), throwsStateError);
431 }
432
433 test_moveNext_withSet() {
434 ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
435 expect(builder.moveNext(), true);
436 builder.currentValue = [];
437 expect(builder.moveNext(), false);
438 expect(builder.moveNext(), false);
439 }
440 }
441
442 @reflectiveTest
443 class ListToMapTaskInputTest extends EngineTestCase {
444 static final AnalysisTarget target = new TestSource();
445 static final ResultDescriptorImpl result =
446 new ResultDescriptorImpl('result', null);
447
448 test_create() {
449 SimpleTaskInput baseAccessor = result.of(target);
450 GenerateTaskInputs generate = (object) {};
451 ListToMapTaskInput input = new ListToMapTaskInput(baseAccessor, generate);
452 expect(input, isNotNull);
453 expect(input.baseAccessor, baseAccessor);
454 expect(input.generateTaskInputs, equals(generate));
455 }
456
457 test_createBuilder() {
458 SimpleTaskInput baseAccessor = result.of(target);
459 GenerateTaskInputs generate = (object) {};
460 ListToMapTaskInput input = new ListToMapTaskInput(baseAccessor, generate);
461 expect(input.createBuilder(), isNotNull);
462 }
463 }
464
465 @reflectiveTest
466 class ObjectToListTaskInputBuilderTest extends EngineTestCase {
467 static final AnalysisTarget target = new TestSource();
468 static final ResultDescriptorImpl result =
469 new ResultDescriptorImpl('result', null);
470 static final SimpleTaskInput baseInput = new SimpleTaskInput(target, result);
471 static final Function mapper = (x) => [x];
472 static final ObjectToListTaskInput input =
473 new ObjectToListTaskInput(baseInput, mapper);
474
475 ObjectToListTaskInputBuilder builder;
476
477 void setUp() {
478 builder = new ObjectToListTaskInputBuilder(input);
479 }
480
481 test_create() {
482 expect(builder, isNotNull);
483 expect(builder.input, input);
484 }
485
486 test_currentResult_afterComplete() {
487 builder.moveNext();
488 builder.currentValue = 'value';
489 builder.moveNext();
490 expect(builder.currentResult, null);
491 }
492
493 test_currentResult_afterCurrentValueNotAvailable() {
494 builder.moveNext();
495 builder.currentValueNotAvailable();
496 builder.moveNext();
497 expect(builder.currentResult, null);
498 }
499
500 test_currentResult_afterOneMoveNext() {
501 builder.moveNext();
502 expect(builder.currentResult, result);
503 }
504
505 test_currentResult_beforeMoveNext() {
506 expect(builder.currentResult, null);
507 }
508
509 test_currentTarget_afterComplete() {
510 builder.moveNext();
511 builder.currentValue = 'value';
512 builder.moveNext();
513 expect(builder.currentTarget, null);
514 }
515
516 test_currentTarget_afterCurrentValueNotAvailable() {
517 builder.moveNext();
518 builder.currentValueNotAvailable();
519 builder.moveNext();
520 expect(builder.currentTarget, null);
521 }
522
523 test_currentTarget_afterOneMoveNext() {
524 builder.moveNext();
525 expect(builder.currentTarget, target);
526 }
527
528 test_currentTarget_beforeMoveNext() {
529 expect(builder.currentTarget, null);
530 }
531
532 test_currentValue_afterOneMoveNext() {
533 builder.moveNext();
534 builder.currentValue = 'value';
535 }
536
537 test_currentValue_beforeMoveNext() {
538 expect(() {
539 builder.currentValue = 'value';
540 }, throwsStateError);
541 }
542
543 test_currentValueNotAvailable_afterOneMoveNext() {
544 builder.moveNext();
545 builder.currentValueNotAvailable();
546 }
547
548 test_currentValueNotAvailable_beforeMoveNext() {
549 expect(() {
550 builder.currentValueNotAvailable();
551 }, throwsStateError);
552 }
553
554 test_inputValue_afterComplete() {
555 builder.moveNext();
556 String value = 'value';
557 builder.currentValue = value;
558 builder.moveNext();
559 expect(builder.inputValue, [value]);
560 }
561
562 test_inputValue_afterCurrentValueNotAvailable() {
563 builder.moveNext();
564 builder.currentValueNotAvailable();
565 builder.moveNext();
566 expect(builder.inputValue, [null]);
567 }
568
569 test_inputValue_afterOneMoveNext() {
570 builder.moveNext();
571 expect(() => builder.inputValue, throwsStateError);
572 }
573
574 test_inputValue_beforeMoveNext() {
575 expect(() => builder.inputValue, throwsStateError);
576 }
577
578 test_moveNext_withoutSet() {
579 expect(builder.moveNext(), true);
580 expect(() => builder.moveNext(), throwsStateError);
581 }
582
583 test_moveNext_withSet() {
584 expect(builder.moveNext(), true);
585 builder.currentValue = 'value';
586 expect(builder.moveNext(), false);
587 expect(builder.moveNext(), false);
588 }
589 }
590
591 @reflectiveTest
592 class ObjectToListTaskInputTest extends EngineTestCase {
593 static final AnalysisTarget target = new TestSource();
594 static final ResultDescriptorImpl result =
595 new ResultDescriptorImpl('result', null);
596
597 test_create() {
598 SimpleTaskInput baseInput = new SimpleTaskInput(target, result);
599 Function mapper = (x) => [x];
600 ObjectToListTaskInput input = new ObjectToListTaskInput(baseInput, mapper);
601 expect(input, isNotNull);
602 expect(input.baseInput, baseInput);
603 expect(input.mapper, equals(mapper));
604 }
605
606 test_createBuilder() {
607 SimpleTaskInput baseInput = new SimpleTaskInput(target, result);
608 Function mapper = (x) => [x];
609 ObjectToListTaskInput input = new ObjectToListTaskInput(baseInput, mapper);
610 expect(input.createBuilder(),
611 new isInstanceOf<ObjectToListTaskInputBuilder>());
612 }
613 }
614
615 @reflectiveTest
616 class SimpleTaskInputBuilderTest extends EngineTestCase {
617 static final AnalysisTarget target = new TestSource();
618 static final ResultDescriptorImpl result =
619 new ResultDescriptorImpl('result', null);
620 static final SimpleTaskInput input = new SimpleTaskInput(target, result);
621
622 SimpleTaskInputBuilder builder;
623
624 void setUp() {
625 builder = new SimpleTaskInputBuilder(input);
626 }
627
628 test_create() {
629 expect(builder, isNotNull);
630 expect(builder.input, input);
631 }
632
633 test_currentResult_afterComplete() {
634 builder.moveNext();
635 builder.currentValue = 'value';
636 builder.moveNext();
637 expect(builder.currentResult, null);
638 }
639
640 test_currentResult_afterCurrentValueNotAvailable() {
641 builder.moveNext();
642 builder.currentValueNotAvailable();
643 builder.moveNext();
644 expect(builder.currentResult, null);
645 }
646
647 test_currentResult_afterOneMoveNext() {
648 builder.moveNext();
649 expect(builder.currentResult, result);
650 }
651
652 test_currentResult_beforeMoveNext() {
653 expect(builder.currentResult, null);
654 }
655
656 test_currentTarget_afterComplete() {
657 builder.moveNext();
658 builder.currentValue = 'value';
659 builder.moveNext();
660 expect(builder.currentTarget, null);
661 }
662
663 test_currentTarget_afterCurrentValueNotAvailable() {
664 builder.moveNext();
665 builder.currentValueNotAvailable();
666 builder.moveNext();
667 expect(builder.currentTarget, null);
668 }
669
670 test_currentTarget_afterOneMoveNext() {
671 builder.moveNext();
672 expect(builder.currentTarget, target);
673 }
674
675 test_currentTarget_beforeMoveNext() {
676 expect(builder.currentTarget, null);
677 }
678
679 test_currentValue_afterOneMoveNext() {
680 builder.moveNext();
681 builder.currentValue = 'value';
682 }
683
684 test_currentValue_beforeMoveNext() {
685 expect(() {
686 builder.currentValue = 'value';
687 }, throwsStateError);
688 }
689
690 test_currentValueNotAvailable_afterOneMoveNext() {
691 builder.moveNext();
692 builder.currentValueNotAvailable();
693 }
694
695 test_currentValueNotAvailable_beforeMoveNext() {
696 expect(() {
697 builder.currentValueNotAvailable();
698 }, throwsStateError);
699 }
700
701 test_inputValue_afterComplete() {
702 builder.moveNext();
703 String value = 'value';
704 builder.currentValue = value;
705 builder.moveNext();
706 expect(builder.inputValue, value);
707 }
708
709 test_inputValue_afterCurrentValueNotAvailable() {
710 builder.moveNext();
711 builder.currentValueNotAvailable();
712 builder.moveNext();
713 expect(builder.inputValue, isNull);
714 }
715
716 test_inputValue_afterOneMoveNext() {
717 builder.moveNext();
718 expect(() => builder.inputValue, throwsStateError);
719 }
720
721 test_inputValue_beforeMoveNext() {
722 expect(() => builder.inputValue, throwsStateError);
723 }
724
725 test_moveNext_withoutSet() {
726 expect(builder.moveNext(), true);
727 expect(() => builder.moveNext(), throwsStateError);
728 }
729
730 test_moveNext_withSet() {
731 expect(builder.moveNext(), true);
732 builder.currentValue = 'value';
733 expect(builder.moveNext(), false);
734 expect(builder.moveNext(), false);
735 }
736 }
737
738 @reflectiveTest
739 class SimpleTaskInputTest extends EngineTestCase {
740 static final AnalysisTarget target = new TestSource();
741 static final ResultDescriptorImpl result =
742 new ResultDescriptorImpl('result', null);
743
744 test_create() {
745 SimpleTaskInput input = new SimpleTaskInput(target, result);
746 expect(input, isNotNull);
747 expect(input.target, target);
748 expect(input.result, result);
749 }
750
751 test_createBuilder() {
752 SimpleTaskInput input = new SimpleTaskInput(target, result);
753 expect(input.createBuilder(), new isInstanceOf<SimpleTaskInputBuilder>());
754 }
755 }
756
757 @reflectiveTest
758 class TopLevelTaskInputBuilderTest extends EngineTestCase {
759 static final AnalysisTarget target = new TestSource();
760 static final ResultDescriptorImpl result1 =
761 new ResultDescriptorImpl('result1', null);
762 static final ResultDescriptorImpl result2 =
763 new ResultDescriptorImpl('result2', null);
764 static final SimpleTaskInput input1 = new SimpleTaskInput(target, result1);
765 static final SimpleTaskInput input2 = new SimpleTaskInput(target, result2);
766
767 test_create() {
768 Map<String, TaskInput> inputDescriptors = {};
769 TopLevelTaskInputBuilder builder =
770 new TopLevelTaskInputBuilder(inputDescriptors);
771 expect(builder, isNotNull);
772 expect(builder.inputDescriptors, inputDescriptors);
773 }
774
775 test_currentResult_afterComplete() {
776 Map<String, TaskInput> inputDescriptors = {'one': input1};
777 TopLevelTaskInputBuilder builder =
778 new TopLevelTaskInputBuilder(inputDescriptors);
779 builder.moveNext();
780 builder.currentValue = 'value1';
781 builder.moveNext();
782 expect(builder.currentResult, null);
783 }
784
785 test_currentResult_afterCurrentValueNotAvailable() {
786 Map<String, TaskInput> inputDescriptors = {'one': input1};
787 TopLevelTaskInputBuilder builder =
788 new TopLevelTaskInputBuilder(inputDescriptors);
789 builder.moveNext();
790 builder.currentValueNotAvailable();
791 builder.moveNext();
792 expect(builder.currentResult, null);
793 }
794
795 test_currentResult_afterOneMoveNext() {
796 Map<String, TaskInput> inputDescriptors = {'one': input1, 'two': input2};
797 TopLevelTaskInputBuilder builder =
798 new TopLevelTaskInputBuilder(inputDescriptors);
799 builder.moveNext();
800 expect(builder.currentResult, result1);
801 }
802
803 test_currentResult_beforeMoveNext() {
804 Map<String, TaskInput> inputDescriptors = {};
805 TopLevelTaskInputBuilder builder =
806 new TopLevelTaskInputBuilder(inputDescriptors);
807 expect(builder.currentResult, null);
808 }
809
810 test_currentTarget_afterComplete() {
811 Map<String, TaskInput> inputDescriptors = {'one': input1};
812 TopLevelTaskInputBuilder builder =
813 new TopLevelTaskInputBuilder(inputDescriptors);
814 builder.moveNext();
815 builder.currentValue = 'value1';
816 builder.moveNext();
817 expect(builder.currentTarget, null);
818 }
819
820 test_currentTarget_afterCurrentValueNotAvailable() {
821 Map<String, TaskInput> inputDescriptors = {'one': input1};
822 TopLevelTaskInputBuilder builder =
823 new TopLevelTaskInputBuilder(inputDescriptors);
824 builder.moveNext();
825 builder.currentValueNotAvailable();
826 builder.moveNext();
827 expect(builder.currentTarget, null);
828 }
829
830 test_currentTarget_afterOneMoveNext() {
831 Map<String, TaskInput> inputDescriptors = {'one': input1};
832 TopLevelTaskInputBuilder builder =
833 new TopLevelTaskInputBuilder(inputDescriptors);
834 builder.moveNext();
835 expect(builder.currentTarget, target);
836 }
837
838 test_currentTarget_beforeMoveNext() {
839 Map<String, TaskInput> inputDescriptors = {};
840 TopLevelTaskInputBuilder builder =
841 new TopLevelTaskInputBuilder(inputDescriptors);
842 expect(builder.currentTarget, null);
843 }
844
845 test_currentValue_afterOneMoveNext() {
846 Map<String, TaskInput> inputDescriptors = {'one': input1};
847 TopLevelTaskInputBuilder builder =
848 new TopLevelTaskInputBuilder(inputDescriptors);
849 builder.moveNext();
850 builder.currentValue = 'value1';
851 }
852
853 test_currentValue_beforeMoveNext() {
854 Map<String, TaskInput> inputDescriptors = {'one': input1};
855 TopLevelTaskInputBuilder builder =
856 new TopLevelTaskInputBuilder(inputDescriptors);
857 expect(() {
858 builder.currentValue = 'value1';
859 }, throwsStateError);
860 }
861
862 test_currentValueNotAvailable_afterOneMoveNext() {
863 Map<String, TaskInput> inputDescriptors = {'one': input1};
864 TopLevelTaskInputBuilder builder =
865 new TopLevelTaskInputBuilder(inputDescriptors);
866 builder.moveNext();
867 builder.currentValueNotAvailable();
868 }
869
870 test_currentValueNotAvailable_beforeMoveNext() {
871 Map<String, TaskInput> inputDescriptors = {'one': input1};
872 TopLevelTaskInputBuilder builder =
873 new TopLevelTaskInputBuilder(inputDescriptors);
874 expect(() {
875 builder.currentValueNotAvailable();
876 }, throwsStateError);
877 }
878
879 test_inputValue_afterComplete() {
880 String key1 = 'one';
881 String key2 = 'two';
882 String value1 = 'value1';
883 String value2 = 'value2';
884 Map<String, TaskInput> inputDescriptors = {key1: input1, key2: input2};
885 TopLevelTaskInputBuilder builder =
886 new TopLevelTaskInputBuilder(inputDescriptors);
887 builder.moveNext(); // Advance to requesting result1 for target
888 builder.currentValue = value1;
889 builder.moveNext(); // Advance to requesting result2 for target
890 builder.currentValue = value2;
891 builder.moveNext(); // Advance to the end
892 var inputValue = builder.inputValue;
893 expect(inputValue, new isInstanceOf<Map>());
894 Map inputs = inputValue;
895 expect(inputs.length, 2);
896 expect(inputs, containsPair(key1, value1));
897 expect(inputs, containsPair(key2, value2));
898 }
899
900 test_inputValue_afterOneMoveNext() {
901 Map<String, TaskInput> inputDescriptors = {'one': input1};
902 TopLevelTaskInputBuilder builder =
903 new TopLevelTaskInputBuilder(inputDescriptors);
904 builder.moveNext();
905 expect(() => builder.inputValue, throwsStateError);
906 }
907
908 test_inputValue_afterOneValueNotAvailable() {
909 String key1 = 'one';
910 String key2 = 'two';
911 String value2 = 'value2';
912 Map<String, TaskInput> inputDescriptors = {key1: input1, key2: input2};
913 TopLevelTaskInputBuilder builder =
914 new TopLevelTaskInputBuilder(inputDescriptors);
915 builder.moveNext(); // Advance to requesting result1 for target
916 builder.currentValueNotAvailable();
917 builder.moveNext(); // Advance to requesting result2 for target
918 builder.currentValue = value2;
919 builder.moveNext(); // Advance to the end
920 var inputValue = builder.inputValue;
921 expect(inputValue, new isInstanceOf<Map>());
922 Map inputs = inputValue;
923 expect(inputs, hasLength(1));
924 expect(inputs, containsPair(key2, value2));
925 }
926
927 test_inputValue_beforeMoveNext() {
928 Map<String, TaskInput> inputDescriptors = {};
929 TopLevelTaskInputBuilder builder =
930 new TopLevelTaskInputBuilder(inputDescriptors);
931 expect(() => builder.inputValue, throwsStateError);
932 }
933
934 test_moveNext_withoutSet() {
935 Map<String, TaskInput> inputDescriptors = {'one': input1};
936 TopLevelTaskInputBuilder builder =
937 new TopLevelTaskInputBuilder(inputDescriptors);
938 expect(builder.moveNext(), true);
939 expect(() => builder.moveNext(), throwsStateError);
940 }
941
942 test_moveNext_withSet() {
943 Map<String, TaskInput> inputDescriptors = {'one': input1};
944 TopLevelTaskInputBuilder builder =
945 new TopLevelTaskInputBuilder(inputDescriptors);
946 expect(builder.moveNext(), true);
947 builder.currentValue = 'value1';
948 expect(builder.moveNext(), false);
949 expect(builder.moveNext(), false);
950 }
951 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698