acts_as_follower_test.rb
2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
require File.dirname(__FILE__) + '/test_helper'
class ActsAsFollowerTest < Test::Unit::TestCase
fixtures :users, :follows, :bands
def test_instance_methods_should_be_defined
assert users(:sam).respond_to?(:following?)
assert users(:sam).respond_to?(:follow_count)
assert users(:sam).respond_to?(:follow)
assert users(:sam).respond_to?(:stop_following)
assert users(:sam).respond_to?(:follows_by_type)
assert users(:sam).respond_to?(:all_follows)
end
def test_following_should_returns_following_status
assert_equal true, users(:sam).following?(users(:jon))
assert_equal false, users(:jon).following?(users(:sam))
end
def test_follow_count_should_return_count_of_followed_users
assert_equal 2, users(:sam).follow_count
assert_equal 0, users(:jon).follow_count
end
def test_follow_should_create_relevant_follow_record
assert_difference "Follow.count", 1 do
assert_difference "users(:jon).follow_count", 1 do
users(:jon).follow(users(:sam))
end
end
assert_equal users(:jon), Follow.last.follower
assert_equal users(:sam), Follow.last.followable
end
def test_stop_following_should_create_relevant_follow_record
assert_difference "Follow.count", -1 do
assert_difference "users(:sam).follow_count", -1 do
users(:sam).stop_following(users(:jon))
end
end
end
def test_follows_by_type_should_return_only_requested_follows
assert_equal [follows(:band)], users(:sam).follows_by_type('Band')
assert_equal [follows(:user)], users(:sam).follows_by_type('User')
end
def test_all_follows_should_return_all_follows
follows = users(:sam).all_follows
assert_equal 2, follows.size
assert follows.include?(follows(:band))
assert follows.include?(follows(:user))
assert_equal [], users(:jon).all_follows
end
def test_all_following_should_return_actual_followed_records
following = users(:sam).all_following
assert_equal 2, following.size
assert following.include?(bands(:oasis))
assert following.include?(users(:jon))
assert_equal [], users(:jon).all_following
end
def test_following_by_type_should_return_only_requested_records
assert_equal [bands(:oasis)], users(:sam).following_by_type('Band')
assert_equal [users(:jon)], users(:sam).following_by_type('User')
end
def test_method_missing_should_call_following_by_type
assert_equal [bands(:oasis)], users(:sam).following_bands
assert_equal [users(:jon)], users(:sam).following_users
end
def test_method_missing_should_raise
assert_raises (NoMethodError){ users(:sam).foobar }
end
end