Rework DiaryEntry and DiaryComment model tests to use factories.
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 7 Sep 2016 15:26:27 +0000 (16:26 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 7 Sep 2016 15:27:21 +0000 (16:27 +0100)
Since the database also contains fixtures from other tests, some
counts are dropped and instead tested for inclusion in the results.

test/factories/diary_comments.rb [new file with mode: 0644]
test/factories/diary_entries.rb [new file with mode: 0644]
test/models/diary_comment_test.rb
test/models/diary_entry_test.rb

diff --git a/test/factories/diary_comments.rb b/test/factories/diary_comments.rb
new file mode 100644 (file)
index 0000000..810bd2f
--- /dev/null
@@ -0,0 +1,10 @@
+FactoryGirl.define do
+  factory :diary_comment do
+    sequence(:body) { |n| "This is diary comment #{n}" }
+
+    diary_entry
+
+    # Fixme requires User Factory
+    user_id 1
+  end
+end
diff --git a/test/factories/diary_entries.rb b/test/factories/diary_entries.rb
new file mode 100644 (file)
index 0000000..d00a97d
--- /dev/null
@@ -0,0 +1,9 @@
+FactoryGirl.define do
+  factory :diary_entry do
+    sequence(:title) { |n| "Diary entry #{n}" }
+    sequence(:body) { |n| "This is diary entry #{n}" }
+
+    # Fixme requires User Factory
+    user_id 1
+  end
+end
index a32c153f9a7eac6784e33100a7468836affbe8bb..13d035ce7096800096dd5773dd9a30ec891243e0 100644 (file)
@@ -1,10 +1,8 @@
 require "test_helper"
 
 class DiaryCommentTest < ActiveSupport::TestCase
-  api_fixtures
-  fixtures :diary_comments
-
   def test_diary_comment_count
-    assert_equal 4, DiaryComment.count
+    comment = create(:diary_comment)
+    assert_includes DiaryComment.all, comment
   end
 end
index 58e6513a642042069a4940a2686d3b82adac8634..ba70c5228a796593b4fe124e4f68daaf432b8869 100644 (file)
@@ -1,13 +1,6 @@
 require "test_helper"
 
 class DiaryEntryTest < ActiveSupport::TestCase
-  api_fixtures
-  fixtures :diary_entries, :diary_comments, :languages
-
-  def test_diary_entry_count
-    assert_equal 6, DiaryEntry.count
-  end
-
   def test_diary_entry_validations
     diary_entry_valid({})
     diary_entry_valid({ :title => "" }, false)
@@ -25,26 +18,32 @@ class DiaryEntryTest < ActiveSupport::TestCase
   end
 
   def test_diary_entry_visible
-    assert_equal 5, DiaryEntry.visible.count
+    visible = create(:diary_entry)
+    hidden = create(:diary_entry, :visible => false)
+    assert_includes DiaryEntry.visible, visible
     assert_raise ActiveRecord::RecordNotFound do
-      DiaryEntry.visible.find(diary_entries(:deleted_entry).id)
+      DiaryEntry.visible.find(hidden.id)
     end
   end
 
   def test_diary_entry_comments
-    assert_equal 0, diary_entries(:normal_user_entry_1).comments.count
-    assert_equal 4, diary_entries(:normal_user_geo_entry).comments.count
+    diary = create(:diary_entry)
+    create(:diary_comment, :diary_entry => diary)
+    assert_equal(1, diary.comments.count)
   end
 
   def test_diary_entry_visible_comments
-    assert_equal 0, diary_entries(:normal_user_entry_1).visible_comments.count
-    assert_equal 1, diary_entries(:normal_user_geo_entry).visible_comments.count
+    diary = create(:diary_entry)
+    create(:diary_comment, :diary_entry => diary)
+    create(:diary_comment, :diary_entry => diary, :visible => false)
+    assert_equal 1, diary.visible_comments.count
+    assert_equal 2, diary.comments.count
   end
 
   private
 
   def diary_entry_valid(attrs, result = true)
-    entry = DiaryEntry.new(diary_entries(:normal_user_entry_1).attributes)
+    entry = DiaryEntry.new(attributes_for(:diary_entry))
     entry.assign_attributes(attrs)
     assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
   end