@@ -2,18 +2,16 @@ local Mock = {}
2
2
3
3
4
4
5
- local callbacks
5
+ local subscriber
6
6
7
7
function mockHandle (callback , thunk )
8
- callbacks [ callback ] = true
8
+ subscriber = callback
9
9
thunk ()
10
- callbacks [ callback ] = nil
10
+ subscriber = nil
11
11
end
12
12
13
13
function mockCalled (m , name , args )
14
- for callback in callbacks do
15
- callback (m , name , args )
16
- end
14
+ return subscriber (m , name , args )
17
15
end
18
16
19
17
@@ -136,25 +134,28 @@ end
136
134
137
135
function Mock :mockFunction (name )
138
136
name = name or ' <anonymous>'
139
- local f
137
+ local f = {}
140
138
141
- function f ( ...)
139
+ function fCall ( _ , ...)
142
140
return mockCalled (f , name , table.pack (... ))
143
141
end
144
142
143
+ setmetatable (f , {__call = fCall })
144
+
145
145
return f
146
146
end
147
147
148
148
function Mock :mockMethod (name )
149
149
name = name or ' <anonymous>'
150
- local m
150
+ local m = {}
151
151
152
- function m ( ...)
152
+ function mCall ( _ , _ , ...)
153
153
local args = table.pack (... )
154
- table.remove (args , 1 )
155
154
return mockCalled (m , name , args )
156
155
end
157
156
157
+ setmetatable (m , {__call = mCall })
158
+
158
159
return m
159
160
end
160
161
0 commit comments