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

Side by Side Diff: pkg/analysis_server/test/protocol_test.dart

Issue 342383002: Allow "null" as a synonym for [] or {} in the analysis server API. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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>());
OLDNEW
« pkg/analysis_server/lib/src/protocol.dart ('K') | « pkg/analysis_server/lib/src/protocol.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698