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

Side by Side Diff: packages/analyzer/test/src/task/inputs_test.dart

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

Powered by Google App Engine
This is Rietveld 408576698