Commit 9bbdc0616e9008dab217ceacc4caf0b50992bdc0

callbacks specs are extracted to a separate file

Commit diff

spec/lib/strokedb/document/callbacks_spec.rb

 
1describe "Meta module with on_initialization callback" do
2
3 before(:each) do
4 setup_default_store
5 setup_index
6
7 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
8 SomeName = Meta.new do
9 on_initialization do |obj|
10 Kernel.send!(:on_initialization_called,obj.new?)
11 end
12 end
13 end
14
15 it "should receive this callback on meta instantiation" do
16 Kernel.should_receive(:on_initialization_called).with(true)
17 doc = SomeName.new
18 end
19
20 it "should be a sole meta receiving this callback when adding metas dynamically" do
21 Object.send!(:remove_const,'SomeOtherName') if defined?(SomeOtherName)
22 SomeOtherName = Meta.new do
23 on_initialization do |obj|
24 Kernel.send!(:other_on_initialization_called,obj.new?)
25 end
26 end
27 Kernel.should_receive(:other_on_initialization_called).with(true).once
28 doc = SomeOtherName.new
29 Kernel.should_receive(:on_initialization_called).with(true).once
30 doc.metas << SomeName
31 end
32
33end
34
35
36describe "Meta module with on_load callback" do
37
38 before(:each) do
39 setup_default_store
40 setup_index
41 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
42 SomeName = Meta.new do
43 on_load do |obj|
44 Kernel.send!(:on_load_called,obj.new?)
45 end
46 end
47 end
48
49 it "should not receive this callback on meta instantiation" do
50 Kernel.should_not_receive(:on_load_called)
51 doc = SomeName.new
52 end
53
54 it "should receive this callback on document load" do
55 doc = SomeName.create!
56 Kernel.should_receive(:on_load_called).with(false)
57 d = SomeName.find(doc.uuid)
58 end
59
60
61end
62
63describe "Meta module with before_save callback" do
64
65 before(:each) do
66 setup_default_store
67 setup_index
68
69 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
70 SomeName = Meta.new do
71 before_save do |obj|
72 Kernel.send!(:before_save_called,obj.new?)
73 end
74 end
75 end
76
77 it "should initiate callback on Document#save! (before actually saving it)" do
78 s = SomeName.new
79 Kernel.should_receive(:before_save_called).with(true)
80 s.save!
81 end
82
83end
84
85describe "Meta module with after_save callback" do
86
87 before(:each) do
88 setup_default_store
89 setup_index
90
91 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
92 SomeName = Meta.new do
93 after_save do |obj|
94 Kernel.send!(:after_save_called,obj.new?)
95 end
96 end
97 end
98
99 it "should initiate callback on Document#save! (after actually saving it)" do
100 s = SomeName.new
101 Kernel.should_receive(:after_save_called).with(false)
102 s.save!
103 end
104
105end
106
107
108describe "Meta module with on_new_document callback" do
109
110 before(:each) do
111 setup_default_store
112 setup_index
113
114 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
115 SomeName = Meta.new do
116 on_new_document do |obj|
117 Kernel.send!(:on_new_document,obj.new?)
118 end
119 end
120 end
121
122 it "should initiate callback on Document#new" do
123 Kernel.should_receive(:on_new_document).with(true)
124 s = SomeName.new
125 end
126
127 it "should not initiate callback on loaded Document" do
128 Kernel.should_receive(:on_new_document).with(true).once
129 s = SomeName.new
130 s.save!
131 s.reload
132 end
133
134end
toggle raw diff

spec/lib/strokedb/document/meta_spec.rb

 
241241 end
242242
243243end
244describe "Meta module with on_initialization callback" do
245
246 before(:each) do
247 setup_default_store
248 setup_index
249
250 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
251 SomeName = Meta.new do
252 on_initialization do |obj|
253 Kernel.send!(:on_initialization_called,obj.new?)
254 end
255 end
256 end
257
258 it "should receive this callback on meta instantiation" do
259 Kernel.should_receive(:on_initialization_called).with(true)
260 doc = SomeName.new
261 end
262
263 it "should be a sole meta receiving this callback when adding metas dynamically" do
264 Object.send!(:remove_const,'SomeOtherName') if defined?(SomeOtherName)
265 SomeOtherName = Meta.new do
266 on_initialization do |obj|
267 Kernel.send!(:other_on_initialization_called,obj.new?)
268 end
269 end
270 Kernel.should_receive(:other_on_initialization_called).with(true).once
271 doc = SomeOtherName.new
272 Kernel.should_receive(:on_initialization_called).with(true).once
273 doc.metas << SomeName
274 end
275
276end
277
278
279describe "Meta module with on_load callback" do
280
281 before(:each) do
282 setup_default_store
283 setup_index
284 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
285 SomeName = Meta.new do
286 on_load do |obj|
287 Kernel.send!(:on_load_called,obj.new?)
288 end
289 end
290 end
291
292 it "should not receive this callback on meta instantiation" do
293 Kernel.should_not_receive(:on_load_called)
294 doc = SomeName.new
295 end
296
297 it "should receive this callback on document load" do
298 doc = SomeName.create!
299 Kernel.should_receive(:on_load_called).with(false)
300 d = SomeName.find(doc.uuid)
301 end
302
303
304end
305
306describe "Meta module with before_save callback" do
307
308 before(:each) do
309 setup_default_store
310 setup_index
311
312 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
313 SomeName = Meta.new do
314 before_save do |obj|
315 Kernel.send!(:before_save_called,obj.new?)
316 end
317 end
318 end
319
320 it "should initiate callback on Document#save! (before actually saving it)" do
321 s = SomeName.new
322 Kernel.should_receive(:before_save_called).with(true)
323 s.save!
324 end
325
326end
327
328describe "Meta module with after_save callback" do
329
330 before(:each) do
331 setup_default_store
332 setup_index
333
334 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
335 SomeName = Meta.new do
336 after_save do |obj|
337 Kernel.send!(:after_save_called,obj.new?)
338 end
339 end
340 end
341
342 it "should initiate callback on Document#save! (after actually saving it)" do
343 s = SomeName.new
344 Kernel.should_receive(:after_save_called).with(false)
345 s.save!
346 end
347
348end
349
350
351describe "Meta module with on_new_document callback" do
352
353 before(:each) do
354 setup_default_store
355 setup_index
356
357 Object.send!(:remove_const,'SomeName') if defined?(SomeName)
358 SomeName = Meta.new do
359 on_new_document do |obj|
360 Kernel.send!(:on_new_document,obj.new?)
361 end
362 end
363 end
364
365 it "should initiate callback on Document#new" do
366 Kernel.should_receive(:on_new_document).with(true)
367 s = SomeName.new
368 end
369
370 it "should not initiate callback on loaded Document" do
371 Kernel.should_receive(:on_new_document).with(true).once
372 s = SomeName.new
373 s.save!
374 s.reload
375 end
376
377end
378244
379245describe "Combined meta module" do
380246
toggle raw diff