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

Side by Side Diff: pkg/mock/test/mock_test.dart

Issue 278613003: pkg/mock: fixes for v0.11 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: status file fix for mismatched version constraints Created 6 years, 7 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
« no previous file with comments | « pkg/mock/pubspec.yaml ('k') | pkg/pkg.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 mock.test; 5 library mock.test;
6 6
7 import 'package:unittest/unittest.dart' show test, group, skip_test; 7 import 'package:unittest/unittest.dart' show test, group, skip_test;
8 import 'package:matcher/matcher.dart'; 8 import 'package:matcher/matcher.dart';
9 import 'package:mock/mock.dart'; 9 import 'package:mock/mock.dart';
10 10
(...skipping 18 matching lines...) Expand all
29 LogEntry makeTestLogEntry(String methodName, List args, int time, 29 LogEntry makeTestLogEntry(String methodName, List args, int time,
30 [String mockName]) { 30 [String mockName]) {
31 LogEntry e = new LogEntry(mockName, methodName, args, Action.IGNORE); 31 LogEntry e = new LogEntry(mockName, methodName, args, Action.IGNORE);
32 e.time = new DateTime.fromMillisecondsSinceEpoch(time, isUtc: true); 32 e.time = new DateTime.fromMillisecondsSinceEpoch(time, isUtc: true);
33 return e; 33 return e;
34 } 34 }
35 35
36 LogEntryList makeTestLog() { 36 LogEntryList makeTestLog() {
37 var args = new List(); 37 var args = new List();
38 return new LogEntryList('test') 38 return new LogEntryList('test')
39 ..add(makeTestLogEntry('a', args, 1000)) 39 ..add(makeTestLogEntry('a', args, 1000))
40 ..add(makeTestLogEntry('b', args, 2000)) 40 ..add(makeTestLogEntry('b', args, 2000))
41 ..add(makeTestLogEntry('c', args, 3000)); 41 ..add(makeTestLogEntry('c', args, 3000));
42 } 42 }
43 43
44 void main() { 44 void main() {
45 test('Mocking: Basics', () { 45 test('Mocking: Basics', () {
46 var m = new Mock(); 46 var m = new Mock();
47 // intentional no-opp access to m.length 47 // intentional no-opp access to m.length
48 var foo = m.length; 48 var foo = m.length;
49 m.getLogs(callsTo('get length')).verify(happenedOnce); 49 m.getLogs(callsTo('get length')).verify(happenedOnce);
50 50
51 m.when(callsTo('foo', 1, 2)).thenReturn('A').thenReturn('B'); 51 m.when(callsTo('foo', 1, 2)).thenReturn('A').thenReturn('B');
52 m.when(callsTo('foo', 1, 1)).thenReturn('C'); 52 m.when(callsTo('foo', 1, 1)).thenReturn('C');
53 m.when(callsTo('foo', 9, anything)).thenReturn('D'); 53 m.when(callsTo('foo', 9, anything)).thenReturn('D');
54 m.when(callsTo('bar', anything, anything)).thenReturn('E'); 54 m.when(callsTo('bar', anything, anything)).thenReturn('E');
55 m.when(callsTo('foobar')).thenReturn('F'); 55 m.when(callsTo('foobar')).thenReturn('F');
56 56
57 var s = '${m.foo(1,2)}${m.foo(1,1)}${m.foo(9,10)}' 57 var s = '${m.foo(1,2)}${m.foo(1,1)}${m.foo(9,10)}'
58 '${m.bar(1,1)}${m.foo(1,2)}'; 58 '${m.bar(1,1)}${m.foo(1,2)}';
59 m.getLogs(callsTo('foo', anything, anything)). 59 m.getLogs(callsTo('foo', anything, anything)).verify(happenedExactly(4));
60 verify(happenedExactly(4));
61 m.getLogs(callsTo('foo', 1, anything)).verify(happenedExactly(3)); 60 m.getLogs(callsTo('foo', 1, anything)).verify(happenedExactly(3));
62 m.getLogs(callsTo('foo', 9, anything)).verify(happenedOnce); 61 m.getLogs(callsTo('foo', 9, anything)).verify(happenedOnce);
63 m.getLogs(callsTo('foo', anything, 2)).verify(happenedExactly(2)); 62 m.getLogs(callsTo('foo', anything, 2)).verify(happenedExactly(2));
64 m.getLogs(callsTo('foobar')).verify(neverHappened); 63 m.getLogs(callsTo('foobar')).verify(neverHappened);
65 m.getLogs(callsTo('foo', 10, anything)).verify(neverHappened); 64 m.getLogs(callsTo('foo', 10, anything)).verify(neverHappened);
66 m.getLogs(callsTo('foo'), returning(anyOf('A', 'C'))). 65 m.getLogs(callsTo('foo'), returning(anyOf('A', 'C'))).
67 verify(happenedExactly(2)); 66 verify(happenedExactly(2));
68 expect(s, 'ACDEB'); 67 expect(s, 'ACDEB');
69 }); 68 });
70 69
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 test('Mocking: No behavior', () { 149 test('Mocking: No behavior', () {
151 var m = new Mock.custom(throwIfNoBehavior:true); 150 var m = new Mock.custom(throwIfNoBehavior:true);
152 m.when(callsTo('foo')).thenReturn(null); 151 m.when(callsTo('foo')).thenReturn(null);
153 expect(() => m.foo(), returnsNormally); 152 expect(() => m.foo(), returnsNormally);
154 expect(() => m.bar(), throwsA((e) => e.toString() == 153 expect(() => m.bar(), throwsA((e) => e.toString() ==
155 'Exception: No behavior specified for method bar.')); 154 'Exception: No behavior specified for method bar.'));
156 }); 155 });
157 156
158 test('Mocking: Shared logList', () { 157 test('Mocking: Shared logList', () {
159 var logList = new LogEntryList(); 158 var logList = new LogEntryList();
160 var m1 = new Mock.custom(name:'m1', log:logList); 159 var m1 = new Mock.custom(name: 'm1', log: logList);
161 var m2 = new Mock.custom(name:'m2', log:logList); 160 var m2 = new Mock.custom(name: 'm2', log: logList);
162 m1.foo(); 161 m1.foo();
163 m2.foo(); 162 m2.foo();
164 m1.bar(); 163 m1.bar();
165 m2.bar(); 164 m2.bar();
166 expect(logList.logs.length, 4); 165 expect(logList.logs.length, 4);
167 logList.getMatches(anything, callsTo('foo')).verify(happenedExactly(2)); 166 logList.getMatches(anything, callsTo('foo')).verify(happenedExactly(2));
168 logList.getMatches('m1', callsTo('foo')).verify(happenedOnce); 167 logList.getMatches('m1', callsTo('foo')).verify(happenedOnce);
169 logList.getMatches('m1', callsTo('bar')).verify(happenedOnce); 168 logList.getMatches('m1', callsTo('bar')).verify(happenedOnce);
170 m2.getLogs(callsTo('foo')).verify(happenedOnce); 169 m2.getLogs(callsTo('foo')).verify(happenedOnce);
171 m2.getLogs(callsTo('bar')).verify(happenedOnce); 170 m2.getLogs(callsTo('bar')).verify(happenedOnce);
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 logList.add(e10); 438 logList.add(e10);
440 439
441 LogEntryList keyList = new LogEntryList('keys'); 440 LogEntryList keyList = new LogEntryList('keys');
442 441
443 // Test with empty key list. 442 // Test with empty key list.
444 443
445 LogEntryList result; 444 LogEntryList result;
446 result = logList.preceding(keyList); 445 result = logList.preceding(keyList);
447 expect(result.logs, hasLength(0)); 446 expect(result.logs, hasLength(0));
448 447
449 result = logList.preceding(keyList, includeKeys:true); 448 result = logList.preceding(keyList, includeKeys: true);
450 expect(result.logs, hasLength(0)); 449 expect(result.logs, hasLength(0));
451 450
452 // Single key, distance 1, no restrictions. 451 // Single key, distance 1, no restrictions.
453 452
454 keyList.add(e3); 453 keyList.add(e3);
455 result = logList.preceding(keyList); 454 result = logList.preceding(keyList);
456 expect(result.logs, orderedEquals([e2])); 455 expect(result.logs, orderedEquals([e2]));
457 456
458 result = logList.following(keyList); 457 result = logList.following(keyList);
459 expect(result.logs, orderedEquals([e4])); 458 expect(result.logs, orderedEquals([e4]));
460 459
461 // Single key, distance 2, no restrictions. 460 // Single key, distance 2, no restrictions.
462 461
463 result = logList.preceding(keyList, distance:2); 462 result = logList.preceding(keyList, distance: 2);
464 expect(result.logs, orderedEquals([e1, e2])); 463 expect(result.logs, orderedEquals([e1, e2]));
465 464
466 result = logList.following(keyList, distance:2); 465 result = logList.following(keyList, distance: 2);
467 expect(result.logs, orderedEquals([e4, e5])); 466 expect(result.logs, orderedEquals([e4, e5]));
468 467
469 // Single key, distance 3, no restrictions. 468 // Single key, distance 3, no restrictions.
470 469
471 result = logList.preceding(keyList, distance:3); 470 result = logList.preceding(keyList, distance: 3);
472 expect(result.logs, orderedEquals([e0, e1, e2])); 471 expect(result.logs, orderedEquals([e0, e1, e2]));
473 472
474 result = logList.following(keyList, distance:3); 473 result = logList.following(keyList, distance: 3);
475 expect(result.logs, orderedEquals([e4, e5, e6])); 474 expect(result.logs, orderedEquals([e4, e5, e6]));
476 475
477 // Include keys in result 476 // Include keys in result
478 477
479 result = logList.preceding(keyList, distance:3, includeKeys:true); 478 result = logList.preceding(keyList, distance: 3, includeKeys: true);
480 expect(result.logs, orderedEquals([e0, e1, e2, e3])); 479 expect(result.logs, orderedEquals([e0, e1, e2, e3]));
481 480
482 result = logList.following(keyList, distance:3, includeKeys:true); 481 result = logList.following(keyList, distance: 3, includeKeys: true);
483 expect(result.logs, orderedEquals([e3, e4, e5, e6])); 482 expect(result.logs, orderedEquals([e3, e4, e5, e6]));
484 483
485 // Restrict the matches 484 // Restrict the matches
486 485
487 result = logList.preceding(keyList, logFilter:callsTo(startsWith('bar')), 486 result = logList.preceding(keyList, logFilter:callsTo(startsWith('bar')),
488 distance:3); 487 distance:3);
489 expect(result.logs, orderedEquals([e1, e2])); 488 expect(result.logs, orderedEquals([e1, e2]));
490 489
491 result = logList.preceding(keyList, logFilter:callsTo(startsWith('bar')), 490 result = logList.preceding(keyList, logFilter:callsTo(startsWith('bar')),
492 distance:3, includeKeys:true); 491 distance:3, includeKeys:true);
(...skipping 11 matching lines...) Expand all
504 keyList.add(e0); 503 keyList.add(e0);
505 keyList.add(e3); 504 keyList.add(e3);
506 keyList.add(e7); 505 keyList.add(e7);
507 506
508 result = logList.preceding(keyList); 507 result = logList.preceding(keyList);
509 expect(result.logs, orderedEquals([e2, e6])); 508 expect(result.logs, orderedEquals([e2, e6]));
510 509
511 result = logList.following(keyList); 510 result = logList.following(keyList);
512 expect(result.logs, orderedEquals([e1, e4, e8])); 511 expect(result.logs, orderedEquals([e1, e4, e8]));
513 512
514 result = logList.preceding(keyList, includeKeys:true); 513 result = logList.preceding(keyList, includeKeys: true);
515 expect(result.logs, orderedEquals([e0, e2, e3, e6, e7])); 514 expect(result.logs, orderedEquals([e0, e2, e3, e6, e7]));
516 515
517 result = logList.following(keyList, includeKeys:true); 516 result = logList.following(keyList, includeKeys: true);
518 expect(result.logs, orderedEquals([e0, e1, e3, e4, e7, e8])); 517 expect(result.logs, orderedEquals([e0, e1, e3, e4, e7, e8]));
519 518
520 keyList.logs.clear(); 519 keyList.logs.clear();
521 keyList.add(e3); 520 keyList.add(e3);
522 keyList.add(e7); 521 keyList.add(e7);
523 keyList.add(e10); 522 keyList.add(e10);
524 523
525 result = logList.preceding(keyList); 524 result = logList.preceding(keyList);
526 expect(result.logs, orderedEquals([e2, e6, e9])); 525 expect(result.logs, orderedEquals([e2, e6, e9]));
527 526
528 result = logList.following(keyList); 527 result = logList.following(keyList);
529 expect(result.logs, orderedEquals([e4, e8])); 528 expect(result.logs, orderedEquals([e4, e8]));
530 529
531 result = logList.preceding(keyList, includeKeys:true); 530 result = logList.preceding(keyList, includeKeys: true);
532 expect(result.logs, orderedEquals([e2, e3, e6, e7, e9, e10])); 531 expect(result.logs, orderedEquals([e2, e3, e6, e7, e9, e10]));
533 532
534 result = logList.following(keyList, includeKeys:true); 533 result = logList.following(keyList, includeKeys: true);
535 expect(result.logs, orderedEquals([e3, e4, e7, e8, e10])); 534 expect(result.logs, orderedEquals([e3, e4, e7, e8, e10]));
536 535
537 keyList.logs.clear(); 536 keyList.logs.clear();
538 keyList.add(e0); 537 keyList.add(e0);
539 keyList.add(e3); 538 keyList.add(e3);
540 keyList.add(e7); 539 keyList.add(e7);
541 keyList.add(e10); 540 keyList.add(e10);
542 541
543 result = logList.preceding(keyList); 542 result = logList.preceding(keyList);
544 expect(result.logs, orderedEquals([e2, e6, e9])); 543 expect(result.logs, orderedEquals([e2, e6, e9]));
545 544
546 result = logList.following(keyList); 545 result = logList.following(keyList);
547 expect(result.logs, orderedEquals([e1, e4, e8])); 546 expect(result.logs, orderedEquals([e1, e4, e8]));
548 547
549 result = logList.preceding(keyList, includeKeys:true); 548 result = logList.preceding(keyList, includeKeys: true);
550 expect(result.logs, orderedEquals([e0, e2, e3, e6, e7, e9, e10])); 549 expect(result.logs, orderedEquals([e0, e2, e3, e6, e7, e9, e10]));
551 550
552 result = logList.following(keyList, includeKeys:true); 551 result = logList.following(keyList, includeKeys: true);
553 expect(result.logs, orderedEquals([e0, e1, e3, e4, e7, e8, e10])); 552 expect(result.logs, orderedEquals([e0, e1, e3, e4, e7, e8, e10]));
554 553
555 keyList.logs.clear(); 554 keyList.logs.clear();
556 keyList.add(e0); 555 keyList.add(e0);
557 keyList.add(e3); 556 keyList.add(e3);
558 keyList.add(e7); 557 keyList.add(e7);
559 558
560 result = logList.preceding(keyList, distance:3); 559 result = logList.preceding(keyList, distance: 3);
561 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6])); 560 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6]));
562 561
563 result = logList.following(keyList, distance:3); 562 result = logList.following(keyList, distance: 3);
564 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6, e8, e9, e10])); 563 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6, e8, e9, e10]));
565 564
566 result = logList.preceding(keyList, distance:3, includeKeys:true); 565 result = logList.preceding(keyList, distance: 3, includeKeys: true);
567 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6, e7])); 566 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6, e7]));
568 567
569 result = logList.following(keyList, distance:3, includeKeys:true); 568 result = logList.following(keyList, distance:3, includeKeys:true);
570 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6, 569 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6,
571 e7, e8, e9, e10])); 570 e7, e8, e9, e10]));
572 571
573 keyList.logs.clear(); 572 keyList.logs.clear();
574 keyList.add(e3); 573 keyList.add(e3);
575 keyList.add(e7); 574 keyList.add(e7);
576 keyList.add(e10); 575 keyList.add(e10);
577 576
578 result = logList.preceding(keyList, distance:3); 577 result = logList.preceding(keyList, distance: 3);
579 expect(result.logs, orderedEquals([e0, e1, e2, e4, e5, e6, e8, e9])); 578 expect(result.logs, orderedEquals([e0, e1, e2, e4, e5, e6, e8, e9]));
580 579
581 result = logList.following(keyList, distance:3); 580 result = logList.following(keyList, distance: 3);
582 expect(result.logs, orderedEquals([e4, e5, e6, e8, e9])); 581 expect(result.logs, orderedEquals([e4, e5, e6, e8, e9]));
583 582
584 result = logList.preceding(keyList, distance:3, includeKeys:true); 583 result = logList.preceding(keyList, distance:3, includeKeys:true);
585 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6, 584 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6,
586 e7, e8, e9, e10])); 585 e7, e8, e9, e10]));
587 586
588 result = logList.following(keyList, distance:3, includeKeys:true); 587 result = logList.following(keyList, distance: 3, includeKeys: true);
589 expect(result.logs, orderedEquals([e3, e4, e5, e6, e7, e8, e9, e10])); 588 expect(result.logs, orderedEquals([e3, e4, e5, e6, e7, e8, e9, e10]));
590 589
591 keyList.logs.clear(); 590 keyList.logs.clear();
592 keyList.add(e0); 591 keyList.add(e0);
593 keyList.add(e3); 592 keyList.add(e3);
594 keyList.add(e7); 593 keyList.add(e7);
595 keyList.add(e10); 594 keyList.add(e10);
596 595
597 result = logList.preceding(keyList, distance:3); 596 result = logList.preceding(keyList, distance: 3);
598 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6, e8, e9])); 597 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6, e8, e9]));
599 598
600 result = logList.following(keyList, distance:3); 599 result = logList.following(keyList, distance: 3);
601 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6, e8, e9])); 600 expect(result.logs, orderedEquals([e1, e2, e4, e5, e6, e8, e9]));
602 601
603 result = logList.preceding(keyList, distance:3, includeKeys:true); 602 result = logList.preceding(keyList, distance:3, includeKeys:true);
604 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6, 603 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6,
605 e7, e8, e9, e10])); 604 e7, e8, e9, e10]));
606 605
607 result = logList.following(keyList, distance:3, includeKeys:true); 606 result = logList.following(keyList, distance:3, includeKeys:true);
608 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6, 607 expect(result.logs, orderedEquals([e0, e1, e2, e3, e4, e5, e6,
609 e7, e8, e9, e10])); 608 e7, e8, e9, e10]));
610 }); 609 });
611 610
612 test('Mocking: stepwiseValidate', () { 611 test('Mocking: stepwiseValidate', () {
613 LogEntryList logList = new LogEntryList('test'); 612 LogEntryList logList = new LogEntryList('test');
614 for (var i = 0; i < 10; i++) { 613 for (var i = 0; i < 10; i++) {
615 LogEntry e = new LogEntry(null, 'foo', [i], Action.IGNORE); 614 LogEntry e = new LogEntry(null, 'foo', [i], Action.IGNORE);
616 logList.add(e); 615 logList.add(e);
617 } 616 }
618 int total = 0; 617 int total = 0;
619 logList.stepwiseValidate((log, pos) { 618 logList.stepwiseValidate((log, pos) {
620 total += log[pos].args[0] * log[pos + 1].args[0]; 619 total += log[pos].args[0] * log[pos + 1].args[0];
621 expect(log[pos + 1].args[0] - log[pos].args[0], equals(1)); 620 expect(log[pos + 1].args[0] - log[pos].args[0], equals(1));
622 return 2; 621 return 2;
623 }); 622 });
624 expect(total, equals((0 * 1) + (2 * 3) + (4 * 5) + (6 * 7) + (8 * 9))); 623 expect(total, equals((0 * 1) + (2 * 3) + (4 * 5) + (6 * 7) + (8 * 9)));
625 }); 624 });
626 625
627 test('Mocking: clearLogs', () { 626 test('Mocking: clearLogs', () {
628 var m = new Mock(); 627 var m = new Mock();
629 m.foo(); 628 m.foo();
630 m.foo(); 629 m.foo();
631 m.foo(); 630 m.foo();
632 expect(m.log.logs, hasLength(3)); 631 expect(m.log.logs, hasLength(3));
(...skipping 10 matching lines...) Expand all
643 } 642 }
644 expect(log.logs, hasLength(9)); 643 expect(log.logs, hasLength(9));
645 m1.clearLogs(); 644 m1.clearLogs();
646 expect(log.logs, hasLength(6)); 645 expect(log.logs, hasLength(6));
647 m1.clearLogs(); 646 m1.clearLogs();
648 expect(log.logs, hasLength(6)); 647 expect(log.logs, hasLength(6));
649 expect(log.logs.every((e) => e.mockName == 'm2' || e.mockName == 'm3'), 648 expect(log.logs.every((e) => e.mockName == 'm2' || e.mockName == 'm3'),
650 isTrue); 649 isTrue);
651 m2.clearLogs(); 650 m2.clearLogs();
652 expect(log.logs, hasLength(3)); 651 expect(log.logs, hasLength(3));
653 expect(log.logs.every((e) => e.mockName =='m3'), isTrue); 652 expect(log.logs.every((e) => e.mockName == 'm3'), isTrue);
654 m3.clearLogs(); 653 m3.clearLogs();
655 expect(log.logs, hasLength(0)); 654 expect(log.logs, hasLength(0));
656 }); 655 });
657 656
658 // TODO(kevmoo): figure out why this test is failing 657 // TODO(kevmoo): figure out why this test is failing
659 skip_test("Mocking: instances", () { 658 skip_test("Mocking: instances", () {
660 var alice = new Object(); 659 var alice = new Object();
661 var bob = new Object(); 660 var bob = new Object();
662 var m = new Mock(); 661 var m = new Mock();
663 m.when(callsTo("foo", alice)).alwaysReturn(true); 662 m.when(callsTo("foo", alice)).alwaysReturn(true);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 test('Spys', () { 727 test('Spys', () {
729 var real = new Foo(); 728 var real = new Foo();
730 var spy = new Mock.spy(real); 729 var spy = new Mock.spy(real);
731 var sum = spy.sum(1, 2, 3); 730 var sum = spy.sum(1, 2, 3);
732 expect(sum, 6); 731 expect(sum, 6);
733 expect(() => spy.total(1, 2, 3), throwsNoSuchMethodError); 732 expect(() => spy.total(1, 2, 3), throwsNoSuchMethodError);
734 spy.getLogs(callsTo('sum')).verify(happenedExactly(1)); 733 spy.getLogs(callsTo('sum')).verify(happenedExactly(1));
735 spy.getLogs(callsTo('total')).verify(happenedExactly(1)); 734 spy.getLogs(callsTo('total')).verify(happenedExactly(1));
736 }); 735 });
737 } 736 }
OLDNEW
« no previous file with comments | « pkg/mock/pubspec.yaml ('k') | pkg/pkg.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698