[Git][noosfero/noosfero][master] creating new tests for followers stuff

Leandro Nunes gitlab at mg.gitlab.com
Wed Mar 9 16:34:57 BRT 2016


Leandro Nunes pushed to branch master at Noosfero / noosfero


Commits:
ccc53a30 by Leandro Nunes dos Santos at 2016-03-09T16:32:55-03:00
creating new tests for followers stuff

- - - - -


2 changed files:

- test/unit/article_test.rb
- test/unit/person_test.rb


Changes:

=====================================
test/unit/article_test.rb
=====================================
--- a/test/unit/article_test.rb
+++ b/test/unit/article_test.rb
@@ -22,21 +22,6 @@ class ArticleTest < ActiveSupport::TestCase
     refute a.errors[:profile_id.to_s].present?
   end
 
-  should 'keep unique users in list of followers' do
-    person1 = create_user('article_owner').person
-    person2 = create_user('article_follower').person
-
-    article = fast_create(Article, :profile_id => person1.id)
-
-    article.person_followers=[person2]
-    article.save
-    article.reload
-    article.person_followers=[person2]
-    article.save
-
-    assert_equal 1, article.reload.person_followers.size
-  end
-
   should 'require value for name' do
     a = Article.new
     a.valid?
@@ -1713,11 +1698,6 @@ class ArticleTest < ActiveSupport::TestCase
     assert post.allow_edit?(author)
   end
 
-  should 'has a empty list of followers by default' do
-    a = Article.new
-    assert_equal [], a.person_followers
-  end
-
   should 'get first image from lead' do
     a = fast_create(Article, :body => '<p>Foo</p><p><img src="bar.png" />Bar<img src="foo.png" /></p>',
                              :abstract => '<p>Lead</p><p><img src="leadbar.png" />Bar<img src="leadfoo.png" /></p>')
@@ -2269,5 +2249,44 @@ class ArticleTest < ActiveSupport::TestCase
     end
   end
 
+  should 'the owner not in followers list' do
+    person1 = create_user('article_owner').person
+    person2 = create_user('article_follower').person
+
+    article = fast_create(Article, :profile_id => person1.id)
+
+    article.person_followers=[person2]
+    article.save
+    article.reload
+    article.person_followers=[person2]
+    article.save
+
+    assert_equal [person2], article.reload.person_followers
+  end
+
+  should 'has a empty list of followers by default' do
+    a = Article.new
+    assert_equal [], a.person_followers
+  end
+
+  should 'a follower not be duplicated' do
+    follower = create_user('article_follower').person
+
+    article = fast_create(Article, :profile_id => fast_create(Person))
+
+    article.person_followers<< follower
+    assert_raises (ActiveRecord::RecordNotUnique) { article.person_followers<< follower }
+  end
+
+  should 'an article be follower by many users' do
+    article = fast_create(Article, :profile_id => fast_create(Person))
+
+    1.upto(10).map do |n|
+      article.person_followers<< fast_create(Person)
+    end
+    article.save
+    assert_equal 10, article.reload.person_followers.count
+  end
+
 
 end


=====================================
test/unit/person_test.rb
=====================================
--- a/test/unit/person_test.rb
+++ b/test/unit/person_test.rb
@@ -1934,4 +1934,14 @@ class PersonTest < ActiveSupport::TestCase
     assert !person.member_relation_of(community).empty?, "Person '#{person.identifier}' is not a member of Community '#{community.identifier}'"
     assert person.member_since_date(community) == Date.today,"Person '#{person.identifier}' is not added like a member of Community '#{community.identifier}' today"
   end
+
+  should 'a person follows many articles' do
+    person = create_user('article_follower').person
+  
+    1.upto(10).map do |n|
+      person.following_articles <<  fast_create(Article, :profile_id => fast_create(Person))
+    end
+    assert_equal 10, person.following_articles.count
+  end
+
 end



View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/ccc53a309872248683ad35cb48d3afe35b6e4c1f
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20160309/1d80e903/attachment-0001.html>


More information about the Noosfero-dev mailing list