| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |