profile_editor_controller_test.rb
2.92 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
require File.dirname(__FILE__) + '/../../../../test/test_helper'
require File.dirname(__FILE__) + '/../helpers/institution_test_helper'
require(
File.dirname(__FILE__) +
'/../../../../app/controllers/my_profile/profile_editor_controller'
)
class ProfileEditorController; def rescue_action(e) raise e end; end
class ProfileEditorControllerTest < ActionController::TestCase
def setup
@controller = ProfileEditorController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@profile = create_user('default_user').person
Environment.default.affiliate(
@profile,
[Environment::Roles.admin(Environment.default.id)] +
Profile::Roles.all_roles(Environment.default.id)
)
@environment = Environment.default
@environment.enabled_plugins = ['GovUserPlugin']
admin = create_user("adminuser").person
admin.stubs(:has_permission?).returns("true")
login_as('adminuser')
@environment.add_admin(admin)
@environment.save
@govPower = GovernmentalPower.create(:name=>"Some Gov Power")
@govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
@juridical_nature = JuridicalNature.create(:name => "Autarquia")
@institution_list = []
@institution_list << InstitutionTestHelper.create_public_institution(
"Ministerio Publico da Uniao",
"MPU",
"BR",
"DF",
"Gama",
@juridical_nature,
@govPower,
@govSphere,
"12.345.678/9012-45"
)
@institution_list << InstitutionTestHelper.create_public_institution(
"Tribunal Regional da Uniao",
"TRU",
"BR",
"DF",
"Brasilia",
@juridical_nature,
@govPower,
@govSphere,
"12.345.678/9012-90"
)
end
should "add new institution for user into edit profile" do
user = create_basic_user
params_user = Hash.new
params_user[:institution_ids] = []
@institution_list.each do |institution|
params_user[:institution_ids] << institution.id
end
post :edit, :profile => User.last.person.identifier, :user => params_user
assert_equal @institution_list.count, User.last.institutions.count
end
should "remove institutions for user into edit profile" do
user = create_basic_user
@institution_list.each do |institution|
user.institutions << institution
end
user.save!
params_user = Hash.new
params_user[:institution_ids] = []
assert_equal @institution_list.count, User.last.institutions.count
post :edit, :profile => User.last.person.identifier, :user => params_user
assert_equal 0, User.last.institutions.count
end
protected
def create_basic_user
user = fast_create(User)
user.person = fast_create(Person)
user.person.user = user
user.save!
user.person.save!
user
end
def create_community name
community = fast_create(Community)
community.name = name
community.save
community
end
end