From 35138b91c33727e7fcbe1da4cc44db6cf90be72d Mon Sep 17 00:00:00 2001 From: Fabio Teixeira Date: Tue, 4 Nov 2014 18:01:43 -0200 Subject: [PATCH] fix_institution: Test for institution edition --- test/functional/institution_test_helper.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++ test/functional/mpog_software_plugin_controller_test.rb | 70 ++++++++++++++-------------------------------------------------------- test/functional/mpog_software_plugin_myprofile_controller_test.rb | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+), 56 deletions(-) create mode 100644 test/functional/institution_test_helper.rb diff --git a/test/functional/institution_test_helper.rb b/test/functional/institution_test_helper.rb new file mode 100644 index 0000000..d028bfc --- /dev/null +++ b/test/functional/institution_test_helper.rb @@ -0,0 +1,44 @@ +module InstitutionTestHelper + + def self.generate_form_fields name, country, state, city, cnpj, type + fields = { + :community => { + :name => name, + :country => country, + :state => state, + :city => city + }, + :institutions => { + :cnpj=> cnpj, + :type => type, + :acronym => "", + :governmental_power => "", + :governmental_sphere => "", + :juridical_nature => "", + :corporate_name => "coporate default" + } + } + fields + end + + def self.create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s, cnpj + institution_community = Community::new + 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.cnpj = cnpj + institution.corporate_name = "corporate default" + institution.save! + institution + end +end \ No newline at end of file diff --git a/test/functional/mpog_software_plugin_controller_test.rb b/test/functional/mpog_software_plugin_controller_test.rb index 4f96425..401b467 100644 --- a/test/functional/mpog_software_plugin_controller_test.rb +++ b/test/functional/mpog_software_plugin_controller_test.rb @@ -1,4 +1,5 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' +require File.dirname(__FILE__) + '/institution_test_helper' require File.dirname(__FILE__) + '/../../controllers/mpog_software_plugin_controller' class MpogSoftwarePluginController; def rescue_action(e) raise e end; end @@ -6,12 +7,12 @@ class MpogSoftwarePluginController; def rescue_action(e) raise e end; end class MpogSoftwarePluginControllerTest < ActionController::TestCase def setup - admin = create_user("adminuser").person - admin.stubs(:has_permission?).returns("true") + @admin = create_user("adminuser").person + @admin.stubs(:has_permission?).returns("true") @environment = Environment.default @environment.enabled_plugins = ['MpogSoftwarePlugin'] - @environment.add_admin(admin) + @environment.add_admin(@admin) @environment.save @govPower = GovernmentalPower.create(:name=>"Some Gov Power") @@ -20,8 +21,8 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase @response = ActionController::TestResponse.new @institution_list = [] - @institution_list << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere, "12.345.678/9012-45") - @institution_list << create_public_institution("Tribunal Regional da Uniao", "TRU", "BR", "DF", "Brasilia", @juridical_nature, @govPower, @govSphere, "12.345.678/9012-90") + @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 "Search for institution with acronym" do @@ -50,6 +51,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase end should "method create_institution return the html for modal" do + @controller.stubs(:current_user).returns(@admin.user) xhr :get, :create_institution assert_template 'create_institution' end @@ -57,7 +59,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "create new institution with ajax without acronym" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "foo bar", "BR", "DF", "Brasilia", "12.234.567/8900-10", "PublicInstitution" + fields = InstitutionTestHelper.generate_form_fields "foo bar", "BR", "DF", "Brasilia", "12.234.567/8900-10", "PublicInstitution" fields[:institutions][:governmental_power] = @govPower.id fields[:institutions][:governmental_sphere] = @govSphere.id fields[:institutions][:juridical_nature] = @juridical_nature.id @@ -72,7 +74,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "not create a institution that already exists" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "Ministerio Publico da Uniao", "BR", "DF", "Brasilia", "12.234.567/8900-10", "PublicInstitution" + fields = InstitutionTestHelper.generate_form_fields "Ministerio Publico da Uniao", "BR", "DF", "Brasilia", "12.234.567/8900-10", "PublicInstitution" fields[:institutions][:governmental_power] = @govPower.id fields[:institutions][:governmental_sphere] = @govSphere.id fields[:institutions][:juridical_nature] = @juridical_nature.id @@ -87,7 +89,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "not create a institution without cnpj" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "", "PrivateInstitution" + fields = InstitutionTestHelper.generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "", "PrivateInstitution" fields[:institutions][:acronym] = "SPI" xhr :get, :new_institution, fields @@ -129,7 +131,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "Create new institution with method post" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "12.345.567/8900-10", "PrivateInstitution" + fields = InstitutionTestHelper.generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "12.345.567/8900-10", "PrivateInstitution" fields[:institutions][:acronym] = "SPI" post :new_institution, fields @@ -140,7 +142,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "not create new institution with method post without cnpj" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "", "PrivateInstitution" + fields = InstitutionTestHelper.generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "", "PrivateInstitution" fields[:institutions][:acronym] = "SPI" post :new_institution, fields @@ -151,7 +153,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "Create foreign institution without city, state and cnpj by post" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "Foreign institution", "AZ", "", "", "", "PrivateInstitution" + fields = InstitutionTestHelper.generate_form_fields "Foreign institution", "AZ", "", "", "", "PrivateInstitution" fields[:institutions][:acronym] = "FI" post :new_institution, fields @@ -162,7 +164,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase should "Create foreign institution without city, state and cnpj by ajax" do @controller.stubs(:verify_recaptcha).returns(true) - fields = generate_form_fields "Foreign institution", "AZ", "", "", "", "PrivateInstitution" + fields = InstitutionTestHelper.generate_form_fields "Foreign institution", "AZ", "", "", "", "PrivateInstitution" fields[:institutions][:acronym] = "FI" xhr :post, :new_institution, fields @@ -171,48 +173,4 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase assert json_response["success"] end - private - - def generate_form_fields name, country, state, city, cnpj, type - fields = { - :community => { - :name => name, - :country => country, - :state => state, - :city => city - }, - :institutions => { - :cnpj=> cnpj, - :type => type, - :acronym => "", - :governmental_power => "", - :governmental_sphere => "", - :juridical_nature => "", - :corporate_name => "coporate default" - } - } - fields - end - - def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s, cnpj - 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.cnpj = cnpj - institution.corporate_name = "corporate default" - institution.save! - institution - end - end diff --git a/test/functional/mpog_software_plugin_myprofile_controller_test.rb b/test/functional/mpog_software_plugin_myprofile_controller_test.rb index be26557..fbbe2e2 100644 --- a/test/functional/mpog_software_plugin_myprofile_controller_test.rb +++ b/test/functional/mpog_software_plugin_myprofile_controller_test.rb @@ -1,6 +1,7 @@ require File.dirname(__FILE__) + '/../../../../test/test_helper' require File.dirname(__FILE__) + '/../../controllers/mpog_software_plugin_myprofile_controller' require File.dirname(__FILE__) + '/software_test_helper' +require File.dirname(__FILE__) + '/institution_test_helper' class MpogSoftwarePluginMyprofileController; def rescue_action(e) raise e end; end @@ -100,4 +101,36 @@ class MpogSoftwarePluginMyprofileControllerTest < ActionController::TestCase assert_equal true, SoftwareInfo.last.public_software? end + should "user edit its community institution" do + govPower = GovernmentalPower.create(:name=>"Some Gov Power") + govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") + juridical_nature = JuridicalNature.create(:name => "Autarquia") + + institution = InstitutionTestHelper.create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", juridical_nature, govPower, govSphere, "12.345.678/9012-45") + identifier = institution.community.identifier + + fields = InstitutionTestHelper.generate_form_fields "institution new name", "BR", "DF", "Gama", "12.345.678/9012-45", "PrivateInstitution" + + post :edit_institution, :profile=>institution.community.identifier, :community=>fields[:community], :institutions=>fields[:institutions] + + institution = Community[identifier].institution + assert_not_equal "Ministerio Publico da Uniao", institution.community.name + end + + should "not user edit its community institution with wrong values" do + govPower = GovernmentalPower.create(:name=>"Some Gov Power") + govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") + juridical_nature = JuridicalNature.create(:name => "Autarquia") + + institution = InstitutionTestHelper.create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", juridical_nature, govPower, govSphere, "12.345.678/9012-45") + identifier = institution.community.identifier + + fields = InstitutionTestHelper.generate_form_fields "", "BR", "DF", "Gama", "6465465465", "PrivateInstitution" + + post :edit_institution, :profile=>institution.community.identifier, :community=>fields[:community], :institutions=>fields[:institutions] + + institution = Community[identifier].institution + assert_equal "Ministerio Publico da Uniao", institution.community.name + assert_equal "12.345.678/9012-45", institution.cnpj + end end -- libgit2 0.21.2