followable_test.rb
2.28 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
require_relative "../test_helper"
class FollowableTest < ActiveSupport::TestCase
def setup
@person1 = create_user('perso-test-1').person
@person2 = create_user('person-test-2').person
@external_person = ExternalPerson.create!(identifier: 'johnlocke',
name: 'John Locke',
source: 'anerenvironment.org',
email: 'locke@island.org',
created_at: Date.yesterday)
@circle1 = Circle.create!(owner: @person1, name: "Zombies", profile_type: 'Person')
@circle2 = Circle.create!(owner: @person1, name: "Humans", profile_type: 'Person')
@circle3 = Circle.create!(owner: @external_person, name: "Crypt", profile_type: 'Person')
@external_profile = ExternalProfile.create
end
should 'return all unique circles and followers of a profile' do
@person1.follow(@person2, @circle1)
@person1.follow(@person2, @circle2)
@external_person.follow(@person2, @circle3)
assert_equivalent [@circle1, @circle2, @circle3], @person2.circles
assert_equivalent [@person1, @external_person], @person2.followers
end
should 'return all unique circles and followers of a external profile' do
Circle.any_instance.stubs(:profile_type).returns("ExternalProfile")
@person1.follow(@external_profile, @circle1)
@person1.follow(@external_profile, @circle2)
@external_person.follow(@external_profile, @circle3)
assert_equivalent [@circle1, @circle2, @circle3], @external_profile.circles
assert_equivalent [@person1, @external_person], @external_profile.followers
end
should 'onlyreturn true if profile is in circle' do
@person1.follow(@person2, @circle1)
@external_person.follow(@person2, @circle3)
assert @person2.in_circle? @circle1
assert @person2.in_circle? @circle3
refute @person2.in_circle? @circle2
end
should 'only return true if external profile is in circle' do
Circle.any_instance.stubs(:profile_type).returns("ExternalProfile")
@person1.follow(@external_profile, @circle1)
@external_person.follow(@external_profile, @circle3)
assert @external_profile.in_circle? @circle1
assert @external_profile.in_circle? @circle3
refute @external_profile.in_circle? @circle2
end
end