| OLD | NEW |
| (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/src/task/targets.dart'; |
| 10 import 'package:unittest/unittest.dart'; |
| 11 |
| 12 import '../../generated/test_support.dart'; |
| 13 import '../../reflective_tests.dart'; |
| 14 import 'package:analyzer/task/model.dart'; |
| 15 |
| 16 main() { |
| 17 groupSep = ' | '; |
| 18 runReflectiveTests(ListBasedTaskInputTest); |
| 19 runReflectiveTests(ListBasedTaskInputBuilderTest); |
| 20 runReflectiveTests(SimpleTaskInputTest); |
| 21 runReflectiveTests(SimpleTaskInputBuilderTest); |
| 22 runReflectiveTests(TopLevelTaskInputBuilderTest); |
| 23 } |
| 24 |
| 25 @reflectiveTest |
| 26 class ListBasedTaskInputBuilderTest extends EngineTestCase { |
| 27 static final SourceTarget target1 = new SourceTarget(null); |
| 28 static final ResultDescriptorImpl result1 = new ResultDescriptorImpl('result1'
); |
| 29 static final ResultDescriptorImpl result2 = new ResultDescriptorImpl('result2'
); |
| 30 static final ListBasedTaskInput input = |
| 31 new ListBasedTaskInput(result1.inputFor(target1), (element) => result2.inp
utFor(element)); |
| 32 |
| 33 test_create() { |
| 34 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 35 expect(builder, isNotNull); |
| 36 expect(builder.input, input); |
| 37 } |
| 38 |
| 39 test_currentResult_afterOneMoveNext() { |
| 40 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 41 builder.moveNext(); |
| 42 expect(builder.currentResult, result1); |
| 43 } |
| 44 |
| 45 test_currentResult_afterComplete() { |
| 46 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 47 builder.moveNext(); |
| 48 builder.currentValue = []; |
| 49 builder.moveNext(); |
| 50 expect(builder.currentResult, null); |
| 51 } |
| 52 |
| 53 test_currentResult_beforeMoveNext() { |
| 54 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 55 expect(builder.currentResult, null); |
| 56 } |
| 57 |
| 58 test_currentTarget_afterOneMoveNext() { |
| 59 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 60 builder.moveNext(); |
| 61 expect(builder.currentTarget, target1); |
| 62 } |
| 63 |
| 64 test_currentTarget_afterComplete() { |
| 65 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 66 builder.moveNext(); |
| 67 builder.currentValue = []; |
| 68 builder.moveNext(); |
| 69 expect(builder.currentTarget, null); |
| 70 } |
| 71 |
| 72 test_currentTarget_beforeMoveNext() { |
| 73 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 74 expect(builder.currentTarget, null); |
| 75 } |
| 76 |
| 77 test_currentValue_afterOneMoveNext() { |
| 78 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 79 builder.moveNext(); |
| 80 builder.currentValue = []; |
| 81 } |
| 82 |
| 83 test_currentValue_beforeMoveNext() { |
| 84 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 85 expect(() { |
| 86 builder.currentValue = []; |
| 87 }, throwsStateError); |
| 88 } |
| 89 |
| 90 test_inputValue_afterOneMoveNext() { |
| 91 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 92 builder.moveNext(); |
| 93 expect(() => builder.inputValue, throwsStateError); |
| 94 } |
| 95 |
| 96 test_inputValue_afterComplete() { |
| 97 SourceTarget target2 = new SourceTarget(null); |
| 98 SourceTarget target3 = new SourceTarget(null); |
| 99 String value2 = 'value2'; |
| 100 String value3 = 'value3'; |
| 101 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 102 builder.moveNext(); // Advance to requesting the list |
| 103 builder.currentValue = [target2, target3]; |
| 104 builder.moveNext(); // Advance to requesting result2 for target2 |
| 105 builder.currentValue = value2; |
| 106 builder.moveNext(); // Advance to requesting result2 for target3 |
| 107 builder.currentValue = value3; |
| 108 builder.moveNext(); // Advance to the end |
| 109 var inputValue = builder.inputValue; |
| 110 expect(inputValue, new isInstanceOf<List>()); |
| 111 List list = inputValue; |
| 112 expect(list.length, 2); |
| 113 expect(list[0], value2); |
| 114 expect(list[1], value3); |
| 115 } |
| 116 |
| 117 test_inputValue_beforeMoveNext() { |
| 118 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 119 expect(() => builder.inputValue, throwsStateError); |
| 120 } |
| 121 |
| 122 test_moveNext_withoutSet() { |
| 123 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 124 expect(builder.moveNext(), true); |
| 125 expect(() => builder.moveNext(), throwsStateError); |
| 126 } |
| 127 |
| 128 test_moveNext_withSet() { |
| 129 ListBasedTaskInputBuilder builder = new ListBasedTaskInputBuilder(input); |
| 130 expect(builder.moveNext(), true); |
| 131 builder.currentValue = []; |
| 132 expect(builder.moveNext(), false); |
| 133 expect(builder.moveNext(), false); |
| 134 } |
| 135 } |
| 136 |
| 137 @reflectiveTest |
| 138 class ListBasedTaskInputTest extends EngineTestCase { |
| 139 static final SourceTarget target = new SourceTarget(null); |
| 140 static final ResultDescriptorImpl result = new ResultDescriptorImpl('result'); |
| 141 |
| 142 test_create() { |
| 143 SimpleTaskInput baseAccessor = result.inputFor(target); |
| 144 GenerateTaskInputs generate = (object) {}; |
| 145 ListBasedTaskInput input = new ListBasedTaskInput(baseAccessor, generate); |
| 146 expect(input, isNotNull); |
| 147 expect(input.baseAccessor, baseAccessor); |
| 148 expect(input.generateTaskInputs, equals(generate)); |
| 149 } |
| 150 |
| 151 test_createBuilder() { |
| 152 SimpleTaskInput baseAccessor = result.inputFor(target); |
| 153 GenerateTaskInputs generate = (object) {}; |
| 154 ListBasedTaskInput input = new ListBasedTaskInput(baseAccessor, generate); |
| 155 expect(input.createBuilder(), isNotNull); |
| 156 } |
| 157 } |
| 158 |
| 159 @reflectiveTest |
| 160 class SimpleTaskInputBuilderTest extends EngineTestCase { |
| 161 static final SourceTarget target = new SourceTarget(null); |
| 162 static final ResultDescriptorImpl result = new ResultDescriptorImpl('result'); |
| 163 static final SimpleTaskInput input = new SimpleTaskInput(target, result); |
| 164 |
| 165 test_create() { |
| 166 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 167 expect(builder, isNotNull); |
| 168 expect(builder.input, input); |
| 169 } |
| 170 |
| 171 test_currentResult_afterOneMoveNext() { |
| 172 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 173 builder.moveNext(); |
| 174 expect(builder.currentResult, result); |
| 175 } |
| 176 |
| 177 test_currentResult_afterComplete() { |
| 178 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 179 builder.moveNext(); |
| 180 builder.currentValue = 'value'; |
| 181 builder.moveNext(); |
| 182 expect(builder.currentResult, null); |
| 183 } |
| 184 |
| 185 test_currentResult_beforeMoveNext() { |
| 186 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 187 expect(builder.currentResult, null); |
| 188 } |
| 189 |
| 190 test_currentTarget_afterOneMoveNext() { |
| 191 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 192 builder.moveNext(); |
| 193 expect(builder.currentTarget, target); |
| 194 } |
| 195 |
| 196 test_currentTarget_afterComplete() { |
| 197 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 198 builder.moveNext(); |
| 199 builder.currentValue = 'value'; |
| 200 builder.moveNext(); |
| 201 expect(builder.currentTarget, null); |
| 202 } |
| 203 |
| 204 test_currentTarget_beforeMoveNext() { |
| 205 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 206 expect(builder.currentTarget, null); |
| 207 } |
| 208 |
| 209 test_currentValue_afterOneMoveNext() { |
| 210 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 211 builder.moveNext(); |
| 212 builder.currentValue = 'value'; |
| 213 } |
| 214 |
| 215 test_currentValue_beforeMoveNext() { |
| 216 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 217 expect(() { |
| 218 builder.currentValue = 'value'; |
| 219 }, throwsStateError); |
| 220 } |
| 221 |
| 222 test_inputValue_afterOneMoveNext() { |
| 223 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 224 builder.moveNext(); |
| 225 expect(() => builder.inputValue, throwsStateError); |
| 226 } |
| 227 |
| 228 test_inputValue_afterComplete() { |
| 229 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 230 builder.moveNext(); |
| 231 String value = 'value'; |
| 232 builder.currentValue = value; |
| 233 builder.moveNext(); |
| 234 expect(builder.inputValue, value); |
| 235 } |
| 236 |
| 237 test_inputValue_beforeMoveNext() { |
| 238 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 239 expect(() => builder.inputValue, throwsStateError); |
| 240 } |
| 241 |
| 242 test_moveNext_withoutSet() { |
| 243 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 244 expect(builder.moveNext(), true); |
| 245 expect(() => builder.moveNext(), throwsStateError); |
| 246 } |
| 247 |
| 248 test_moveNext_withSet() { |
| 249 SimpleTaskInputBuilder builder = new SimpleTaskInputBuilder(input); |
| 250 expect(builder.moveNext(), true); |
| 251 builder.currentValue = 'value'; |
| 252 expect(builder.moveNext(), false); |
| 253 expect(builder.moveNext(), false); |
| 254 } |
| 255 } |
| 256 |
| 257 @reflectiveTest |
| 258 class SimpleTaskInputTest extends EngineTestCase { |
| 259 static final SourceTarget target = new SourceTarget(null); |
| 260 static final ResultDescriptorImpl result = new ResultDescriptorImpl('result'); |
| 261 |
| 262 test_create() { |
| 263 SimpleTaskInput input = new SimpleTaskInput(target, result); |
| 264 expect(input, isNotNull); |
| 265 expect(input.target, target); |
| 266 expect(input.result, result); |
| 267 } |
| 268 |
| 269 test_createBuilder() { |
| 270 SimpleTaskInput input = new SimpleTaskInput(target, result); |
| 271 expect(input.createBuilder(), new isInstanceOf<SimpleTaskInputBuilder>()); |
| 272 } |
| 273 } |
| 274 |
| 275 @reflectiveTest |
| 276 class TopLevelTaskInputBuilderTest extends EngineTestCase { |
| 277 static final SourceTarget target = new SourceTarget(null); |
| 278 static final ResultDescriptorImpl result1 = new ResultDescriptorImpl('result1'
); |
| 279 static final ResultDescriptorImpl result2 = new ResultDescriptorImpl('result2'
); |
| 280 static final SimpleTaskInput input1 = new SimpleTaskInput(target, result1); |
| 281 static final SimpleTaskInput input2 = new SimpleTaskInput(target, result2); |
| 282 |
| 283 test_create() { |
| 284 Map<String, TaskInput> inputDescriptors = {}; |
| 285 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 286 expect(builder, isNotNull); |
| 287 expect(builder.inputDescriptors, inputDescriptors); |
| 288 } |
| 289 |
| 290 test_currentResult_afterOneMoveNext() { |
| 291 Map<String, TaskInput> inputDescriptors = {'one' : input1, 'two' : input2}; |
| 292 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 293 builder.moveNext(); |
| 294 expect(builder.currentResult, result1); |
| 295 } |
| 296 |
| 297 test_currentResult_afterComplete() { |
| 298 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 299 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 300 builder.moveNext(); |
| 301 builder.currentValue = 'value1'; |
| 302 builder.moveNext(); |
| 303 expect(builder.currentResult, null); |
| 304 } |
| 305 |
| 306 test_currentResult_beforeMoveNext() { |
| 307 Map<String, TaskInput> inputDescriptors = {}; |
| 308 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 309 expect(builder.currentResult, null); |
| 310 } |
| 311 |
| 312 test_currentTarget_afterOneMoveNext() { |
| 313 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 314 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 315 builder.moveNext(); |
| 316 expect(builder.currentTarget, target); |
| 317 } |
| 318 |
| 319 test_currentTarget_afterComplete() { |
| 320 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 321 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 322 builder.moveNext(); |
| 323 builder.currentValue = 'value1'; |
| 324 builder.moveNext(); |
| 325 expect(builder.currentTarget, null); |
| 326 } |
| 327 |
| 328 test_currentTarget_beforeMoveNext() { |
| 329 Map<String, TaskInput> inputDescriptors = {}; |
| 330 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 331 expect(builder.currentTarget, null); |
| 332 } |
| 333 |
| 334 test_currentValue_afterOneMoveNext() { |
| 335 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 336 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 337 builder.moveNext(); |
| 338 builder.currentValue = 'value1'; |
| 339 } |
| 340 |
| 341 test_currentValue_beforeMoveNext() { |
| 342 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 343 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 344 expect(() { |
| 345 builder.currentValue = 'value1'; |
| 346 }, throwsStateError); |
| 347 } |
| 348 |
| 349 test_inputValue_afterOneMoveNext() { |
| 350 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 351 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 352 builder.moveNext(); |
| 353 expect(() => builder.inputValue, throwsStateError); |
| 354 } |
| 355 |
| 356 test_inputValue_afterComplete() { |
| 357 String key1 = 'one'; |
| 358 String key2 = 'two'; |
| 359 String value1 = 'value1'; |
| 360 String value2 = 'value2'; |
| 361 Map<String, TaskInput> inputDescriptors = {key1 : input1, key2 : input2}; |
| 362 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 363 builder.moveNext(); // Advance to requesting result1 for target |
| 364 builder.currentValue = value1; |
| 365 builder.moveNext(); // Advance to requesting result2 for target |
| 366 builder.currentValue = value2; |
| 367 builder.moveNext(); // Advance to the end |
| 368 var inputValue = builder.inputValue; |
| 369 expect(inputValue, new isInstanceOf<Map>()); |
| 370 Map inputs = inputValue; |
| 371 expect(inputs.length, 2); |
| 372 expect(inputs, containsPair(key1, value1)); |
| 373 expect(inputs, containsPair(key2, value2)); |
| 374 } |
| 375 |
| 376 test_inputValue_beforeMoveNext() { |
| 377 Map<String, TaskInput> inputDescriptors = {}; |
| 378 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 379 expect(() => builder.inputValue, throwsStateError); |
| 380 } |
| 381 |
| 382 test_moveNext_withoutSet() { |
| 383 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 384 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 385 expect(builder.moveNext(), true); |
| 386 expect(() => builder.moveNext(), throwsStateError); |
| 387 } |
| 388 |
| 389 test_moveNext_withSet() { |
| 390 Map<String, TaskInput> inputDescriptors = {'one' : input1}; |
| 391 TopLevelTaskInputBuilder builder = new TopLevelTaskInputBuilder(inputDescrip
tors); |
| 392 expect(builder.moveNext(), true); |
| 393 builder.currentValue = 'value1'; |
| 394 expect(builder.moveNext(), false); |
| 395 expect(builder.moveNext(), false); |
| 396 } |
| 397 } |
| OLD | NEW |