pwnash-mongo_mapper 0.7.5 → 0.7.6

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.
Files changed (108) hide show
  1. data/lib/mongo_mapper.rb +6 -8
  2. data/lib/mongo_mapper/document.rb +6 -281
  3. data/lib/mongo_mapper/embedded_document.rb +5 -45
  4. data/lib/mongo_mapper/extensions.rb +190 -0
  5. data/lib/mongo_mapper/plugins.rb +27 -18
  6. data/lib/mongo_mapper/plugins/associations.rb +7 -6
  7. data/lib/mongo_mapper/plugins/associations/base.rb +1 -0
  8. data/lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb +1 -0
  9. data/lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb +1 -0
  10. data/lib/mongo_mapper/plugins/associations/collection.rb +1 -0
  11. data/lib/mongo_mapper/plugins/associations/embedded_collection.rb +1 -0
  12. data/lib/mongo_mapper/plugins/associations/in_array_proxy.rb +2 -1
  13. data/lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb +1 -0
  14. data/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb +4 -4
  15. data/lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb +1 -0
  16. data/lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb +1 -0
  17. data/lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb +1 -0
  18. data/lib/mongo_mapper/plugins/associations/one_embedded_proxy.rb +1 -0
  19. data/lib/mongo_mapper/plugins/associations/one_proxy.rb +1 -0
  20. data/lib/mongo_mapper/plugins/associations/proxy.rb +1 -0
  21. data/lib/mongo_mapper/plugins/callbacks.rb +4 -3
  22. data/lib/mongo_mapper/plugins/clone.rb +1 -0
  23. data/lib/mongo_mapper/plugins/descendants.rb +1 -0
  24. data/lib/mongo_mapper/plugins/dirty.rb +1 -0
  25. data/lib/mongo_mapper/plugins/document.rb +40 -0
  26. data/lib/mongo_mapper/plugins/dynamic_querying.rb +42 -0
  27. data/lib/mongo_mapper/{support/find.rb → plugins/dynamic_querying/dynamic_finder.rb} +2 -36
  28. data/lib/mongo_mapper/plugins/embedded_document.rb +48 -0
  29. data/lib/mongo_mapper/plugins/equality.rb +1 -0
  30. data/lib/mongo_mapper/plugins/identity_map.rb +8 -11
  31. data/lib/mongo_mapper/plugins/indexes.rb +11 -0
  32. data/lib/mongo_mapper/plugins/inspect.rb +1 -0
  33. data/lib/mongo_mapper/plugins/keys.rb +7 -9
  34. data/lib/mongo_mapper/plugins/keys/key.rb +12 -2
  35. data/lib/mongo_mapper/plugins/logger.rb +1 -0
  36. data/lib/mongo_mapper/plugins/modifiers.rb +3 -2
  37. data/lib/mongo_mapper/plugins/pagination.rb +1 -0
  38. data/lib/mongo_mapper/plugins/pagination/proxy.rb +1 -0
  39. data/lib/mongo_mapper/plugins/persistence.rb +1 -0
  40. data/lib/mongo_mapper/plugins/protected.rb +1 -0
  41. data/lib/mongo_mapper/plugins/query_logger.rb +5 -10
  42. data/lib/mongo_mapper/plugins/querying.rb +236 -0
  43. data/lib/mongo_mapper/plugins/rails.rb +1 -0
  44. data/lib/mongo_mapper/plugins/sci.rb +31 -0
  45. data/lib/mongo_mapper/plugins/serialization.rb +1 -0
  46. data/lib/mongo_mapper/plugins/timestamps.rb +1 -0
  47. data/lib/mongo_mapper/plugins/userstamps.rb +1 -0
  48. data/lib/mongo_mapper/plugins/validations.rb +5 -1
  49. data/lib/mongo_mapper/query.rb +53 -120
  50. data/lib/mongo_mapper/support.rb +2 -213
  51. data/lib/mongo_mapper/support/descendant_appends.rb +3 -6
  52. data/lib/mongo_mapper/version.rb +2 -1
  53. metadata +156 -190
  54. data/.gitignore +0 -10
  55. data/Rakefile +0 -37
  56. data/mongo_mapper.gemspec +0 -216
  57. data/performance/read_write.rb +0 -52
  58. data/specs.watchr +0 -51
  59. data/test/NOTE_ON_TESTING +0 -1
  60. data/test/active_model_lint_test.rb +0 -13
  61. data/test/functional/associations/test_belongs_to_polymorphic_proxy.rb +0 -63
  62. data/test/functional/associations/test_belongs_to_proxy.rb +0 -101
  63. data/test/functional/associations/test_in_array_proxy.rb +0 -325
  64. data/test/functional/associations/test_many_documents_as_proxy.rb +0 -229
  65. data/test/functional/associations/test_many_documents_proxy.rb +0 -536
  66. data/test/functional/associations/test_many_embedded_polymorphic_proxy.rb +0 -176
  67. data/test/functional/associations/test_many_embedded_proxy.rb +0 -256
  68. data/test/functional/associations/test_many_polymorphic_proxy.rb +0 -302
  69. data/test/functional/associations/test_one_embedded_proxy.rb +0 -68
  70. data/test/functional/associations/test_one_proxy.rb +0 -196
  71. data/test/functional/test_associations.rb +0 -44
  72. data/test/functional/test_binary.rb +0 -27
  73. data/test/functional/test_callbacks.rb +0 -151
  74. data/test/functional/test_dirty.rb +0 -163
  75. data/test/functional/test_document.rb +0 -1219
  76. data/test/functional/test_embedded_document.rb +0 -210
  77. data/test/functional/test_identity_map.rb +0 -507
  78. data/test/functional/test_indexing.rb +0 -44
  79. data/test/functional/test_logger.rb +0 -20
  80. data/test/functional/test_modifiers.rb +0 -416
  81. data/test/functional/test_pagination.rb +0 -93
  82. data/test/functional/test_protected.rb +0 -163
  83. data/test/functional/test_string_id_compatibility.rb +0 -67
  84. data/test/functional/test_timestamps.rb +0 -64
  85. data/test/functional/test_userstamps.rb +0 -28
  86. data/test/functional/test_validations.rb +0 -342
  87. data/test/models.rb +0 -227
  88. data/test/support/custom_matchers.rb +0 -37
  89. data/test/support/timing.rb +0 -16
  90. data/test/test_helper.rb +0 -64
  91. data/test/unit/associations/test_base.rb +0 -212
  92. data/test/unit/associations/test_proxy.rb +0 -105
  93. data/test/unit/serializers/test_json_serializer.rb +0 -202
  94. data/test/unit/test_descendant_appends.rb +0 -71
  95. data/test/unit/test_document.rb +0 -225
  96. data/test/unit/test_dynamic_finder.rb +0 -123
  97. data/test/unit/test_embedded_document.rb +0 -657
  98. data/test/unit/test_keys.rb +0 -216
  99. data/test/unit/test_mongo_mapper.rb +0 -118
  100. data/test/unit/test_pagination.rb +0 -160
  101. data/test/unit/test_plugins.rb +0 -50
  102. data/test/unit/test_query.rb +0 -374
  103. data/test/unit/test_rails.rb +0 -181
  104. data/test/unit/test_rails_compatibility.rb +0 -52
  105. data/test/unit/test_serialization.rb +0 -51
  106. data/test/unit/test_support.rb +0 -390
  107. data/test/unit/test_time_zones.rb +0 -39
  108. data/test/unit/test_validations.rb +0 -544
@@ -1,325 +0,0 @@
1
- require 'test_helper'
2
-
3
- class InArrayProxyTest < Test::Unit::TestCase
4
- context "description" do
5
- setup do
6
- class ::List
7
- include MongoMapper::Document
8
- key :name, String, :required => true
9
- end
10
-
11
- class ::User
12
- include MongoMapper::Document
13
- key :name, String, :required => true
14
- key :list_ids, Array
15
- many :lists, :in => :list_ids
16
- end
17
- User.collection.remove
18
- List.collection.remove
19
- end
20
-
21
- teardown do
22
- Object.send :remove_const, 'List' if defined?(::List)
23
- Object.send :remove_const, 'User' if defined?(::User)
24
- end
25
-
26
- should "default reader to empty array" do
27
- User.new.lists.should == []
28
- end
29
-
30
- should "allow adding to association like it was an array" do
31
- user = User.new(:name => 'John')
32
- user.lists << List.new(:name => 'Foo1!')
33
- user.lists.push List.new(:name => 'Foo2!')
34
- user.lists.concat List.new(:name => 'Foo3!')
35
- user.lists.size.should == 3
36
- end
37
-
38
- should "ignore adding duplicate ids" do
39
- user = User.create(:name => 'John')
40
- list = List.create(:name => 'Foo')
41
- user.lists << list
42
- user.lists << list
43
- user.lists << list
44
-
45
- user.list_ids.should == [list.id]
46
- user.lists.count.should == 1
47
- end
48
-
49
- should "be able to replace the association" do
50
- user = User.new(:name => 'John')
51
- list = List.new(:name => 'Foo')
52
- user.lists = [list]
53
- user.save.should be_true
54
-
55
- user.reload
56
- user.list_ids.should == [list.id]
57
- user.lists.size.should == 1
58
- user.lists[0].name.should == 'Foo'
59
- end
60
-
61
- context "create" do
62
- setup do
63
- @user = User.create(:name => 'John')
64
- @list = @user.lists.create(:name => 'Foo!')
65
- end
66
-
67
- should "add id to key" do
68
- @user.list_ids.should include(@list.id)
69
- end
70
-
71
- should "persist id addition to key in database" do
72
- @user.reload
73
- @user.list_ids.should include(@list.id)
74
- end
75
-
76
- should "add doc to association" do
77
- @user.lists.should include(@list)
78
- end
79
-
80
- should "save doc" do
81
- @list.should_not be_new
82
- end
83
-
84
- should "reset cache" do
85
- @user.lists.size.should == 1
86
- @user.lists.create(:name => 'Moo!')
87
- @user.lists.size.should == 2
88
- end
89
- end
90
-
91
- context "create!" do
92
- setup do
93
- @user = User.create(:name => 'John')
94
- @list = @user.lists.create!(:name => 'Foo!')
95
- end
96
-
97
- should "add id to key" do
98
- @user.list_ids.should include(@list.id)
99
- end
100
-
101
- should "persist id addition to key in database" do
102
- @user.reload
103
- @user.list_ids.should include(@list.id)
104
- end
105
-
106
- should "add doc to association" do
107
- @user.lists.should include(@list)
108
- end
109
-
110
- should "save doc" do
111
- @list.should_not be_new
112
- end
113
-
114
- should "raise exception if invalid" do
115
- assert_raises(MongoMapper::DocumentNotValid) do
116
- @user.lists.create!
117
- end
118
- end
119
-
120
- should "reset cache" do
121
- @user.lists.size.should == 1
122
- @user.lists.create!(:name => 'Moo!')
123
- @user.lists.size.should == 2
124
- end
125
- end
126
-
127
- context "Finding scoped to association" do
128
- setup do
129
- @user = User.create(:name => 'John')
130
- @user2 = User.create(:name => 'Brandon')
131
- @list1 = @user.lists.create!(:name => 'Foo 1', :position => 1)
132
- @list2 = @user.lists.create!(:name => 'Foo 2', :position => 2)
133
- @list3 = @user2.lists.create!(:name => 'Foo 3', :position => 1)
134
- end
135
-
136
- context "all" do
137
- should "work" do
138
- @user.lists.find(:all, :order => :position.asc).should == [@list1, @list2]
139
- @user.lists.all(:order => :position.asc).should == [@list1, @list2]
140
- end
141
-
142
- should "work with conditions" do
143
- @user.lists.find(:all, :name => 'Foo 1').should == [@list1]
144
- @user.lists.all(:name => 'Foo 1').should == [@list1]
145
- end
146
- end
147
-
148
- context "first" do
149
- should "work" do
150
- @user.lists.find(:first, :order => 'position').should == @list1
151
- @user.lists.first(:order => 'position').should == @list1
152
- end
153
-
154
- should "work with conditions" do
155
- @user.lists.find(:first, :position => 2).should == @list2
156
- @user.lists.first(:position => 2).should == @list2
157
- end
158
- end
159
-
160
- context "last" do
161
- should "work" do
162
- @user.lists.find(:last, :order => 'position').should == @list2
163
- @user.lists.last(:order => 'position').should == @list2
164
- end
165
-
166
- should "work with conditions" do
167
- @user.lists.find(:last, :position => 2, :order => 'position').should == @list2
168
- @user.lists.last(:position => 2, :order => 'position').should == @list2
169
- end
170
- end
171
-
172
- context "with one id" do
173
- should "work for id in association" do
174
- @user.lists.find(@list1.id).should == @list1
175
- end
176
-
177
- should "work with string ids" do
178
- @user.lists.find(@list1.id.to_s).should == @list1
179
- end
180
-
181
- should "not work for id not in association" do
182
- @user.lists.find(@list3.id).should be_nil
183
- end
184
-
185
- should "raise error when using ! and not found" do
186
- assert_raises MongoMapper::DocumentNotFound do
187
- @user.lists.find!(@list3.id)
188
- end
189
- end
190
- end
191
-
192
- context "with multiple ids" do
193
- should "work for ids in association" do
194
- @user.lists.find(@list1.id, @list2.id).should == [@list1, @list2]
195
- end
196
-
197
- should "not work for ids not in association" do
198
- @user.lists.find(@list1.id, @list2.id, @list3.id).should == [@list1, @list2]
199
- end
200
- end
201
-
202
- context "with #paginate" do
203
- setup do
204
- @lists = @user.lists.paginate(:per_page => 1, :page => 1, :order => 'position')
205
- end
206
-
207
- should "return total pages" do
208
- @lists.total_pages.should == 2
209
- end
210
-
211
- should "return total entries" do
212
- @lists.total_entries.should == 2
213
- end
214
-
215
- should "return the subject" do
216
- @lists.collect(&:name).should == ['Foo 1']
217
- end
218
- end
219
-
220
- context "dynamic finders" do
221
- should "work with single key" do
222
- @user.lists.find_by_name('Foo 1').should == @list1
223
- @user.lists.find_by_name!('Foo 1').should == @list1
224
- @user.lists.find_by_name('Foo 3').should be_nil
225
- end
226
-
227
- should "work with multiple keys" do
228
- @user.lists.find_by_name_and_position('Foo 1', 1).should == @list1
229
- @user.lists.find_by_name_and_position!('Foo 1', 1).should == @list1
230
- @user.lists.find_by_name_and_position('Foo 3', 1).should be_nil
231
- end
232
-
233
- should "raise error when using ! and not found" do
234
- assert_raises(MongoMapper::DocumentNotFound) do
235
- @user.lists.find_by_name!('Foo 3')
236
- end
237
- end
238
-
239
- context "find_or_create_by" do
240
- should "not create document if found" do
241
- lambda {
242
- list = @user.lists.find_or_create_by_name('Foo 1')
243
- list.should == @list1
244
- }.should_not change { List.count }
245
- end
246
-
247
- should "create document if not found" do
248
- lambda {
249
- list = @user.lists.find_or_create_by_name('Home')
250
- @user.lists.should include(list)
251
- }.should change { List.count }
252
- end
253
- end
254
- end
255
- end
256
-
257
- context "count" do
258
- setup do
259
- @user = User.create(:name => 'John')
260
- @user2 = User.create(:name => 'Brandon')
261
- @list1 = @user.lists.create!(:name => 'Foo 1')
262
- @list2 = @user.lists.create!(:name => 'Foo 2')
263
- @list3 = @user2.lists.create!(:name => 'Foo 3')
264
- end
265
-
266
- should "return number of ids" do
267
- @user.lists.count.should == 2
268
- @user2.lists.count.should == 1
269
- end
270
-
271
- should "return correct count when given criteria" do
272
- @user.lists.count(:name => 'Foo 1').should == 1
273
- @user2.lists.count(:name => 'Foo 1').should == 0
274
- end
275
- end
276
-
277
- context "Removing documents" do
278
- setup do
279
- @user = User.create(:name => 'John')
280
- @user2 = User.create(:name => 'Brandon')
281
- @list1 = @user.lists.create!(:name => 'Foo 1', :position => 1)
282
- @list2 = @user.lists.create!(:name => 'Foo 2', :position => 2)
283
- @list3 = @user2.lists.create!(:name => 'Foo 3', :position => 1)
284
- end
285
-
286
- context "destroy_all" do
287
- should "work" do
288
- @user.lists.count.should == 2
289
- @user.lists.destroy_all
290
- @user.lists.count.should == 0
291
- end
292
-
293
- should "work with conditions" do
294
- @user.lists.count.should == 2
295
- @user.lists.destroy_all(:name => 'Foo 1')
296
- @user.lists.count.should == 1
297
- end
298
- end
299
-
300
- context "delete_all" do
301
- should "work" do
302
- @user.lists.count.should == 2
303
- @user.lists.delete_all
304
- @user.lists.count.should == 0
305
- end
306
-
307
- should "work with conditions" do
308
- @user.lists.count.should == 2
309
- @user.lists.delete_all(:name => 'Foo 1')
310
- @user.lists.count.should == 1
311
- end
312
- end
313
-
314
- should "work with nullify" do
315
- @user.lists.count.should == 2
316
-
317
- lambda {
318
- @user.lists.nullify
319
- }.should_not change { List.count }
320
-
321
- @user.lists.count.should == 0
322
- end
323
- end
324
- end
325
- end
@@ -1,229 +0,0 @@
1
- require 'test_helper'
2
- require 'models'
3
-
4
- class ManyDocumentsAsProxyTest < Test::Unit::TestCase
5
- def setup
6
- Post.collection.remove
7
- PostComment.collection.remove
8
- end
9
-
10
- should "default reader to empty array" do
11
- Post.new.comments.should == []
12
- end
13
-
14
- should "add type and id key to polymorphic class base" do
15
- PostComment.keys.keys.should include('commentable_type')
16
- PostComment.keys.keys.should include('commentable_id')
17
- end
18
-
19
- should "allow adding to association like it was an array" do
20
- post = Post.new
21
- post.comments << PostComment.new(:body => 'foo bar')
22
- post.comments << PostComment.new(:body => 'baz')
23
- post.comments.concat PostComment.new(:body => 'baz')
24
-
25
- post.comments.size.should == 3
26
- end
27
-
28
- should "be able to replace the association" do
29
- post = Post.new
30
-
31
- lambda {
32
- post.comments = [
33
- PostComment.new(:body => 'foo'),
34
- PostComment.new(:body => 'bar'),
35
- PostComment.new(:body => 'baz')
36
- ]
37
- }.should change { PostComment.count }.by(3)
38
-
39
- post = post.reload
40
- post.comments.size.should == 3
41
- bodies = post.comments.collect(&:body)
42
- bodies.should include('foo')
43
- bodies.should include('bar')
44
- bodies.should include('baz')
45
- end
46
-
47
- context "build" do
48
- should "assign foreign key" do
49
- post = Post.new
50
- comment = post.comments.build
51
- comment.commentable_id.should == post._id
52
- end
53
-
54
- should "assign _type" do
55
- post = Post.new
56
- comment = post.comments.build
57
- comment.commentable_type.should == "Post"
58
- end
59
-
60
- should "allow assigning attributes" do
61
- post = Post.new
62
- comment = post.comments.build(:body => 'foo bar')
63
- comment.body.should == 'foo bar'
64
- end
65
- end
66
-
67
- context "create" do
68
- should "assign foreign key" do
69
- post = Post.new
70
- comment = post.comments.create
71
- comment.commentable_id.should == post._id
72
- end
73
-
74
- should "assign _type" do
75
- post = Post.new
76
- comment = post.comments.create
77
- comment.commentable_type.should == "Post"
78
- end
79
-
80
- should "save record" do
81
- post = Post.new
82
- lambda {
83
- post.comments.create(:body => 'baz')
84
- }.should change { PostComment.count }
85
- end
86
-
87
- should "allow passing attributes" do
88
- post = Post.create
89
- comment = post.comments.create(:body => 'foo bar')
90
- comment.body.should == 'foo bar'
91
- end
92
- end
93
-
94
- context "count" do
95
- should "work scoped to association" do
96
- post = Post.create
97
- 3.times { post.comments.create(:body => 'foo bar') }
98
-
99
- other_post = Post.create
100
- 2.times { other_post.comments.create(:body => 'baz') }
101
-
102
- post.comments.count.should == 3
103
- other_post.comments.count.should == 2
104
- end
105
-
106
- should "work with conditions" do
107
- post = Post.create
108
- post.comments.create(:body => 'foo bar')
109
- post.comments.create(:body => 'baz')
110
- post.comments.create(:body => 'foo bar')
111
-
112
- post.comments.count(:body => 'foo bar').should == 2
113
- end
114
- end
115
-
116
- context "Finding scoped to association" do
117
- setup do
118
- @post = Post.new
119
-
120
- @comment1 = PostComment.create(:body => 'comment1', :name => 'John')
121
- @comment2 = PostComment.create(:body => 'comment2', :name => 'Steve')
122
- @comment3 = PostComment.create(:body => 'comment3', :name => 'John')
123
- @post.comments = [@comment1, @comment2]
124
- @post.save
125
-
126
- @post2 = Post.create(:body => "post #2")
127
- @comment4 = PostComment.create(:body => 'comment1', :name => 'Chas')
128
- @comment5 = PostComment.create(:body => 'comment2', :name => 'Dan')
129
- @comment6 = PostComment.create(:body => 'comment3', :name => 'Ed')
130
- @post2.comments = [@comment4, @comment5, @comment6]
131
- @post2.save
132
- end
133
-
134
- context "with #all" do
135
- should "work" do
136
- @post.comments.all.should include(@comment1)
137
- @post.comments.all.should include(@comment2)
138
- end
139
-
140
- should "work with conditions" do
141
- comments = @post.comments.all(:body => 'comment1')
142
- comments.should == [@comment1]
143
- end
144
-
145
- should "work with order" do
146
- comments = @post.comments.all(:order => 'body desc')
147
- comments.should == [@comment2, @comment1]
148
- end
149
- end
150
-
151
- context "with one id" do
152
- should "work for id in association" do
153
- @post.comments.find(@comment2._id).should == @comment2
154
- end
155
-
156
- should "not work for id not in association" do
157
- assert_raises(MongoMapper::DocumentNotFound) do
158
- @post.comments.find!(@comment5._id)
159
- end
160
- end
161
- end
162
-
163
- context "with multiple ids" do
164
- should "work for ids in association" do
165
- posts = @post.comments.find!(@comment1._id, @comment2._id)
166
- posts.should == [@comment1, @comment2]
167
- end
168
-
169
- should "not work for ids not in association" do
170
- assert_raises(MongoMapper::DocumentNotFound) do
171
- @post.comments.find!(@comment1._id, @comment2._id, @comment4._id)
172
- end
173
- end
174
- end
175
-
176
- context "dynamic finders" do
177
- should "work with single key" do
178
- @post.comments.find_by_body('comment1').should == @comment1
179
- @post2.comments.find_by_body('comment1').should == @comment4
180
- end
181
-
182
- should "work with multiple keys" do
183
- @post.comments.find_by_body_and_name('comment1', 'John').should == @comment1
184
- @post.comments.find_by_body_and_name('comment1', 'Frank').should be_nil
185
- end
186
-
187
- should "raise error when using !" do
188
- lambda {
189
- @post.comments.find_by_body!('asdf')
190
- }.should raise_error(MongoMapper::DocumentNotFound)
191
- end
192
-
193
- context "find_or_create_by" do
194
- should "not create document if found" do
195
- lambda {
196
- comment = @post.comments.find_or_create_by_name('Steve')
197
- comment.commentable.should == @post
198
- comment.should == @comment2
199
- }.should_not change { PostComment.count }
200
- end
201
-
202
- should "create document if not found" do
203
- lambda {
204
- @post.comments.find_or_create_by_name('Chas')
205
- }.should change { PostComment.count }.by(1)
206
- end
207
- end
208
- end
209
-
210
- context "with #paginate" do
211
- setup do
212
- @comments = @post2.comments.paginate(:per_page => 2, :page => 1, :order => 'name')
213
- end
214
-
215
- should "return total pages" do
216
- @comments.total_pages.should == 2
217
- end
218
-
219
- should "return total entries" do
220
- @comments.total_entries.should == 3
221
- end
222
-
223
- should "return the subject" do
224
- @comments.should include(@comment4)
225
- @comments.should include(@comment5)
226
- end
227
- end
228
- end
229
- end