dirty_hashy 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +7 -0
- data/README.textile +29 -20
- data/VERSION +1 -1
- data/dirty_hashy.gemspec +1 -1
- data/lib/dirty.rb +2 -0
- data/lib/dirty/attributes.rb +39 -0
- data/lib/dirty/hash.rb +108 -0
- data/lib/dirty_hashy.rb +4 -84
- data/lib/dirty_hashy/version.rb +3 -3
- data/lib/dirty_indifferent_hashy.rb +5 -0
- data/test/unit/dirty/test_attributes.rb +176 -0
- data/test/unit/test_dirty_hashy.rb +109 -94
- data/test/unit/test_dirty_indifferent_hashy.rb +500 -0
- metadata +47 -35
- data/lib/dirty_attributes.rb +0 -37
- data/test/unit/test_dirty_attributes.rb +0 -174
@@ -0,0 +1,500 @@
|
|
1
|
+
require File.expand_path("../../test_helper", __FILE__)
|
2
|
+
|
3
|
+
module Unit
|
4
|
+
class TestDirtyIndifferentHashy < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
describe DirtyIndifferentHashy do
|
7
|
+
it "should behave as expected without method mapping and without restricted keys" do
|
8
|
+
hashy = DirtyIndifferentHashy.new
|
9
|
+
|
10
|
+
assert_equal({}, hashy)
|
11
|
+
assert_equal false, hashy.dirty?
|
12
|
+
assert_equal false, hashy.changed?
|
13
|
+
assert_equal({}, hashy.changes)
|
14
|
+
|
15
|
+
assert_raises(NoMethodError) do
|
16
|
+
hashy.name = "Paul"
|
17
|
+
end
|
18
|
+
|
19
|
+
hashy["name"] = "Paul"
|
20
|
+
|
21
|
+
assert_equal true, hashy.dirty?
|
22
|
+
assert_equal true, hashy.changed?
|
23
|
+
assert_equal true, hashy.changed?(:name)
|
24
|
+
assert_equal true, hashy.changed?("name")
|
25
|
+
assert_equal [nil, "Paul"], hashy.change(:name)
|
26
|
+
assert_equal [nil, "Paul"], hashy.change("name")
|
27
|
+
assert_equal({"name" => [nil, "Paul"]}, hashy.changes)
|
28
|
+
|
29
|
+
hashy[:name] = nil
|
30
|
+
|
31
|
+
assert_equal false, hashy.dirty?
|
32
|
+
assert_equal false, hashy.changed?
|
33
|
+
assert_equal false, hashy.changed?(:name)
|
34
|
+
assert_equal false, hashy.changed?("name")
|
35
|
+
assert_equal nil, hashy.change(:name)
|
36
|
+
assert_equal nil, hashy.change("name")
|
37
|
+
assert_equal({}, hashy.changes)
|
38
|
+
|
39
|
+
hashy["name"] = "Stephan"
|
40
|
+
|
41
|
+
assert_equal true, hashy.dirty?
|
42
|
+
assert_equal true, hashy.changed?
|
43
|
+
assert_equal true, hashy.changed?(:name)
|
44
|
+
assert_equal true, hashy.changed?("name")
|
45
|
+
assert_equal [nil, "Stephan"], hashy.change(:name)
|
46
|
+
assert_equal [nil, "Stephan"], hashy.change("name")
|
47
|
+
assert_equal({"name" => [nil, "Stephan"]}, hashy.changes)
|
48
|
+
|
49
|
+
hashy.clean_up!
|
50
|
+
|
51
|
+
assert_equal false, hashy.dirty?
|
52
|
+
assert_equal false, hashy.changed?
|
53
|
+
assert_equal false, hashy.changed?(:name)
|
54
|
+
assert_equal false, hashy.changed?("name")
|
55
|
+
assert_equal nil, hashy.change(:name)
|
56
|
+
assert_equal nil, hashy.change("name")
|
57
|
+
assert_equal({}, hashy.changes)
|
58
|
+
|
59
|
+
hashy["name"] = "Chris"
|
60
|
+
|
61
|
+
assert_equal true, hashy.dirty?
|
62
|
+
assert_equal true, hashy.changed?
|
63
|
+
assert_equal true, hashy.changed?(:name)
|
64
|
+
assert_equal true, hashy.changed?("name")
|
65
|
+
assert_equal ["Stephan", "Chris"], hashy.change(:name)
|
66
|
+
assert_equal ["Stephan", "Chris"], hashy.change("name")
|
67
|
+
assert_equal({"name" => ["Stephan", "Chris"]}, hashy.changes)
|
68
|
+
|
69
|
+
hashy["name"] = "Stephan"
|
70
|
+
|
71
|
+
assert_equal false, hashy.dirty?
|
72
|
+
assert_equal false, hashy.changed?
|
73
|
+
assert_equal false, hashy.changed?(:name)
|
74
|
+
assert_equal false, hashy.changed?("name")
|
75
|
+
assert_equal nil, hashy.change(:name)
|
76
|
+
assert_equal nil, hashy.change("name")
|
77
|
+
assert_equal({}, hashy.changes)
|
78
|
+
|
79
|
+
hashy["name"] = "Paul"
|
80
|
+
|
81
|
+
assert_equal true, hashy.dirty?
|
82
|
+
assert_equal true, hashy.changed?
|
83
|
+
assert_equal true, hashy.changed?(:name)
|
84
|
+
assert_equal true, hashy.changed?("name")
|
85
|
+
assert_equal ["Stephan", "Paul"], hashy.change(:name)
|
86
|
+
assert_equal ["Stephan", "Paul"], hashy.change("name")
|
87
|
+
assert_equal({"name" => ["Stephan", "Paul"]}, hashy.changes)
|
88
|
+
|
89
|
+
hashy["name"] = "Tim"
|
90
|
+
|
91
|
+
assert_equal true, hashy.dirty?
|
92
|
+
assert_equal true, hashy.changed?
|
93
|
+
assert_equal true, hashy.changed?(:name)
|
94
|
+
assert_equal true, hashy.changed?("name")
|
95
|
+
assert_equal ["Stephan", "Tim"], hashy.change(:name)
|
96
|
+
assert_equal ["Stephan", "Tim"], hashy.change("name")
|
97
|
+
assert_equal({"name" => ["Stephan", "Tim"]}, hashy.changes)
|
98
|
+
|
99
|
+
hashy["company"] = "Holder"
|
100
|
+
|
101
|
+
assert_equal true, hashy.dirty?
|
102
|
+
assert_equal true, hashy.changed?
|
103
|
+
assert_equal true, hashy.changed?(:name)
|
104
|
+
assert_equal true, hashy.changed?("name")
|
105
|
+
assert_equal true, hashy.changed?(:company)
|
106
|
+
assert_equal true, hashy.changed?("company")
|
107
|
+
assert_equal ["Stephan", "Tim"], hashy.change(:name)
|
108
|
+
assert_equal ["Stephan", "Tim"], hashy.change("name")
|
109
|
+
assert_equal [nil, "Holder"], hashy.change(:company)
|
110
|
+
assert_equal [nil, "Holder"], hashy.change("company")
|
111
|
+
assert_equal({"name" => ["Stephan", "Tim"], "company" => [nil, "Holder"]}, hashy.changes)
|
112
|
+
|
113
|
+
hashy["city"] = "Amsterdam"
|
114
|
+
assert_equal({"name" => ["Stephan", "Tim"], "company" => [nil, "Holder"], "city" => [nil, "Amsterdam"]}, hashy.changes)
|
115
|
+
|
116
|
+
hashy.delete :city
|
117
|
+
assert_equal({"name" => ["Stephan", "Tim"], "company" => [nil, "Holder"]}, hashy.changes)
|
118
|
+
|
119
|
+
hashy.clean_up!
|
120
|
+
|
121
|
+
assert_equal false, hashy.dirty?
|
122
|
+
assert_equal false, hashy.changed?
|
123
|
+
assert_equal false, hashy.changed?(:name)
|
124
|
+
assert_equal false, hashy.changed?("name")
|
125
|
+
assert_equal false, hashy.changed?(:name)
|
126
|
+
assert_equal false, hashy.changed?("name")
|
127
|
+
assert_equal nil, hashy.change(:company)
|
128
|
+
assert_equal nil, hashy.change("company")
|
129
|
+
assert_equal({}, hashy.changes)
|
130
|
+
|
131
|
+
hashy.delete :company
|
132
|
+
|
133
|
+
assert_equal true, hashy.dirty?
|
134
|
+
assert_equal true, hashy.changed?
|
135
|
+
assert_equal true, hashy.changed?(:company)
|
136
|
+
assert_equal true, hashy.changed?("company")
|
137
|
+
assert_equal "Holder", hashy.was(:company)
|
138
|
+
assert_equal "Holder", hashy.was("company")
|
139
|
+
assert_equal ["Holder", nil], hashy.change(:company)
|
140
|
+
assert_equal ["Holder", nil], hashy.change("company")
|
141
|
+
|
142
|
+
hashy.merge! :name => "Paul", :company => "Internetbureau Holder B.V."
|
143
|
+
|
144
|
+
assert_equal true, hashy.dirty?
|
145
|
+
assert_equal true, hashy.changed?
|
146
|
+
assert_equal true, hashy.changed?(:name)
|
147
|
+
assert_equal true, hashy.changed?("name")
|
148
|
+
assert_equal true, hashy.changed?(:company)
|
149
|
+
assert_equal true, hashy.changed?("company")
|
150
|
+
assert_equal ["Tim", "Paul"], hashy.change(:name)
|
151
|
+
assert_equal ["Tim", "Paul"], hashy.change("name")
|
152
|
+
assert_equal ["Holder", "Internetbureau Holder B.V."], hashy.change(:company)
|
153
|
+
assert_equal ["Holder", "Internetbureau Holder B.V."], hashy.change("company")
|
154
|
+
assert_equal({"name" => ["Tim", "Paul"], "company" => ["Holder", "Internetbureau Holder B.V."]}, hashy.changes)
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should behave as expected without method mapping, but with restricted keys" do
|
158
|
+
hashy = DirtyIndifferentHashy.new({}, false, [:name])
|
159
|
+
|
160
|
+
assert_equal({"name" => nil}, hashy)
|
161
|
+
assert_equal false, hashy.dirty?
|
162
|
+
assert_equal false, hashy.changed?
|
163
|
+
assert_equal({}, hashy.changes)
|
164
|
+
|
165
|
+
assert_raises(NoMethodError) do
|
166
|
+
hashy.name = "Paul"
|
167
|
+
end
|
168
|
+
|
169
|
+
hashy["name"] = "Paul"
|
170
|
+
|
171
|
+
assert_equal true, hashy.dirty?
|
172
|
+
assert_equal true, hashy.changed?
|
173
|
+
assert_equal true, hashy.changed?(:name)
|
174
|
+
assert_equal true, hashy.changed?("name")
|
175
|
+
assert_equal [nil, "Paul"], hashy.change(:name)
|
176
|
+
assert_equal [nil, "Paul"], hashy.change("name")
|
177
|
+
assert_equal({"name" => [nil, "Paul"]}, hashy.changes)
|
178
|
+
|
179
|
+
hashy[:name] = nil
|
180
|
+
|
181
|
+
assert_equal false, hashy.dirty?
|
182
|
+
assert_equal false, hashy.changed?
|
183
|
+
assert_equal false, hashy.changed?(:name)
|
184
|
+
assert_equal false, hashy.changed?("name")
|
185
|
+
assert_equal nil, hashy.change(:name)
|
186
|
+
assert_equal nil, hashy.change("name")
|
187
|
+
assert_equal({}, hashy.changes)
|
188
|
+
|
189
|
+
hashy[:name] = "Stephan"
|
190
|
+
|
191
|
+
assert_equal true, hashy.dirty?
|
192
|
+
assert_equal true, hashy.changed?
|
193
|
+
assert_equal true, hashy.changed?(:name)
|
194
|
+
assert_equal true, hashy.changed?("name")
|
195
|
+
assert_equal [nil, "Stephan"], hashy.change(:name)
|
196
|
+
assert_equal [nil, "Stephan"], hashy.change("name")
|
197
|
+
assert_equal({"name" => [nil, "Stephan"]}, hashy.changes)
|
198
|
+
|
199
|
+
hashy.clean_up!
|
200
|
+
|
201
|
+
assert_equal false, hashy.dirty?
|
202
|
+
assert_equal false, hashy.changed?
|
203
|
+
assert_equal false, hashy.changed?(:name)
|
204
|
+
assert_equal false, hashy.changed?("name")
|
205
|
+
assert_equal nil, hashy.change(:name)
|
206
|
+
assert_equal nil, hashy.change("name")
|
207
|
+
assert_equal({}, hashy.changes)
|
208
|
+
|
209
|
+
hashy["name"] = "Chris"
|
210
|
+
|
211
|
+
assert_equal true, hashy.dirty?
|
212
|
+
assert_equal true, hashy.changed?
|
213
|
+
assert_equal true, hashy.changed?(:name)
|
214
|
+
assert_equal true, hashy.changed?("name")
|
215
|
+
assert_equal "Stephan", hashy.was("name")
|
216
|
+
assert_equal ["Stephan", "Chris"], hashy.change(:name)
|
217
|
+
assert_equal ["Stephan", "Chris"], hashy.change("name")
|
218
|
+
assert_equal({"name" => ["Stephan", "Chris"]}, hashy.changes)
|
219
|
+
|
220
|
+
hashy["name"] = "Stephan"
|
221
|
+
|
222
|
+
assert_equal false, hashy.dirty?
|
223
|
+
assert_equal false, hashy.changed?
|
224
|
+
assert_equal false, hashy.changed?(:name)
|
225
|
+
assert_equal false, hashy.changed?("name")
|
226
|
+
assert_equal nil, hashy.change(:name)
|
227
|
+
assert_equal nil, hashy.change("name")
|
228
|
+
assert_equal({}, hashy.changes)
|
229
|
+
|
230
|
+
hashy["name"] = "Paul"
|
231
|
+
|
232
|
+
assert_equal true, hashy.dirty?
|
233
|
+
assert_equal true, hashy.changed?
|
234
|
+
assert_equal true, hashy.changed?(:name)
|
235
|
+
assert_equal true, hashy.changed?("name")
|
236
|
+
assert_equal ["Stephan", "Paul"], hashy.change(:name)
|
237
|
+
assert_equal ["Stephan", "Paul"], hashy.change("name")
|
238
|
+
assert_equal({"name" => ["Stephan", "Paul"]}, hashy.changes)
|
239
|
+
|
240
|
+
hashy["name"] = "Tim"
|
241
|
+
|
242
|
+
assert_equal true, hashy.dirty?
|
243
|
+
assert_equal true, hashy.changed?
|
244
|
+
assert_equal true, hashy.changed?(:name)
|
245
|
+
assert_equal true, hashy.changed?("name")
|
246
|
+
assert_equal ["Stephan", "Tim"], hashy.change(:name)
|
247
|
+
assert_equal ["Stephan", "Tim"], hashy.change("name")
|
248
|
+
assert_equal({"name" => ["Stephan", "Tim"]}, hashy.changes)
|
249
|
+
|
250
|
+
hashy.clean_up!
|
251
|
+
hashy.merge! :name => "Paul"
|
252
|
+
|
253
|
+
assert_equal true, hashy.dirty?
|
254
|
+
assert_equal true, hashy.changed?
|
255
|
+
assert_equal true, hashy.changed?(:name)
|
256
|
+
assert_equal true, hashy.changed?("name")
|
257
|
+
assert_equal ["Tim", "Paul"], hashy.change(:name)
|
258
|
+
assert_equal ["Tim", "Paul"], hashy.change("name")
|
259
|
+
assert_equal({"name" => ["Tim", "Paul"]}, hashy.changes)
|
260
|
+
|
261
|
+
assert_raises(IndexError) do
|
262
|
+
hashy[:company]
|
263
|
+
end
|
264
|
+
|
265
|
+
assert_raises(IndexError) do
|
266
|
+
hashy["company"] = "Holder"
|
267
|
+
end
|
268
|
+
|
269
|
+
assert_raises(IndexError) do
|
270
|
+
hashy.delete :company
|
271
|
+
end
|
272
|
+
|
273
|
+
assert_raises(IndexError) do
|
274
|
+
hashy.changed? :company
|
275
|
+
end
|
276
|
+
|
277
|
+
assert_raises(IndexError) do
|
278
|
+
hashy.change :company
|
279
|
+
end
|
280
|
+
|
281
|
+
assert_raises(IndexError) do
|
282
|
+
hashy.was :company
|
283
|
+
end
|
284
|
+
|
285
|
+
assert_raises(IndexError) do
|
286
|
+
hashy.merge! :name => "Paul", :company => "Internetbureau Holder B.V."
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should behave as expected with method mapping and without restricted keys" do
|
291
|
+
hashy = DirtyIndifferentHashy.new({}, true)
|
292
|
+
|
293
|
+
assert_equal({}, hashy)
|
294
|
+
assert_equal false, hashy.dirty?
|
295
|
+
assert_equal false, hashy.changed?
|
296
|
+
assert_equal({}, hashy.changes)
|
297
|
+
|
298
|
+
assert_raises(NoMethodError) do
|
299
|
+
hashy.name
|
300
|
+
end
|
301
|
+
|
302
|
+
hashy.name = "Paul"
|
303
|
+
|
304
|
+
assert_equal "Paul", hashy.name
|
305
|
+
assert_equal true, hashy.dirty?
|
306
|
+
assert_equal true, hashy.changed?
|
307
|
+
assert_equal true, hashy.name_changed?
|
308
|
+
assert_equal true, hashy.changed?(:name)
|
309
|
+
assert_equal [nil, "Paul"], hashy.name_change
|
310
|
+
assert_equal [nil, "Paul"], hashy.change(:name)
|
311
|
+
assert_equal({"name" => [nil, "Paul"]}, hashy.changes)
|
312
|
+
|
313
|
+
hashy.name = nil
|
314
|
+
|
315
|
+
assert_equal false, hashy.dirty?
|
316
|
+
assert_equal false, hashy.changed?
|
317
|
+
assert_equal false, hashy.name_changed?
|
318
|
+
assert_equal false, hashy.changed?(:name)
|
319
|
+
assert_equal nil, hashy.name_change
|
320
|
+
assert_equal nil, hashy.change(:name)
|
321
|
+
assert_equal({}, hashy.changes)
|
322
|
+
|
323
|
+
hashy.name = "Stephan"
|
324
|
+
|
325
|
+
assert_equal true, hashy.dirty?
|
326
|
+
assert_equal true, hashy.changed?
|
327
|
+
assert_equal true, hashy.name_changed?
|
328
|
+
assert_equal true, hashy.changed?(:name)
|
329
|
+
assert_equal [nil, "Stephan"], hashy.name_change
|
330
|
+
assert_equal [nil, "Stephan"], hashy.change(:name)
|
331
|
+
assert_equal({"name" => [nil, "Stephan"]}, hashy.changes)
|
332
|
+
|
333
|
+
hashy.clean_up!
|
334
|
+
|
335
|
+
assert_equal false, hashy.dirty?
|
336
|
+
assert_equal false, hashy.changed?
|
337
|
+
assert_equal false, hashy.name_changed?
|
338
|
+
assert_equal false, hashy.changed?(:name)
|
339
|
+
assert_equal nil, hashy.name_change
|
340
|
+
assert_equal nil, hashy.change(:name)
|
341
|
+
assert_equal({}, hashy.changes)
|
342
|
+
|
343
|
+
hashy.name = "Chris"
|
344
|
+
|
345
|
+
assert_equal true, hashy.dirty?
|
346
|
+
assert_equal true, hashy.changed?
|
347
|
+
assert_equal true, hashy.name_changed?
|
348
|
+
assert_equal true, hashy.changed?(:name)
|
349
|
+
assert_equal "Stephan", hashy.name_was
|
350
|
+
assert_equal "Stephan", hashy.was(:name)
|
351
|
+
assert_equal ["Stephan", "Chris"], hashy.name_change
|
352
|
+
assert_equal ["Stephan", "Chris"], hashy.change(:name)
|
353
|
+
assert_equal({"name" => ["Stephan", "Chris"]}, hashy.changes)
|
354
|
+
|
355
|
+
hashy.name = "Stephan"
|
356
|
+
|
357
|
+
assert_equal false, hashy.dirty?
|
358
|
+
assert_equal false, hashy.changed?
|
359
|
+
assert_equal false, hashy.name_changed?
|
360
|
+
assert_equal false, hashy.changed?(:name)
|
361
|
+
assert_equal nil, hashy.name_change
|
362
|
+
assert_equal nil, hashy.change(:name)
|
363
|
+
assert_equal({}, hashy.changes)
|
364
|
+
|
365
|
+
hashy.name = "Tim"
|
366
|
+
hashy.city = "Amsterdam"
|
367
|
+
|
368
|
+
assert_equal true, hashy.city_changed?
|
369
|
+
assert_equal true, hashy.changed?(:city)
|
370
|
+
assert_equal nil, hashy.city_was
|
371
|
+
assert_equal [nil, "Amsterdam"], hashy.city_change
|
372
|
+
assert_equal({"name" => ["Stephan", "Tim"], "city" => [nil, "Amsterdam"]}, hashy.changes)
|
373
|
+
|
374
|
+
hashy.delete :city
|
375
|
+
assert_equal({"name" => ["Stephan", "Tim"]}, hashy.changes)
|
376
|
+
|
377
|
+
hashy.merge! :company => "Internetbureau Holder B.V."
|
378
|
+
|
379
|
+
assert_equal true, hashy.dirty?
|
380
|
+
assert_equal true, hashy.changed?
|
381
|
+
assert_equal true, hashy.changed?(:name)
|
382
|
+
assert_equal true, hashy.changed?("name")
|
383
|
+
assert_equal true, hashy.changed?(:company)
|
384
|
+
assert_equal true, hashy.changed?("company")
|
385
|
+
assert_equal ["Stephan", "Tim"], hashy.change(:name)
|
386
|
+
assert_equal ["Stephan", "Tim"], hashy.change("name")
|
387
|
+
assert_equal [nil, "Internetbureau Holder B.V."], hashy.change(:company)
|
388
|
+
assert_equal [nil, "Internetbureau Holder B.V."], hashy.change("company")
|
389
|
+
assert_equal({"name" => ["Stephan", "Tim"], "company" => [nil, "Internetbureau Holder B.V."]}, hashy.changes)
|
390
|
+
|
391
|
+
hashy.clean_up!
|
392
|
+
|
393
|
+
assert_equal false, hashy.dirty?
|
394
|
+
assert_equal false, hashy.changed?
|
395
|
+
end
|
396
|
+
|
397
|
+
it "should behave as expected with method mapping and with restricted keys" do
|
398
|
+
hashy = DirtyIndifferentHashy.new({}, true, [:name])
|
399
|
+
|
400
|
+
assert_equal({"name" => nil}, hashy)
|
401
|
+
assert_equal nil, hashy.name
|
402
|
+
assert_equal false, hashy.dirty?
|
403
|
+
assert_equal false, hashy.changed?
|
404
|
+
assert_equal({}, hashy.changes)
|
405
|
+
|
406
|
+
hashy.name = "Paul"
|
407
|
+
|
408
|
+
assert_equal "Paul", hashy.name
|
409
|
+
assert_equal true, hashy.dirty?
|
410
|
+
assert_equal true, hashy.changed?
|
411
|
+
assert_equal true, hashy.name_changed?
|
412
|
+
assert_equal true, hashy.changed?(:name)
|
413
|
+
assert_equal [nil, "Paul"], hashy.name_change
|
414
|
+
assert_equal [nil, "Paul"], hashy.change(:name)
|
415
|
+
assert_equal({"name" => [nil, "Paul"]}, hashy.changes)
|
416
|
+
|
417
|
+
hashy.name = nil
|
418
|
+
|
419
|
+
assert_equal false, hashy.dirty?
|
420
|
+
assert_equal false, hashy.changed?
|
421
|
+
assert_equal false, hashy.name_changed?
|
422
|
+
assert_equal false, hashy.changed?(:name)
|
423
|
+
assert_equal nil, hashy.name_change
|
424
|
+
assert_equal nil, hashy.change(:name)
|
425
|
+
assert_equal({}, hashy.changes)
|
426
|
+
|
427
|
+
hashy.name = "Stephan"
|
428
|
+
|
429
|
+
assert_equal true, hashy.dirty?
|
430
|
+
assert_equal true, hashy.changed?
|
431
|
+
assert_equal true, hashy.name_changed?
|
432
|
+
assert_equal true, hashy.changed?(:name)
|
433
|
+
assert_equal [nil, "Stephan"], hashy.name_change
|
434
|
+
assert_equal [nil, "Stephan"], hashy.change(:name)
|
435
|
+
assert_equal({"name" => [nil, "Stephan"]}, hashy.changes)
|
436
|
+
|
437
|
+
hashy.clean_up!
|
438
|
+
|
439
|
+
assert_equal false, hashy.dirty?
|
440
|
+
assert_equal false, hashy.changed?
|
441
|
+
assert_equal false, hashy.name_changed?
|
442
|
+
assert_equal false, hashy.changed?(:name)
|
443
|
+
assert_equal nil, hashy.name_change
|
444
|
+
assert_equal nil, hashy.change(:name)
|
445
|
+
assert_equal({}, hashy.changes)
|
446
|
+
|
447
|
+
hashy.name = "Chris"
|
448
|
+
|
449
|
+
assert_equal true, hashy.dirty?
|
450
|
+
assert_equal true, hashy.changed?
|
451
|
+
assert_equal true, hashy.name_changed?
|
452
|
+
assert_equal true, hashy.changed?(:name)
|
453
|
+
assert_equal "Stephan", hashy.name_was
|
454
|
+
assert_equal "Stephan", hashy.was(:name)
|
455
|
+
assert_equal ["Stephan", "Chris"], hashy.name_change
|
456
|
+
assert_equal ["Stephan", "Chris"], hashy.change(:name)
|
457
|
+
assert_equal({"name" => ["Stephan", "Chris"]}, hashy.changes)
|
458
|
+
|
459
|
+
hashy.name = "Stephan"
|
460
|
+
|
461
|
+
assert_equal false, hashy.dirty?
|
462
|
+
assert_equal false, hashy.changed?
|
463
|
+
assert_equal false, hashy.name_changed?
|
464
|
+
assert_equal false, hashy.changed?(:name)
|
465
|
+
assert_equal nil, hashy.name_change
|
466
|
+
assert_equal nil, hashy.change(:name)
|
467
|
+
assert_equal({}, hashy.changes)
|
468
|
+
|
469
|
+
assert_raises(NoMethodError) do
|
470
|
+
hashy.company
|
471
|
+
end
|
472
|
+
|
473
|
+
assert_raises(NoMethodError) do
|
474
|
+
hashy.company = "Holder"
|
475
|
+
end
|
476
|
+
|
477
|
+
assert_raises(IndexError) do
|
478
|
+
hashy.delete :company
|
479
|
+
end
|
480
|
+
|
481
|
+
assert_raises(NoMethodError) do
|
482
|
+
hashy.company_changed?
|
483
|
+
end
|
484
|
+
|
485
|
+
assert_raises(NoMethodError) do
|
486
|
+
hashy.company_change
|
487
|
+
end
|
488
|
+
|
489
|
+
assert_raises(NoMethodError) do
|
490
|
+
hashy.company_was
|
491
|
+
end
|
492
|
+
|
493
|
+
assert_raises(IndexError) do
|
494
|
+
hashy.merge! :name => "Paul", :company => "Internetbureau Holder B.V."
|
495
|
+
end
|
496
|
+
end
|
497
|
+
end
|
498
|
+
|
499
|
+
end
|
500
|
+
end
|