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 | ... | ... |