Commit 11e22a9caeff4abf4a4bb3f4d05ce5c8e0143358

Authored by Luciano Prestes
Committed by Gust
1 parent c1e933f5

Functional test for add and remove institutions for user into edit profile

(institution_fields)

Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
test/functional/profile_editor_controller_test.rb
... ... @@ -13,37 +13,81 @@ class ProfileEditorControllerTest &lt; ActionController::TestCase
13 13 Environment.default.affiliate(@profile, [Environment::Roles.admin(Environment.default.id)] + Profile::Roles.all_roles(Environment.default.id))
14 14 @environment = Environment.default
15 15 @environment.enabled_plugins = ['MpogSoftwarePlugin']
16   -
17   - @govPower = GovernmentalPower.create(:name=>"Some Gov Power")
18   - @govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere")
19   -
20 16 admin = create_user("adminuser").person
21 17 admin.stubs(:has_permission?).returns("true")
22 18 login_as('adminuser')
23   -
24 19 @environment.add_admin(admin)
25 20 @environment.save
  21 +
  22 + @govPower = GovernmentalPower.create(:name => "Some Gov Power")
  23 + @govSphere = GovernmentalSphere.create(:name => "Some Gov Sphere")
  24 + @juridical_nature = JuridicalNature.create(:name => "Autarquia")
  25 +
26 26 end
27 27  
28   - should "update institution date_modification in your creation" do
29   - institution = create_public_institution("Ministerio Publico da Uniao", "MPU", @govPower, @govSphere)
30   - institution.date_modification = "Invalid Date"
  28 + should "update institution date_modification when edit profile" do
  29 + create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
31 30  
32   - post :edit, :profile => Institution.last.community.identifier, :profile_data => {:name => "Ministerio da Saude"}, :institution => institution
  31 + post :edit, :profile => Institution.last.community.identifier, :profile_data => {:name => "Ministerio da Saude"}, :institution => Institution.last
33 32  
34 33 date = Time.now.day.to_s + "/" + Time.now.month.to_s + "/" + Time.now.year.to_s
35 34 assert_equal date, Institution.last.date_modification
36 35 end
37 36  
  37 + should "add new institution for user into edit profile" do
  38 + institutions = []
  39 + institutions << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
  40 + institutions << create_public_institution("Nova Instituicao", "NIN", "BR", "GO", "Goiania", @juridical_nature, @govPower, @govSphere)
  41 + user = fast_create(User)
  42 + user.person = fast_create(Person)
  43 + user.person.user = user
  44 + user.save!
  45 + user.person.save!
  46 +
  47 + params_user = Hash.new
  48 + params_user[:institution_ids] = []
  49 + institutions.each do |institution|
  50 + params_user[:institution_ids] << institution.id
  51 + end
  52 +
  53 + post :edit, :profile => User.last.person.identifier, :user => params_user
  54 +
  55 + assert_equal institutions.count, User.last.institutions.count
  56 + end
  57 +
  58 + should "remove institutions for user into edit profile" do
  59 + user = fast_create(User)
  60 + user.person = fast_create(Person)
  61 +
  62 + user.institutions << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere)
  63 + user.institutions << create_public_institution("Nova Instituicao", "NIN", "BR", "GO", "Goiania", @juridical_nature, @govPower, @govSphere)
  64 +
  65 + user.person.user = user
  66 + user.save!
  67 + user.person.save!
  68 +
  69 + params_user = Hash.new
  70 + params_user[:institution_ids] = []
  71 +
  72 + post :edit, :profile => User.last.person.identifier, :user => params_user
  73 +
  74 + assert_equal 0, User.last.institutions.count
  75 + end
  76 +
38 77 private
39 78  
40   - def create_public_institution name, acronym, gov_p, gov_s
  79 + def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s
41 80 institution_community = fast_create(Community)
42 81 institution_community.name = name
  82 + institution_community.country = country
  83 + institution_community.state = state
  84 + institution_community.city = city
  85 + institution_community.save!
43 86  
44 87 institution = PublicInstitution.new
45 88 institution.community = institution_community
46 89 institution.name = name
  90 + institution.juridical_nature = juridical_nature
47 91 institution.acronym = acronym
48 92 institution.governmental_power = gov_p
49 93 institution.governmental_sphere = gov_s
... ... @@ -51,4 +95,4 @@ class ProfileEditorControllerTest &lt; ActionController::TestCase
51 95 institution
52 96 end
53 97  
54   -end
55 98 \ No newline at end of file
  99 +end
... ...