Commit d2acf743aa7990ae87ec4b107f9f8a8c276380be
1 parent
04ac4427
Exists in
master
and in
5 other branches
Fix and add tests on institution
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Showing
2 changed files
with
59 additions
and
71 deletions
Show diff stats
lib/public_institution.rb
| 1 | 1 | class PublicInstitution < Institution |
| 2 | 2 | validates :governmental_power, :governmental_sphere, :juridical_nature, :presence=>true |
| 3 | - validates_uniqueness_of :acronym, :allow_blank => true, :allow_nil => true | |
| 4 | - validates_uniqueness_of :cnpj, :unit_code, :allow_nil => true, :allow_blank => true | |
| 3 | + validates :acronym, :allow_blank => true, :allow_nil => true, :uniqueness=>true | |
| 4 | + validates :cnpj, :uniqueness=>true | |
| 5 | 5 | validates_format_of :cnpj, :with => /^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/, :allow_nil => true, :allow_blank => true |
| 6 | + | |
| 6 | 7 | |
| 7 | 8 | end | ... | ... |
test/functional/mpog_software_plugin_controller_test.rb
| ... | ... | @@ -20,8 +20,8 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase |
| 20 | 20 | @response = ActionController::TestResponse.new |
| 21 | 21 | |
| 22 | 22 | @institution_list = [] |
| 23 | - @institution_list << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere) | |
| 24 | - @institution_list << create_public_institution("Tribunal Regional da Uniao", "TRU", "BR", "DF", "Brasilia", @juridical_nature, @govPower, @govSphere) | |
| 23 | + @institution_list << create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @govPower, @govSphere, "12.345.678/9012-45") | |
| 24 | + @institution_list << create_public_institution("Tribunal Regional da Uniao", "TRU", "BR", "DF", "Brasilia", @juridical_nature, @govPower, @govSphere, "12.345.678/9012-90") | |
| 25 | 25 | end |
| 26 | 26 | |
| 27 | 27 | should "Search for institution with acronym" do |
| ... | ... | @@ -54,48 +54,15 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase |
| 54 | 54 | assert_template 'create_institution' |
| 55 | 55 | end |
| 56 | 56 | |
| 57 | - should "create new institution with ajax" do | |
| 57 | + should "create new institution with ajax without acronym" do | |
| 58 | 58 | @controller.stubs(:verify_recaptcha).returns(true) |
| 59 | 59 | |
| 60 | - xhr :get, :new_institution, | |
| 61 | - :authenticity_token=>"dsa45a6das52sd", | |
| 62 | - :name => "foo bar", | |
| 63 | - :community=>{:name=>"foo bar", :country => "BR", :state => "DF", :city => "Brasilia"}, | |
| 64 | - :governmental=>{:power=>@govPower.id, :sphere=>@govSphere.id}, | |
| 65 | - :juridical => {:nature => @juridical_nature.id}, | |
| 66 | - :institution => {:cnpj=>"12.234.567/8900-10", :acronym=>"fb", :type=>"PublicInstitution"}, | |
| 67 | - :recaptcha_response_field=>'' | |
| 60 | + fields = generate_form_fields "foo bar", "BR", "DF", "Brasilia", "12.234.567/8900-10", "PublicInstitution" | |
| 61 | + fields[:institutions][:governmental_power] = @govPower.id | |
| 62 | + fields[:institutions][:governmental_sphere] = @govSphere.id | |
| 63 | + fields[:institutions][:juridical_nature] = @juridical_nature.id | |
| 68 | 64 | |
| 69 | - | |
| 70 | - json_response = ActiveSupport::JSON.decode(@response.body) | |
| 71 | - | |
| 72 | - assert json_response["success"] | |
| 73 | - end | |
| 74 | - | |
| 75 | - should "create more than one institution without acronym" do | |
| 76 | - @controller.stubs(:verify_recaptcha).returns(true) | |
| 77 | - | |
| 78 | - xhr :get, :new_institution, | |
| 79 | - :authenticity_token=>"dsa45a6das52sd", | |
| 80 | - :name => "foo bar", | |
| 81 | - :community=>{:name=>"foo bar", :country => "BR", :state => "DF", :city => "Brasilia"}, | |
| 82 | - :governmental=>{:power=>@govPower.id, :sphere=>@govSphere.id}, | |
| 83 | - :juridical => {:nature => @juridical_nature.id}, | |
| 84 | - :institution => {:cnpj=>"12.234.567/8900-10", :acronym=>"", :type=>"PublicInstitution"}, | |
| 85 | - :recaptcha_response_field=>'' | |
| 86 | - | |
| 87 | - json_response = ActiveSupport::JSON.decode(@response.body) | |
| 88 | - | |
| 89 | - assert json_response["success"] | |
| 90 | - | |
| 91 | - xhr :get, :new_institution, | |
| 92 | - :authenticity_token=>"dsa45a6das52sd", | |
| 93 | - :name => "foo bar 2", | |
| 94 | - :community=>{:name=>"foo bar 2", :country => "BR", :state => "DF", :city => "Brasilia"}, | |
| 95 | - :governmental=>{:power=>@govPower.id, :sphere=>@govSphere.id}, | |
| 96 | - :juridical => {:nature => @juridical_nature.id}, | |
| 97 | - :institution => {:cnpj=>"12.224.567/8900-10", :acronym=>"", :type=>"PublicInstitution"}, | |
| 98 | - :recaptcha_response_field=>'' | |
| 65 | + xhr :get, :new_institution, fields | |
| 99 | 66 | |
| 100 | 67 | json_response = ActiveSupport::JSON.decode(@response.body) |
| 101 | 68 | |
| ... | ... | @@ -105,14 +72,12 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase |
| 105 | 72 | should "not create a institution that already exists" do |
| 106 | 73 | @controller.stubs(:verify_recaptcha).returns(true) |
| 107 | 74 | |
| 108 | - xhr :get, :new_institution, | |
| 109 | - :authenticity_token=>"dsa45a6das52sd", | |
| 110 | - :name => "Ministerio Publico da Uniao", | |
| 111 | - :community=>{:name=>"Ministerio Publico da Uniao", :country => "BR", :state => "DF", :city => "Brasilia"}, | |
| 112 | - :governmental=>{:power=>@govPower.id, :sphere=>@govSphere.id}, | |
| 113 | - :juridical => {:nature => @juridical_nature.id}, | |
| 114 | - :institution => {:cnpj=>"12.234.567/8900-10", :acronym=>"fb", :type=>"PublicInstitution"}, | |
| 115 | - :recaptcha_response_field=>'' | |
| 75 | + fields = generate_form_fields "Ministerio Publico da Uniao", "BR", "DF", "Brasilia", "12.234.567/8900-10", "PublicInstitution" | |
| 76 | + fields[:institutions][:governmental_power] = @govPower.id | |
| 77 | + fields[:institutions][:governmental_sphere] = @govSphere.id | |
| 78 | + fields[:institutions][:juridical_nature] = @juridical_nature.id | |
| 79 | + | |
| 80 | + xhr :get, :new_institution, fields | |
| 116 | 81 | |
| 117 | 82 | json_response = ActiveSupport::JSON.decode(@response.body) |
| 118 | 83 | |
| ... | ... | @@ -122,14 +87,10 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase |
| 122 | 87 | should "not create a institution without cnpj" do |
| 123 | 88 | @controller.stubs(:verify_recaptcha).returns(true) |
| 124 | 89 | |
| 125 | - xhr :get, :new_institution, | |
| 126 | - :authenticity_token=>"dsa45a6das52sd", | |
| 127 | - :name => "Ministerio Publico da Uniao", | |
| 128 | - :community=>{:name=>"Ministerio Publico da Uniao", :country => "BR", :state => "DF", :city => "Brasilia"}, | |
| 129 | - :governmental=>{:power=>@govPower.id, :sphere=>@govSphere.id}, | |
| 130 | - :juridical => {:nature => @juridical_nature.id}, | |
| 131 | - :institution => {:cnpj=> "", :acronym=>"fb", :type=>"PublicInstitution"}, | |
| 132 | - :recaptcha_response_field=>'' | |
| 90 | + fields = generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "", "PrivateInstitution" | |
| 91 | + fields[:institutions][:acronym] = "SPI" | |
| 92 | + | |
| 93 | + xhr :get, :new_institution, fields | |
| 133 | 94 | |
| 134 | 95 | json_response = ActiveSupport::JSON.decode(@response.body) |
| 135 | 96 | |
| ... | ... | @@ -165,26 +126,51 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase |
| 165 | 126 | assert_equal "false", @response.body |
| 166 | 127 | end |
| 167 | 128 | |
| 168 | - should "update institution date_modification in your creation" do | |
| 129 | + should "Create new institution with method post" do | |
| 169 | 130 | @controller.stubs(:verify_recaptcha).returns(true) |
| 170 | 131 | |
| 171 | - xhr :get, :new_institution, | |
| 172 | - :authenticity_token=>"dsa45a6das52sd", | |
| 173 | - :name => "foo bar", | |
| 174 | - :community=>{:name=>"foo bar", :country => "BR", :state => "DF", :city => "Brasilia"}, | |
| 175 | - :governmental=>{:power=>@govPower.id, :sphere=>@govSphere.id}, | |
| 176 | - :juridical => {:nature => @juridical_nature.id}, | |
| 177 | - :institution => {:cnpj=>"12.234.567/8900-10", :acronym=>"fb", :type=>"PublicInstitution"}, | |
| 178 | - :recaptcha_response_field=>'' | |
| 132 | + fields = generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "12.345.567/8900-10", "PrivateInstitution" | |
| 133 | + fields[:institutions][:acronym] = "SPI" | |
| 134 | + | |
| 135 | + post :new_institution, fields | |
| 179 | 136 | |
| 180 | - date = Time.now.day.to_s + "/" + Time.now.month.to_s + "/" + Time.now.year.to_s | |
| 181 | - assert_equal date, Institution.last.date_modification | |
| 137 | + assert_redirected_to(controller: "admin_panel", action: "index") | |
| 182 | 138 | end |
| 183 | 139 | |
| 140 | + should "not create new institution with method post without cnpj" do | |
| 141 | + @controller.stubs(:verify_recaptcha).returns(true) | |
| 142 | + | |
| 143 | + fields = generate_form_fields "Some Private Institution", "BR", "DF", "Brasilia", "", "PrivateInstitution" | |
| 144 | + fields[:institutions][:acronym] = "SPI" | |
| 145 | + | |
| 146 | + post :new_institution, fields | |
| 147 | + | |
| 148 | + assert_redirected_to(controller: "mpog_software_plugin", action: "create_institution_admin") | |
| 149 | + end | |
| 184 | 150 | |
| 185 | 151 | private |
| 186 | 152 | |
| 187 | - def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s | |
| 153 | + def generate_form_fields name, country, state, city, cnpj, type | |
| 154 | + fields = { | |
| 155 | + :community => { | |
| 156 | + :name => name, | |
| 157 | + :country => country, | |
| 158 | + :state => state, | |
| 159 | + :city => city | |
| 160 | + }, | |
| 161 | + :institutions => { | |
| 162 | + :cnpj=> cnpj, | |
| 163 | + :type => type, | |
| 164 | + :acronym => "", | |
| 165 | + :governmental_power => "", | |
| 166 | + :governmental_sphere => "", | |
| 167 | + :juridical_nature => "" | |
| 168 | + } | |
| 169 | + } | |
| 170 | + fields | |
| 171 | + end | |
| 172 | + | |
| 173 | + def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s, cnpj | |
| 188 | 174 | institution_community = fast_create(Community) |
| 189 | 175 | institution_community.name = name |
| 190 | 176 | institution_community.country = country |
| ... | ... | @@ -199,6 +185,7 @@ class MpogSoftwarePluginControllerTest < ActionController::TestCase |
| 199 | 185 | institution.acronym = acronym |
| 200 | 186 | institution.governmental_power = gov_p |
| 201 | 187 | institution.governmental_sphere = gov_s |
| 188 | + institution.cnpj = cnpj | |
| 202 | 189 | institution.save! |
| 203 | 190 | institution |
| 204 | 191 | end | ... | ... |