1
+ import { Foo } from "./utils/Foo" ;
2
+ import { mock , instance , verify , reset , anything } from "../src/ts-mockito" ;
3
+
4
+ describe ( "resetting mocked object" , ( ) => {
5
+ let mockedFoo : Foo ;
6
+ let foo : Foo ;
7
+
8
+ beforeEach ( ( ) => {
9
+ mockedFoo = mock ( Foo ) ;
10
+ foo = instance ( mockedFoo ) ;
11
+ } ) ;
12
+
13
+ describe ( "when method has been called once" , ( ) => {
14
+ describe ( "but later stub has been reset" , ( ) => {
15
+ it ( "shows that never been called" , ( ) => {
16
+ // given
17
+ foo . getBar ( ) ;
18
+ verify ( mockedFoo . getBar ( ) ) . once ( ) ;
19
+
20
+ // when
21
+ reset ( mockedFoo ) ;
22
+
23
+ // then
24
+ verify ( mockedFoo . getBar ( ) ) . never ( ) ;
25
+ } ) ;
26
+ } ) ;
27
+ } ) ;
28
+
29
+ describe ( "when method has been called thrice" , ( ) => {
30
+ describe ( "but later stub has been reset" , ( ) => {
31
+ it ( "shows that never been called" , ( ) => {
32
+ // given
33
+ foo . getBar ( ) ;
34
+ foo . getBar ( ) ;
35
+ foo . getBar ( ) ;
36
+ verify ( mockedFoo . getBar ( ) ) . thrice ( ) ;
37
+
38
+ // when
39
+ reset ( mockedFoo ) ;
40
+
41
+ // then
42
+ verify ( mockedFoo . getBar ( ) ) . never ( ) ;
43
+ } ) ;
44
+ } ) ;
45
+ } ) ;
46
+
47
+ describe ( "when method has been called with arguments twice" , ( ) => {
48
+ describe ( "but later stub has been reset" , ( ) => {
49
+ it ( "shows that never been called" , ( ) => {
50
+ // given
51
+ foo . sumTwoNumbers ( 2 , 3 ) ;
52
+ foo . sumTwoNumbers ( 2 , 3 ) ;
53
+ verify ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) . twice ( ) ;
54
+
55
+ // when
56
+ reset ( mockedFoo ) ;
57
+
58
+ // then
59
+ verify ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) . never ( ) ;
60
+ verify ( mockedFoo . sumTwoNumbers ( anything ( ) , anything ( ) ) ) . never ( ) ;
61
+ } ) ;
62
+ } ) ;
63
+ } ) ;
64
+
65
+ describe ( "when two different methods has been called twice" , ( ) => {
66
+ describe ( "but later stub has been reset" , ( ) => {
67
+ it ( "shows that never been called" , ( ) => {
68
+ // given
69
+ foo . getBar ( ) ;
70
+ foo . getBar ( ) ;
71
+ foo . sumTwoNumbers ( 2 , 3 ) ;
72
+ foo . sumTwoNumbers ( 2 , 3 ) ;
73
+ verify ( mockedFoo . getBar ( ) ) . twice ( ) ;
74
+ verify ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) . twice ( ) ;
75
+
76
+ // when
77
+ reset ( mockedFoo ) ;
78
+
79
+ // then
80
+ verify ( mockedFoo . getBar ( ) ) . never ( ) ;
81
+ verify ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) . never ( ) ;
82
+ verify ( mockedFoo . sumTwoNumbers ( anything ( ) , anything ( ) ) ) . never ( ) ;
83
+ } ) ;
84
+ } ) ;
85
+ } ) ;
86
+
87
+ describe ( "when two different methods has been called" , ( ) => {
88
+ describe ( "but later stub has been reset" , ( ) => {
89
+ it ( "throws exception with information that methods has not been called" , ( ) => {
90
+ // given
91
+ foo . getBar ( ) ;
92
+ foo . sumTwoNumbers ( 2 , 3 ) ;
93
+ verify ( mockedFoo . getBar ( ) ) . calledBefore ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) ;
94
+
95
+ // when
96
+ reset ( mockedFoo ) ;
97
+
98
+ // then
99
+ try {
100
+ verify ( mockedFoo . getBar ( ) ) . calledBefore ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) ;
101
+ fail ( ) ;
102
+ } catch ( e ) {
103
+ expect ( e . message ) . toContain ( 'to be called before' ) ;
104
+ expect ( e . message ) . toContain ( 'but none of them has been called' ) ;
105
+ }
106
+ } ) ;
107
+ } ) ;
108
+ } ) ;
109
+
110
+ describe ( "when two different methods has been after" , ( ) => {
111
+ describe ( "but later stub has been reset" , ( ) => {
112
+ it ( "throws exception with information that methods has not been called" , ( ) => {
113
+ // given
114
+ foo . getBar ( ) ;
115
+ foo . sumTwoNumbers ( 2 , 3 ) ;
116
+ verify ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) . calledAfter ( mockedFoo . getBar ( ) ) ;
117
+
118
+ // when
119
+ reset ( mockedFoo ) ;
120
+
121
+ // then
122
+ try {
123
+ verify ( mockedFoo . sumTwoNumbers ( 2 , 3 ) ) . calledAfter ( mockedFoo . getBar ( ) ) ;
124
+ fail ( ) ;
125
+ } catch ( e ) {
126
+ expect ( e . message ) . toContain ( 'to be called after' ) ;
127
+ expect ( e . message ) . toContain ( 'but none of them has been called' ) ;
128
+ }
129
+ } ) ;
130
+ } ) ;
131
+ } ) ;
132
+ } ) ;
0 commit comments