Commit ccc53a309872248683ad35cb48d3afe35b6e4c1f

Authored by Leandro Santos
1 parent dd30815a

creating new tests for followers stuff

test/unit/article_test.rb
... ... @@ -22,21 +22,6 @@ class ArticleTest < ActiveSupport::TestCase
22 22 refute a.errors[:profile_id.to_s].present?
23 23 end
24 24  
25   - should 'keep unique users in list of followers' do
26   - person1 = create_user('article_owner').person
27   - person2 = create_user('article_follower').person
28   -
29   - article = fast_create(Article, :profile_id => person1.id)
30   -
31   - article.person_followers=[person2]
32   - article.save
33   - article.reload
34   - article.person_followers=[person2]
35   - article.save
36   -
37   - assert_equal 1, article.reload.person_followers.size
38   - end
39   -
40 25 should 'require value for name' do
41 26 a = Article.new
42 27 a.valid?
... ... @@ -1713,11 +1698,6 @@ class ArticleTest < ActiveSupport::TestCase
1713 1698 assert post.allow_edit?(author)
1714 1699 end
1715 1700  
1716   - should 'has a empty list of followers by default' do
1717   - a = Article.new
1718   - assert_equal [], a.person_followers
1719   - end
1720   -
1721 1701 should 'get first image from lead' do
1722 1702 a = fast_create(Article, :body => '<p>Foo</p><p><img src="bar.png" />Bar<img src="foo.png" /></p>',
1723 1703 :abstract => '<p>Lead</p><p><img src="leadbar.png" />Bar<img src="leadfoo.png" /></p>')
... ... @@ -2269,5 +2249,44 @@ class ArticleTest &lt; ActiveSupport::TestCase
2269 2249 end
2270 2250 end
2271 2251  
  2252 + should 'the owner not in followers list' do
  2253 + person1 = create_user('article_owner').person
  2254 + person2 = create_user('article_follower').person
  2255 +
  2256 + article = fast_create(Article, :profile_id => person1.id)
  2257 +
  2258 + article.person_followers=[person2]
  2259 + article.save
  2260 + article.reload
  2261 + article.person_followers=[person2]
  2262 + article.save
  2263 +
  2264 + assert_equal [person2], article.reload.person_followers
  2265 + end
  2266 +
  2267 + should 'has a empty list of followers by default' do
  2268 + a = Article.new
  2269 + assert_equal [], a.person_followers
  2270 + end
  2271 +
  2272 + should 'a follower not be duplicated' do
  2273 + follower = create_user('article_follower').person
  2274 +
  2275 + article = fast_create(Article, :profile_id => fast_create(Person))
  2276 +
  2277 + article.person_followers<< follower
  2278 + assert_raises (ActiveRecord::RecordNotUnique) { article.person_followers<< follower }
  2279 + end
  2280 +
  2281 + should 'an article be follower by many users' do
  2282 + article = fast_create(Article, :profile_id => fast_create(Person))
  2283 +
  2284 + 1.upto(10).map do |n|
  2285 + article.person_followers<< fast_create(Person)
  2286 + end
  2287 + article.save
  2288 + assert_equal 10, article.reload.person_followers.count
  2289 + end
  2290 +
2272 2291  
2273 2292 end
... ...
test/unit/person_test.rb
... ... @@ -1934,4 +1934,14 @@ class PersonTest &lt; ActiveSupport::TestCase
1934 1934 assert !person.member_relation_of(community).empty?, "Person '#{person.identifier}' is not a member of Community '#{community.identifier}'"
1935 1935 assert person.member_since_date(community) == Date.today,"Person '#{person.identifier}' is not added like a member of Community '#{community.identifier}' today"
1936 1936 end
  1937 +
  1938 + should 'a person follows many articles' do
  1939 + person = create_user('article_follower').person
  1940 +
  1941 + 1.upto(10).map do |n|
  1942 + person.following_articles << fast_create(Article, :profile_id => fast_create(Person))
  1943 + end
  1944 + assert_equal 10, person.following_articles.count
  1945 + end
  1946 +
1937 1947 end
... ...