| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library test.protocol; | 5 library test.protocol; |
| 6 | 6 |
| 7 import 'dart:convert'; | 7 import 'dart:convert'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol.dart'; | 9 import 'package:analysis_server/src/protocol.dart'; |
| 10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 @runTest | 68 @runTest |
| 69 static void getParameter_defined() { | 69 static void getParameter_defined() { |
| 70 String name = 'name'; | 70 String name = 'name'; |
| 71 String value = 'value'; | 71 String value = 'value'; |
| 72 Request request = new Request('0', ''); | 72 Request request = new Request('0', ''); |
| 73 request.setParameter(name, value); | 73 request.setParameter(name, value); |
| 74 expect(request.getParameter(name, null).datum, equals(value)); | 74 expect(request.getParameter(name, null).datum, equals(value)); |
| 75 } | 75 } |
| 76 | 76 |
| 77 @runTest | 77 @runTest |
| 78 static void getParameter_null() { |
| 79 String name = 'name'; |
| 80 Request request = new Request('0', ''); |
| 81 request.setParameter(name, null); |
| 82 expect(request.getParameter(name, 'default').datum, equals(null)); |
| 83 } |
| 84 |
| 85 @runTest |
| 78 static void getParameter_undefined() { | 86 static void getParameter_undefined() { |
| 79 String name = 'name'; | 87 String name = 'name'; |
| 80 String defaultValue = 'default value'; | 88 String defaultValue = 'default value'; |
| 81 Request request = new Request('0', ''); | 89 Request request = new Request('0', ''); |
| 82 expect(request.getParameter(name, defaultValue).datum, equals(defaultValue))
; | 90 expect(request.getParameter(name, defaultValue).datum, equals(defaultValue))
; |
| 83 } | 91 } |
| 84 | 92 |
| 85 @runTest | 93 @runTest |
| 86 static void getRequiredParameter_defined() { | 94 static void getRequiredParameter_defined() { |
| 87 String name = 'name'; | 95 String name = 'name'; |
| 88 String value = 'value'; | 96 String value = 'value'; |
| 89 Request request = new Request('0', ''); | 97 Request request = new Request('0', ''); |
| 90 request.setParameter(name, value); | 98 request.setParameter(name, value); |
| 91 expect(request.getRequiredParameter(name).datum, equals(value)); | 99 expect(request.getRequiredParameter(name).datum, equals(value)); |
| 92 } | 100 } |
| 93 | 101 |
| 94 @runTest | 102 @runTest |
| 103 static void getRequiredParameter_null() { |
| 104 String name = 'name'; |
| 105 Request request = new Request('0', ''); |
| 106 request.setParameter(name, null); |
| 107 expect(request.getRequiredParameter(name).datum, equals(null)); |
| 108 } |
| 109 |
| 110 @runTest |
| 95 static void getRequiredParameter_undefined() { | 111 static void getRequiredParameter_undefined() { |
| 96 String name = 'name'; | 112 String name = 'name'; |
| 97 Request request = new Request('0', ''); | 113 Request request = new Request('0', ''); |
| 98 expect(() => request.getRequiredParameter(name), _throwsRequestFailure); | 114 expect(() => request.getRequiredParameter(name), _throwsRequestFailure); |
| 99 } | 115 } |
| 100 | 116 |
| 101 @runTest | 117 @runTest |
| 102 static void fromJson() { | 118 static void fromJson() { |
| 103 Request original = new Request('one', 'aMethod'); | 119 Request original = new Request('one', 'aMethod'); |
| 104 String json = JSON.encode(original.toJson()); | 120 String json = JSON.encode(original.toJson()); |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 return new RequestDatum(request, 'myPath', datum); | 300 return new RequestDatum(request, 'myPath', datum); |
| 285 } | 301 } |
| 286 | 302 |
| 287 @runTest | 303 @runTest |
| 288 static void indexOperator_nonMap() { | 304 static void indexOperator_nonMap() { |
| 289 setUp(); | 305 setUp(); |
| 290 expect(() => makeDatum(1)['foo'], _throwsInvalidParameter); | 306 expect(() => makeDatum(1)['foo'], _throwsInvalidParameter); |
| 291 } | 307 } |
| 292 | 308 |
| 293 @runTest | 309 @runTest |
| 310 static void indexOperator_null() { |
| 311 setUp(); |
| 312 expect(() => makeDatum(null)['foo'], _throwsInvalidParameter); |
| 313 } |
| 314 |
| 315 @runTest |
| 294 static void indexOperator_missingKey() { | 316 static void indexOperator_missingKey() { |
| 295 setUp(); | 317 setUp(); |
| 296 expect(() => makeDatum({ | 318 expect(() => makeDatum({ |
| 297 'foo': 'bar' | 319 'foo': 'bar' |
| 298 })['baz'], _throwsInvalidParameter); | 320 })['baz'], _throwsInvalidParameter); |
| 299 } | 321 } |
| 300 | 322 |
| 301 @runTest | 323 @runTest |
| 302 static void indexOperator_hasKey() { | 324 static void indexOperator_hasKey() { |
| 303 setUp(); | 325 setUp(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 314 setUp(); | 336 setUp(); |
| 315 var datum = makeDatum({ | 337 var datum = makeDatum({ |
| 316 'foo': 'bar' | 338 'foo': 'bar' |
| 317 }); | 339 }); |
| 318 expect(datum.hasKey('foo'), isTrue); | 340 expect(datum.hasKey('foo'), isTrue); |
| 319 expect(datum.hasKey('bar'), isFalse); | 341 expect(datum.hasKey('bar'), isFalse); |
| 320 expect(datum.hasKey('baz'), isFalse); | 342 expect(datum.hasKey('baz'), isFalse); |
| 321 } | 343 } |
| 322 | 344 |
| 323 @runTest | 345 @runTest |
| 346 static void hasKey_null() { |
| 347 setUp(); |
| 348 expect(makeDatum(null).hasKey('foo'), isFalse); |
| 349 } |
| 350 |
| 351 @runTest |
| 324 static void forEachMap_nonMap() { | 352 static void forEachMap_nonMap() { |
| 325 setUp(); | 353 setUp(); |
| 326 expect(() => makeDatum(1).forEachMap((key, value) { | 354 expect(() => makeDatum(1).forEachMap((key, value) { |
| 327 fail('Non-map should not be iterated'); | 355 fail('Non-map should not be iterated'); |
| 328 }), _throwsInvalidParameter); | 356 }), _throwsInvalidParameter); |
| 329 } | 357 } |
| 330 | 358 |
| 331 @runTest | 359 @runTest |
| 332 static void forEachMap_emptyMap() { | 360 static void forEachMap_emptyMap() { |
| 333 setUp(); | 361 setUp(); |
| 334 makeDatum({}).forEachMap((key, value) { | 362 makeDatum({}).forEachMap((key, value) { |
| 335 fail('Empty map should not be iterated'); | 363 fail('Empty map should not be iterated'); |
| 336 }); | 364 }); |
| 337 } | 365 } |
| 338 | 366 |
| 339 @runTest | 367 @runTest |
| 368 static void forEachMap_null() { |
| 369 setUp(); |
| 370 makeDatum(null).forEachMap((key, value) { |
| 371 fail('Empty map should not be iterated'); |
| 372 }); |
| 373 } |
| 374 |
| 375 @runTest |
| 340 static void forEachMap_oneElementMap() { | 376 static void forEachMap_oneElementMap() { |
| 341 setUp(); | 377 setUp(); |
| 342 int callCount = 0; | 378 int callCount = 0; |
| 343 makeDatum({ | 379 makeDatum({ |
| 344 'key': 'value' | 380 'key': 'value' |
| 345 }).forEachMap((key, value) { | 381 }).forEachMap((key, value) { |
| 346 callCount++; | 382 callCount++; |
| 347 expect(key, equals('key')); | 383 expect(key, equals('key')); |
| 348 expect(value, isRequestDatum); | 384 expect(value, isRequestDatum); |
| 349 expect(value.datum, equals('value')); | 385 expect(value.datum, equals('value')); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 @runTest | 418 @runTest |
| 383 static void asInt() { | 419 static void asInt() { |
| 384 setUp(); | 420 setUp(); |
| 385 expect(makeDatum(1).asInt(), equals(1)); | 421 expect(makeDatum(1).asInt(), equals(1)); |
| 386 expect(makeDatum('2').asInt(), equals(2)); | 422 expect(makeDatum('2').asInt(), equals(2)); |
| 387 expect(() => makeDatum('xxx').asInt(), _throwsInvalidParameter); | 423 expect(() => makeDatum('xxx').asInt(), _throwsInvalidParameter); |
| 388 expect(() => makeDatum(true).asInt(), _throwsInvalidParameter); | 424 expect(() => makeDatum(true).asInt(), _throwsInvalidParameter); |
| 389 } | 425 } |
| 390 | 426 |
| 391 @runTest | 427 @runTest |
| 428 static void isList() { |
| 429 setUp(); |
| 430 expect(makeDatum(3).isList, isFalse); |
| 431 expect(makeDatum(null).isList, isTrue); |
| 432 expect(makeDatum([]).isList, isTrue); |
| 433 expect(makeDatum(['foo', 'bar']).isList, isTrue); |
| 434 } |
| 435 |
| 436 @runTest |
| 392 static void asList_nonList() { | 437 static void asList_nonList() { |
| 393 setUp(); | 438 setUp(); |
| 394 expect(() => makeDatum(3).asList((datum) => null), _throwsInvalidParameter); | 439 expect(() => makeDatum(3).asList((datum) => null), _throwsInvalidParameter); |
| 395 } | 440 } |
| 396 | 441 |
| 397 @runTest | 442 @runTest |
| 443 static void asList_null() { |
| 444 setUp(); |
| 445 expect(makeDatum(null).asList((datum) => datum.asString()), equals([])); |
| 446 } |
| 447 |
| 448 @runTest |
| 398 static void asList_emptyList() { | 449 static void asList_emptyList() { |
| 399 setUp(); | 450 setUp(); |
| 400 expect(makeDatum([]).asList((datum) => datum.asString()), equals([])); | 451 expect(makeDatum([]).asList((datum) => datum.asString()), equals([])); |
| 401 } | 452 } |
| 402 | 453 |
| 403 @runTest | 454 @runTest |
| 404 static void asList_nonEmptyList() { | 455 static void asList_nonEmptyList() { |
| 405 setUp(); | 456 setUp(); |
| 406 expect(makeDatum(['foo', 'bar']).asList((datum) => datum.asString()), equals
(['foo', 'bar'])); | 457 expect(makeDatum(['foo', 'bar']).asList((datum) => datum.asString()), equals
(['foo', 'bar'])); |
| 407 } | 458 } |
| 408 | 459 |
| 409 @runTest | 460 @runTest |
| 410 static void asString() { | 461 static void asString() { |
| 411 setUp(); | 462 setUp(); |
| 412 expect(makeDatum('foo').asString(), equals('foo')); | 463 expect(makeDatum('foo').asString(), equals('foo')); |
| 413 expect(() => makeDatum(3).asString(), _throwsInvalidParameter); | 464 expect(() => makeDatum(3).asString(), _throwsInvalidParameter); |
| 414 } | 465 } |
| 415 | 466 |
| 416 @runTest | 467 @runTest |
| 468 static void isStringList() { |
| 469 setUp(); |
| 470 expect(makeDatum(['foo', 'bar']).isStringList, isTrue); |
| 471 expect(makeDatum([]).isStringList, isTrue); |
| 472 expect(makeDatum(null).isStringList, isTrue); |
| 473 expect(makeDatum(['foo', 1]).isStringList, isFalse); |
| 474 expect(makeDatum({}).isStringList, isFalse); |
| 475 } |
| 476 |
| 477 @runTest |
| 417 static void asStringList() { | 478 static void asStringList() { |
| 418 setUp(); | 479 setUp(); |
| 419 expect(makeDatum(['foo', 'bar']).asStringList(), equals(['foo', 'bar'])); | 480 expect(makeDatum(['foo', 'bar']).asStringList(), equals(['foo', 'bar'])); |
| 420 expect(makeDatum([]).asStringList(), equals([])); | 481 expect(makeDatum([]).asStringList(), equals([])); |
| 482 expect(makeDatum(null).asStringList(), equals([])); |
| 421 expect(() => makeDatum(['foo', 1]).asStringList(), _throwsInvalidParameter); | 483 expect(() => makeDatum(['foo', 1]).asStringList(), _throwsInvalidParameter); |
| 422 expect(() => makeDatum({}).asStringList(), _throwsInvalidParameter); | 484 expect(() => makeDatum({}).asStringList(), _throwsInvalidParameter); |
| 423 } | 485 } |
| 424 | 486 |
| 425 @runTest | 487 @runTest |
| 488 static void isMap() { |
| 489 setUp(); |
| 490 expect(makeDatum({ |
| 491 'key1': 'value1', |
| 492 'key2': 'value2' |
| 493 }).isMap, isTrue); |
| 494 expect(makeDatum({}).isMap, isTrue); |
| 495 expect(makeDatum(null).isMap, isTrue); |
| 496 expect(makeDatum({ |
| 497 'key1': 'value1', |
| 498 'key2': 2 |
| 499 }).isMap, isTrue); |
| 500 expect(makeDatum({ |
| 501 'key1': 1, |
| 502 'key2': 2 |
| 503 }).isMap, isTrue); |
| 504 expect(makeDatum([]).isMap, isFalse); |
| 505 } |
| 506 |
| 507 @runTest |
| 508 static void isStringMap() { |
| 509 setUp(); |
| 510 expect(makeDatum({ |
| 511 'key1': 'value1', |
| 512 'key2': 'value2' |
| 513 }).isStringMap, isTrue); |
| 514 expect(makeDatum({}).isStringMap, isTrue); |
| 515 expect(makeDatum(null).isStringMap, isTrue); |
| 516 expect(makeDatum({ |
| 517 'key1': 'value1', |
| 518 'key2': 2 |
| 519 }).isStringMap, isFalse); |
| 520 expect(makeDatum({ |
| 521 'key1': 1, |
| 522 'key2': 2 |
| 523 }).isStringMap, isFalse); |
| 524 expect(makeDatum([]).isMap, isFalse); |
| 525 } |
| 526 |
| 527 @runTest |
| 426 static void asStringMap() { | 528 static void asStringMap() { |
| 427 setUp(); | 529 setUp(); |
| 428 expect(makeDatum({ | 530 expect(makeDatum({ |
| 429 'key1': 'value1', | 531 'key1': 'value1', |
| 430 'key2': 'value2' | 532 'key2': 'value2' |
| 431 }).asStringMap(), equals({ | 533 }).asStringMap(), equals({ |
| 432 'key1': 'value1', | 534 'key1': 'value1', |
| 433 'key2': 'value2' | 535 'key2': 'value2' |
| 434 })); | 536 })); |
| 435 expect(makeDatum({}).asStringMap(), equals({})); | 537 expect(makeDatum({}).asStringMap(), equals({})); |
| 436 expect(() => makeDatum({ | 538 expect(() => makeDatum({ |
| 437 'key1': 'value1', | 539 'key1': 'value1', |
| 438 'key2': 2 | 540 'key2': 2 |
| 439 }).asStringMap(), _throwsInvalidParameter); | 541 }).asStringMap(), _throwsInvalidParameter); |
| 440 expect(() => makeDatum({ | 542 expect(() => makeDatum({ |
| 441 'key1': 1, | 543 'key1': 1, |
| 442 'key2': 2 | 544 'key2': 2 |
| 443 }).asStringMap(), _throwsInvalidParameter); | 545 }).asStringMap(), _throwsInvalidParameter); |
| 444 expect(() => makeDatum([]).asStringMap(), _throwsInvalidParameter); | 546 expect(() => makeDatum([]).asStringMap(), _throwsInvalidParameter); |
| 445 } | 547 } |
| 446 | 548 |
| 447 @runTest | 549 @runTest |
| 550 static void isStringListMap() { |
| 551 setUp(); |
| 552 expect(makeDatum({ |
| 553 'key1': ['value11', 'value12'], |
| 554 'key2': ['value21', 'value22'] |
| 555 }).isStringListMap, isTrue); |
| 556 expect(makeDatum({ |
| 557 'key1': 10, |
| 558 'key2': 20 |
| 559 }).isStringListMap, isFalse); |
| 560 expect(makeDatum({ |
| 561 'key1': [11, 12], |
| 562 'key2': [21, 22] |
| 563 }).isStringListMap, isFalse); |
| 564 expect(makeDatum({}).isStringListMap, isTrue); |
| 565 expect(makeDatum(null).isStringListMap, isTrue); |
| 566 expect(makeDatum(3).isStringListMap, isFalse); |
| 567 } |
| 568 |
| 569 @runTest |
| 448 static void asStringListMap() { | 570 static void asStringListMap() { |
| 449 setUp(); | 571 setUp(); |
| 450 { | 572 { |
| 451 var map = { | 573 var map = { |
| 452 'key1': ['value11', 'value12'], | 574 'key1': ['value11', 'value12'], |
| 453 'key2': ['value21', 'value22'] | 575 'key2': ['value21', 'value22'] |
| 454 }; | 576 }; |
| 455 expect(makeDatum(map).asStringListMap(), map); | 577 expect(makeDatum(map).asStringListMap(), map); |
| 456 } | 578 } |
| 457 { | 579 { |
| 458 var map = { | 580 var map = { |
| 459 'key1': 10, | 581 'key1': 10, |
| 460 'key2': 20 | 582 'key2': 20 |
| 461 }; | 583 }; |
| 462 expect(() => makeDatum(map).asStringListMap(), _throwsInvalidParameter); | 584 expect(() => makeDatum(map).asStringListMap(), _throwsInvalidParameter); |
| 463 } | 585 } |
| 464 { | 586 { |
| 465 var map = { | 587 var map = { |
| 466 'key1': [11, 12], | 588 'key1': [11, 12], |
| 467 'key2': [21, 22] | 589 'key2': [21, 22] |
| 468 }; | 590 }; |
| 469 expect(() => makeDatum(map).asStringListMap(), _throwsInvalidParameter); | 591 expect(() => makeDatum(map).asStringListMap(), _throwsInvalidParameter); |
| 470 } | 592 } |
| 593 expect(makeDatum({}).asStringListMap(), equals({})); |
| 594 expect(makeDatum(null).asStringListMap(), equals({})); |
| 595 expect(() => makeDatum(3).asStringListMap(), _throwsInvalidParameter); |
| 471 } | 596 } |
| 472 } | 597 } |
| 473 | 598 |
| 474 class ResponseTest { | 599 class ResponseTest { |
| 475 @runTest | 600 @runTest |
| 476 static void create_contextDoesNotExist() { | 601 static void create_contextDoesNotExist() { |
| 477 Response response = new Response.contextDoesNotExist(new Request('0', '')); | 602 Response response = new Response.contextDoesNotExist(new Request('0', '')); |
| 478 expect(response.id, equals('0')); | 603 expect(response.id, equals('0')); |
| 479 expect(response.error, isNotNull); | 604 expect(response.error, isNotNull); |
| 480 expect(response.toJson(), equals({ | 605 expect(response.toJson(), equals({ |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 original.setResult('foo', 'bar'); | 702 original.setResult('foo', 'bar'); |
| 578 Response response = new Response.fromJson(original.toJson()); | 703 Response response = new Response.fromJson(original.toJson()); |
| 579 expect(response.id, equals('myId')); | 704 expect(response.id, equals('myId')); |
| 580 Map<String, Object> result = response.result; | 705 Map<String, Object> result = response.result; |
| 581 expect(result.length, equals(1)); | 706 expect(result.length, equals(1)); |
| 582 expect(result['foo'], equals('bar')); | 707 expect(result['foo'], equals('bar')); |
| 583 } | 708 } |
| 584 } | 709 } |
| 585 | 710 |
| 586 Matcher _throwsRequestFailure = throwsA(new isInstanceOf<RequestFailure>()); | 711 Matcher _throwsRequestFailure = throwsA(new isInstanceOf<RequestFailure>()); |
| OLD | NEW |