profile_editor_controller_test.rb
3.77 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
require File.dirname(__FILE__) + '/../../../../test/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 = ['MpogSoftwarePlugin']
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")
end
should "update institution date_modification when edit profile" do
create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
post :edit, :profile => Institution.last.community.identifier, :profile_data => {:name => "Ministerio da Saude"}, :institution => Institution.last
date = Time.now.day.to_s + "/" + Time.now.month.to_s + "/" + Time.now.year.to_s
assert_equal date, Institution.last.date_modification
end
should "add new institution for user into edit profile" do
institutions = []
institutions << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
institutions << create_public_institution("Nova Instituicao", "NIN", "BR", "GO", "Goiania", @juridical_nature, @govPower, @govSphere)
user = fast_create(User)
user.person = fast_create(Person)
user.person.user = user
user.save!
user.person.save!
params_user = Hash.new
params_user[:institution_ids] = []
institutions.each do |institution|
params_user[:institution_ids] << institution.id
end
post :edit, :profile => User.last.person.identifier, :user => params_user
assert_equal institutions.count, User.last.institutions.count
end
should "remove institutions for user into edit profile" do
user = fast_create(User)
user.person = fast_create(Person)
user.institutions << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
user.institutions << create_public_institution("Nova Instituicao", "NIN", "BR", "GO", "Goiania", @juridical_nature, @govPower, @govSphere)
user.person.user = user
user.save!
user.person.save!
params_user = Hash.new
params_user[:institution_ids] = []
post :edit, :profile => User.last.person.identifier, :user => params_user
assert_equal 0, User.last.institutions.count
end
private
def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s
institution_community = fast_create(Community)
institution_community.name = name
institution_community.country = country
institution_community.state = state
institution_community.city = city
institution_community.save!
institution = PublicInstitution.new
institution.community = institution_community
institution.name = name
institution.juridical_nature = juridical_nature
institution.acronym = acronym
institution.governmental_power = gov_p
institution.governmental_sphere = gov_s
institution.save!
institution
end
end