| Index: packages/analyzer/test/src/task/inputs_test.dart
|
| diff --git a/packages/analyzer/test/src/task/inputs_test.dart b/packages/analyzer/test/src/task/inputs_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3943a9955e9ec9ae738141926a71e284761727d6
|
| --- /dev/null
|
| +++ b/packages/analyzer/test/src/task/inputs_test.dart
|
| @@ -0,0 +1,1073 @@
|
| +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +library test.src.task.inputs_test;
|
| +
|
| +import 'package:analyzer/src/task/inputs.dart';
|
| +import 'package:analyzer/src/task/model.dart';
|
| +import 'package:analyzer/task/model.dart';
|
| +import 'package:unittest/unittest.dart';
|
| +
|
| +import '../../generated/test_support.dart';
|
| +import '../../reflective_tests.dart';
|
| +import '../../utils.dart';
|
| +
|
| +main() {
|
| + initializeTestEnvironment();
|
| + runReflectiveTests(ConstantTaskInputBuilderTest);
|
| + runReflectiveTests(ConstantTaskInputTest);
|
| + runReflectiveTests(ListTaskInputImplTest);
|
| + runReflectiveTests(ListToListTaskInputTest);
|
| + runReflectiveTests(ListToListTaskInputBuilderTest);
|
| + runReflectiveTests(ListToMapTaskInputBuilderTest);
|
| + runReflectiveTests(ListToMapTaskInputTest);
|
| + runReflectiveTests(ObjectToListTaskInputBuilderTest);
|
| + runReflectiveTests(ObjectToListTaskInputTest);
|
| + runReflectiveTests(SimpleTaskInputTest);
|
| + runReflectiveTests(SimpleTaskInputBuilderTest);
|
| + runReflectiveTests(TopLevelTaskInputBuilderTest);
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ConstantTaskInputBuilderTest extends EngineTestCase {
|
| + static final int value = 7;
|
| + static final ConstantTaskInput<int> input = new ConstantTaskInput<int>(value);
|
| +
|
| + ConstantTaskInputBuilder builder;
|
| +
|
| + void setUp() {
|
| + builder = new ConstantTaskInputBuilder(input);
|
| + }
|
| +
|
| + test_create() {
|
| + expect(builder, isNotNull);
|
| + expect(builder.input, input);
|
| + }
|
| +
|
| + test_currentResult_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_beforeMoveNext() {
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentTarget_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_beforeMoveNext() {
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentValue_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(() {
|
| + builder.currentValue = 'value';
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValue_beforeMoveNext() {
|
| + expect(() {
|
| + builder.currentValue = 'value';
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_beforeMoveNext() {
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.inputValue, value);
|
| + }
|
| +
|
| + test_inputValue_beforeMoveNext() {
|
| + expect(builder.inputValue, value);
|
| + }
|
| +
|
| + test_moveNext() {
|
| + expect(builder.moveNext(), false);
|
| + expect(builder.moveNext(), false);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ConstantTaskInputTest extends EngineTestCase {
|
| + test_create() {
|
| + int value = 3;
|
| + ConstantTaskInput<int> input = new ConstantTaskInput<int>(value);
|
| + expect(input, isNotNull);
|
| + expect(input.value, value);
|
| + }
|
| +
|
| + test_createBuilder() {
|
| + ConstantTaskInput<int> input = new ConstantTaskInput<int>(5);
|
| + expect(input.createBuilder(), new isInstanceOf<ConstantTaskInputBuilder>());
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ListTaskInputImplTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final result1 =
|
| + new ResultDescriptorImpl<List<AnalysisTarget>>('result1', null);
|
| + static final result2 = new ResultDescriptorImpl<int>('result2', null);
|
| +
|
| + test_create() {
|
| + var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
|
| + expect(input, isNotNull);
|
| + expect(input.target, target);
|
| + expect(input.result, result1);
|
| + }
|
| +
|
| + test_createBuilder() {
|
| + var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
|
| + expect(input.createBuilder(), new isInstanceOf<SimpleTaskInputBuilder>());
|
| + }
|
| +
|
| + test_toList() {
|
| + var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
|
| + TaskInput<List> input2 = input.toList((target) => 'name');
|
| + expect(input2,
|
| + new isInstanceOf<ListToListTaskInput<AnalysisTarget, String>>());
|
| + }
|
| +
|
| + test_toListOf() {
|
| + var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
|
| + TaskInput<List> input2 = input.toListOf(result2);
|
| + expect(
|
| + input2, new isInstanceOf<ListToListTaskInput<AnalysisTarget, int>>());
|
| + }
|
| +
|
| + test_toMap() {
|
| + var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
|
| + TaskInput<Map> input2 = input.toMap((target) => 'name');
|
| + expect(
|
| + input2, new isInstanceOf<ListToMapTaskInput<AnalysisTarget, String>>());
|
| + }
|
| +
|
| + test_toMapOf() {
|
| + var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
|
| + TaskInput<Map> input2 = input.toMapOf(result2);
|
| + expect(input2, new isInstanceOf<ListToMapTaskInput<AnalysisTarget, int>>());
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ListToListTaskInputBuilderTest extends EngineTestCase {
|
| + static final AnalysisTarget target1 = new TestSource();
|
| + static final ResultDescriptorImpl result1 =
|
| + new ResultDescriptorImpl('result1', null);
|
| + static final ResultDescriptorImpl result2 =
|
| + new ResultDescriptorImpl('result2', null);
|
| + static final ListToListTaskInput input = new ListToListTaskInput(
|
| + result1.of(target1), (element) => result2.of(element));
|
| +
|
| + test_create() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(builder, isNotNull);
|
| + expect(builder.input, input);
|
| + }
|
| +
|
| + test_currentResult_afterComplete() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValue = [];
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterCurrentValueNotAvailable() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterOneMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + expect(builder.currentResult, result1);
|
| + }
|
| +
|
| + test_currentResult_beforeMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentTarget_afterComplete() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValue = [];
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterCurrentValueNotAvailable() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterOneMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, target1);
|
| + }
|
| +
|
| + test_currentTarget_beforeMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentValue_afterOneMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValue = [];
|
| + }
|
| +
|
| + test_currentValue_beforeMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(() {
|
| + builder.currentValue = [];
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_afterOneMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + }
|
| +
|
| + test_currentValueNotAvailable_beforeMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterComplete() {
|
| + AnalysisTarget target2 = new TestSource();
|
| + AnalysisTarget target3 = new TestSource();
|
| + String value2 = 'value2';
|
| + String value3 = 'value3';
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext(); // Advance to requesting the list
|
| + builder.currentValue = [target2, target3];
|
| + builder.moveNext(); // Advance to requesting result2 for target2
|
| + builder.currentValue = value2;
|
| + builder.moveNext(); // Advance to requesting result2 for target3
|
| + builder.currentValue = value3;
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<List>());
|
| + List list = inputValue;
|
| + expect(list.length, 2);
|
| + expect(list[0], value2);
|
| + expect(list[1], value3);
|
| + }
|
| +
|
| + test_inputValue_afterFirstValueNotAvailable() {
|
| + AnalysisTarget target2 = new TestSource();
|
| + AnalysisTarget target3 = new TestSource();
|
| + String value3 = 'value3';
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext(); // Advance to requesting the list
|
| + builder.currentValue = [target2, target3];
|
| + builder.moveNext(); // Advance to requesting result2 for target2
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext(); // Advance to requesting result2 for target3
|
| + builder.currentValue = value3;
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<List>());
|
| + List list = inputValue;
|
| + expect(list, orderedEquals([value3]));
|
| + }
|
| +
|
| + test_inputValue_afterListNotAvailable() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext(); // Advance to requesting the list
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<List>());
|
| + List list = inputValue;
|
| + expect(list, isEmpty);
|
| + }
|
| +
|
| + test_inputValue_afterOneMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_beforeMoveNext() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withoutSet() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(builder.moveNext(), true);
|
| + expect(() => builder.moveNext(), throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withSet() {
|
| + ListToListTaskInputBuilder builder = new ListToListTaskInputBuilder(input);
|
| + expect(builder.moveNext(), true);
|
| + builder.currentValue = [];
|
| + expect(builder.moveNext(), false);
|
| + expect(builder.moveNext(), false);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ListToListTaskInputTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result =
|
| + new ResultDescriptorImpl('result', null);
|
| +
|
| + test_create() {
|
| + SimpleTaskInput baseAccessor = result.of(target);
|
| + GenerateTaskInputs generate = (object) {};
|
| + ListToListTaskInput input = new ListToListTaskInput(baseAccessor, generate);
|
| + expect(input, isNotNull);
|
| + expect(input.baseAccessor, baseAccessor);
|
| + expect(input.generateTaskInputs, equals(generate));
|
| + }
|
| +
|
| + test_createBuilder() {
|
| + SimpleTaskInput baseAccessor = result.of(target);
|
| + GenerateTaskInputs generate = (object) {};
|
| + ListToListTaskInput input = new ListToListTaskInput(baseAccessor, generate);
|
| + expect(input.createBuilder(), isNotNull);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ListToMapTaskInputBuilderTest extends EngineTestCase {
|
| + static final AnalysisTarget target1 = new TestSource('target1');
|
| + static final ResultDescriptorImpl result1 =
|
| + new ResultDescriptorImpl('result1', null);
|
| + static final ResultDescriptorImpl result2 =
|
| + new ResultDescriptorImpl('result2', null);
|
| + static final ListToMapTaskInput input = new ListToMapTaskInput(
|
| + result1.of(target1), (element) => result2.of(element));
|
| +
|
| + test_create() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(builder, isNotNull);
|
| + expect(builder.input, input);
|
| + }
|
| +
|
| + test_currentResult_afterComplete() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValue = [];
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterCurrentValueNotAvailable() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterOneMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + expect(builder.currentResult, result1);
|
| + }
|
| +
|
| + test_currentResult_beforeMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentTarget_afterComplete() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValue = [];
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterCurrentValueNotAvailable() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterOneMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, target1);
|
| + }
|
| +
|
| + test_currentTarget_beforeMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentValue_afterOneMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValue = [];
|
| + }
|
| +
|
| + test_currentValue_beforeMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(() {
|
| + builder.currentValue = [];
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_afterOneMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + }
|
| +
|
| + test_currentValueNotAvailable_beforeMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterComplete() {
|
| + AnalysisTarget target2 = new TestSource('target2');
|
| + AnalysisTarget target3 = new TestSource('target3');
|
| + String value2 = 'value2';
|
| + String value3 = 'value3';
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext(); // Advance to requesting the list
|
| + builder.currentValue = [target2, target3];
|
| + builder.moveNext(); // Advance to requesting result2 for target2
|
| + builder.currentValue = value2;
|
| + builder.moveNext(); // Advance to requesting result2 for target3
|
| + builder.currentValue = value3;
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<Map>());
|
| + expect(inputValue.length, 2);
|
| + expect(inputValue, containsPair(target2, value2));
|
| + expect(inputValue, containsPair(target3, value3));
|
| + }
|
| +
|
| + test_inputValue_afterFirstValueNotAvailable() {
|
| + AnalysisTarget target2 = new TestSource('target2');
|
| + AnalysisTarget target3 = new TestSource('target3');
|
| + String value3 = 'value3';
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext(); // Advance to requesting the list
|
| + builder.currentValue = [target2, target3];
|
| + builder.moveNext(); // Advance to requesting result2 for target2
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext(); // Advance to requesting result2 for target3
|
| + builder.currentValue = value3;
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<Map>());
|
| + expect(inputValue, hasLength(1));
|
| + expect(inputValue, containsPair(target3, value3));
|
| + }
|
| +
|
| + test_inputValue_afterListNotAvailable() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext(); // Advance to requesting the list
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<Map>());
|
| + expect(inputValue, isEmpty);
|
| + }
|
| +
|
| + test_inputValue_afterOneMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + builder.moveNext();
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_beforeMoveNext() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withoutSet() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(builder.moveNext(), true);
|
| + expect(() => builder.moveNext(), throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withSet() {
|
| + ListToMapTaskInputBuilder builder = new ListToMapTaskInputBuilder(input);
|
| + expect(builder.moveNext(), true);
|
| + builder.currentValue = [];
|
| + expect(builder.moveNext(), false);
|
| + expect(builder.moveNext(), false);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ListToMapTaskInputTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result =
|
| + new ResultDescriptorImpl('result', null);
|
| +
|
| + test_create() {
|
| + SimpleTaskInput baseAccessor = result.of(target);
|
| + GenerateTaskInputs generate = (object) {};
|
| + ListToMapTaskInput input = new ListToMapTaskInput(baseAccessor, generate);
|
| + expect(input, isNotNull);
|
| + expect(input.baseAccessor, baseAccessor);
|
| + expect(input.generateTaskInputs, equals(generate));
|
| + }
|
| +
|
| + test_createBuilder() {
|
| + SimpleTaskInput baseAccessor = result.of(target);
|
| + GenerateTaskInputs generate = (object) {};
|
| + ListToMapTaskInput input = new ListToMapTaskInput(baseAccessor, generate);
|
| + expect(input.createBuilder(), isNotNull);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ObjectToListTaskInputBuilderTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result =
|
| + new ResultDescriptorImpl('result', null);
|
| + static final SimpleTaskInput baseInput = new SimpleTaskInput(target, result);
|
| + static final Function mapper = (x) => [x];
|
| + static final ObjectToListTaskInput input =
|
| + new ObjectToListTaskInput(baseInput, mapper);
|
| +
|
| + ObjectToListTaskInputBuilder builder;
|
| +
|
| + void setUp() {
|
| + builder = new ObjectToListTaskInputBuilder(input);
|
| + }
|
| +
|
| + test_create() {
|
| + expect(builder, isNotNull);
|
| + expect(builder.input, input);
|
| + }
|
| +
|
| + test_currentResult_afterComplete() {
|
| + builder.moveNext();
|
| + builder.currentValue = 'value';
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterCurrentValueNotAvailable() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.currentResult, result);
|
| + }
|
| +
|
| + test_currentResult_beforeMoveNext() {
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentTarget_afterComplete() {
|
| + builder.moveNext();
|
| + builder.currentValue = 'value';
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterCurrentValueNotAvailable() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, target);
|
| + }
|
| +
|
| + test_currentTarget_beforeMoveNext() {
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentValue_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + builder.currentValue = 'value';
|
| + }
|
| +
|
| + test_currentValue_beforeMoveNext() {
|
| + expect(() {
|
| + builder.currentValue = 'value';
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + }
|
| +
|
| + test_currentValueNotAvailable_beforeMoveNext() {
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterComplete() {
|
| + builder.moveNext();
|
| + String value = 'value';
|
| + builder.currentValue = value;
|
| + builder.moveNext();
|
| + expect(builder.inputValue, [value]);
|
| + }
|
| +
|
| + test_inputValue_afterCurrentValueNotAvailable() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.inputValue, [null]);
|
| + }
|
| +
|
| + test_inputValue_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_beforeMoveNext() {
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withoutSet() {
|
| + expect(builder.moveNext(), true);
|
| + expect(() => builder.moveNext(), throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withSet() {
|
| + expect(builder.moveNext(), true);
|
| + builder.currentValue = 'value';
|
| + expect(builder.moveNext(), false);
|
| + expect(builder.moveNext(), false);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ObjectToListTaskInputTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result =
|
| + new ResultDescriptorImpl('result', null);
|
| +
|
| + test_create() {
|
| + SimpleTaskInput baseInput = new SimpleTaskInput(target, result);
|
| + Function mapper = (x) => [x];
|
| + ObjectToListTaskInput input = new ObjectToListTaskInput(baseInput, mapper);
|
| + expect(input, isNotNull);
|
| + expect(input.baseInput, baseInput);
|
| + expect(input.mapper, equals(mapper));
|
| + }
|
| +
|
| + test_createBuilder() {
|
| + SimpleTaskInput baseInput = new SimpleTaskInput(target, result);
|
| + Function mapper = (x) => [x];
|
| + ObjectToListTaskInput input = new ObjectToListTaskInput(baseInput, mapper);
|
| + expect(input.createBuilder(),
|
| + new isInstanceOf<ObjectToListTaskInputBuilder>());
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class SimpleTaskInputBuilderTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result =
|
| + new ResultDescriptorImpl('result', null);
|
| + static final SimpleTaskInput input = new SimpleTaskInput(target, result);
|
| +
|
| + SimpleTaskInputBuilder builder;
|
| +
|
| + void setUp() {
|
| + builder = new SimpleTaskInputBuilder(input);
|
| + }
|
| +
|
| + test_create() {
|
| + expect(builder, isNotNull);
|
| + expect(builder.input, input);
|
| + }
|
| +
|
| + test_currentResult_afterComplete() {
|
| + builder.moveNext();
|
| + builder.currentValue = 'value';
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterCurrentValueNotAvailable() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.currentResult, result);
|
| + }
|
| +
|
| + test_currentResult_beforeMoveNext() {
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentTarget_afterComplete() {
|
| + builder.moveNext();
|
| + builder.currentValue = 'value';
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterCurrentValueNotAvailable() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, target);
|
| + }
|
| +
|
| + test_currentTarget_beforeMoveNext() {
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentValue_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + builder.currentValue = 'value';
|
| + }
|
| +
|
| + test_currentValue_beforeMoveNext() {
|
| + expect(() {
|
| + builder.currentValue = 'value';
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + }
|
| +
|
| + test_currentValueNotAvailable_beforeMoveNext() {
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterComplete() {
|
| + builder.moveNext();
|
| + String value = 'value';
|
| + builder.currentValue = value;
|
| + builder.moveNext();
|
| + expect(builder.inputValue, value);
|
| + }
|
| +
|
| + test_inputValue_afterCurrentValueNotAvailable() {
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.inputValue, isNull);
|
| + }
|
| +
|
| + test_inputValue_afterOneMoveNext() {
|
| + builder.moveNext();
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_beforeMoveNext() {
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withoutSet() {
|
| + expect(builder.moveNext(), true);
|
| + expect(() => builder.moveNext(), throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withSet() {
|
| + expect(builder.moveNext(), true);
|
| + builder.currentValue = 'value';
|
| + expect(builder.moveNext(), false);
|
| + expect(builder.moveNext(), false);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class SimpleTaskInputTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result =
|
| + new ResultDescriptorImpl('result', null);
|
| +
|
| + test_create() {
|
| + SimpleTaskInput input = new SimpleTaskInput(target, result);
|
| + expect(input, isNotNull);
|
| + expect(input.target, target);
|
| + expect(input.result, result);
|
| + }
|
| +
|
| + test_createBuilder() {
|
| + SimpleTaskInput input = new SimpleTaskInput(target, result);
|
| + expect(input.createBuilder(), new isInstanceOf<SimpleTaskInputBuilder>());
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class TopLevelTaskInputBuilderTest extends EngineTestCase {
|
| + static final AnalysisTarget target = new TestSource();
|
| + static final ResultDescriptorImpl result1 =
|
| + new ResultDescriptorImpl('result1', null);
|
| + static final ResultDescriptorImpl result2 =
|
| + new ResultDescriptorImpl('result2', null);
|
| + static final SimpleTaskInput input1 = new SimpleTaskInput(target, result1);
|
| + static final SimpleTaskInput input2 = new SimpleTaskInput(target, result2);
|
| +
|
| + test_create() {
|
| + Map<String, TaskInput> inputDescriptors = {};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(builder, isNotNull);
|
| + expect(builder.inputDescriptors, inputDescriptors);
|
| + }
|
| +
|
| + test_currentResult_afterComplete() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValue = 'value1';
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterCurrentValueNotAvailable() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentResult_afterOneMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1, 'two': input2};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + expect(builder.currentResult, result1);
|
| + }
|
| +
|
| + test_currentResult_afterTwoMoveNext_withConstantInput() {
|
| + ConstantTaskInput<int> constantInput = new ConstantTaskInput<int>(11);
|
| + Map<String, TaskInput> inputDescriptors = {
|
| + 'one': input1,
|
| + 'constant': constantInput,
|
| + 'two': input2
|
| + };
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValue = 'value1';
|
| + builder.moveNext();
|
| + expect(builder.currentResult, result2);
|
| + }
|
| +
|
| + test_currentResult_beforeMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(builder.currentResult, null);
|
| + }
|
| +
|
| + test_currentTarget_afterComplete() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValue = 'value1';
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterCurrentValueNotAvailable() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentTarget_afterOneMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, target);
|
| + }
|
| +
|
| + test_currentTarget_afterTwoMoveNext_withConstantInput() {
|
| + ConstantTaskInput<int> constantInput = new ConstantTaskInput<int>(11);
|
| + Map<String, TaskInput> inputDescriptors = {
|
| + 'one': input1,
|
| + 'constant': constantInput,
|
| + 'two': input2
|
| + };
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValue = 'value1';
|
| + builder.moveNext();
|
| + expect(builder.currentTarget, target);
|
| + }
|
| +
|
| + test_currentTarget_beforeMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(builder.currentTarget, null);
|
| + }
|
| +
|
| + test_currentValue_afterOneMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValue = 'value1';
|
| + }
|
| +
|
| + test_currentValue_beforeMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(() {
|
| + builder.currentValue = 'value1';
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_currentValueNotAvailable_afterOneMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + builder.currentValueNotAvailable();
|
| + }
|
| +
|
| + test_currentValueNotAvailable_beforeMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(() {
|
| + builder.currentValueNotAvailable();
|
| + }, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterComplete() {
|
| + String key1 = 'one';
|
| + String key2 = 'two';
|
| + String value1 = 'value1';
|
| + String value2 = 'value2';
|
| + Map<String, TaskInput> inputDescriptors = {key1: input1, key2: input2};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext(); // Advance to requesting result1 for target
|
| + builder.currentValue = value1;
|
| + builder.moveNext(); // Advance to requesting result2 for target
|
| + builder.currentValue = value2;
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<Map>());
|
| + Map inputs = inputValue;
|
| + expect(inputs.length, 2);
|
| + expect(inputs, containsPair(key1, value1));
|
| + expect(inputs, containsPair(key2, value2));
|
| + }
|
| +
|
| + test_inputValue_afterOneMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext();
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_inputValue_afterOneValueNotAvailable() {
|
| + String key1 = 'one';
|
| + String key2 = 'two';
|
| + String value2 = 'value2';
|
| + Map<String, TaskInput> inputDescriptors = {key1: input1, key2: input2};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + builder.moveNext(); // Advance to requesting result1 for target
|
| + builder.currentValueNotAvailable();
|
| + builder.moveNext(); // Advance to requesting result2 for target
|
| + builder.currentValue = value2;
|
| + builder.moveNext(); // Advance to the end
|
| + var inputValue = builder.inputValue;
|
| + expect(inputValue, new isInstanceOf<Map>());
|
| + Map inputs = inputValue;
|
| + expect(inputs, hasLength(1));
|
| + expect(inputs, containsPair(key2, value2));
|
| + }
|
| +
|
| + test_inputValue_beforeMoveNext() {
|
| + Map<String, TaskInput> inputDescriptors = {};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(() => builder.inputValue, throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withoutSet() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(builder.moveNext(), true);
|
| + expect(() => builder.moveNext(), throwsStateError);
|
| + }
|
| +
|
| + test_moveNext_withSet() {
|
| + Map<String, TaskInput> inputDescriptors = {'one': input1};
|
| + TopLevelTaskInputBuilder builder =
|
| + new TopLevelTaskInputBuilder(inputDescriptors);
|
| + expect(builder.moveNext(), true);
|
| + builder.currentValue = 'value1';
|
| + expect(builder.moveNext(), false);
|
| + expect(builder.moveNext(), false);
|
| + }
|
| +}
|
|
|