From 11e22a9caeff4abf4a4bb3f4d05ce5c8e0143358 Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Mon, 25 Aug 2014 09:29:54 -0400 Subject: [PATCH] Functional test for add and remove institutions for user into edit profile --- test/functional/profile_editor_controller_test.rb | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/test/functional/profile_editor_controller_test.rb b/test/functional/profile_editor_controller_test.rb index f5d68bd..4afe285 100644 --- a/test/functional/profile_editor_controller_test.rb +++ b/test/functional/profile_editor_controller_test.rb @@ -13,37 +13,81 @@ class ProfileEditorControllerTest < ActionController::TestCase Environment.default.affiliate(@profile, [Environment::Roles.admin(Environment.default.id)] + Profile::Roles.all_roles(Environment.default.id)) @environment = Environment.default @environment.enabled_plugins = ['MpogSoftwarePlugin'] - - @govPower = GovernmentalPower.create(:name=>"Some Gov Power") - @govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") - 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 in your creation" do - institution = create_public_institution("Ministerio Publico da Uniao", "MPU", @govPower, @govSphere) - institution.date_modification = "Invalid Date" + 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 + 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, gov_p, gov_s + 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 @@ -51,4 +95,4 @@ class ProfileEditorControllerTest < ActionController::TestCase institution end -end \ No newline at end of file +end -- libgit2 0.21.2