Commit d35abd3152757a131d5a1917030a030e71861f9e

Authored by Antonio Terceiro
1 parent 74589b8f

rails: add City/State attr_accessible and fix test

app/models/city.rb
1 class City < Region 1 class City < Region
  2 + attr_accessible :name, :parent_id
2 end 3 end
app/models/state.rb
1 class State < Region 1 class State < Region
  2 + attr_accessible :name, :acronym
2 end 3 end
test/unit/set_profile_region_from_city_state_test.rb
@@ -3,8 +3,8 @@ require File.dirname(__FILE__) + &#39;/../test_helper&#39; @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + &#39;/../test_helper&#39;
3 class SetProfileRegionFromCityStateTest < ActiveSupport::TestCase 3 class SetProfileRegionFromCityStateTest < ActiveSupport::TestCase
4 4
5 should 'set city and state from names' do 5 should 'set city and state from names' do
6 - s = State.create!(:name => 'Sao Paulo', :acronym => 'SP', :environment_id => Environment.default.id)  
7 - c = City.create!(:name => 'Pindamonhangaba', :parent_id => s.id, :environment_id => Environment.default.id) 6 + c, _ = create_city_in_state('Pindamonhangaba', 'Sao Paulo', 'SP')
  7 +
8 p = fast_create(Person, :user_id => fast_create(User).id) 8 p = fast_create(Person, :user_id => fast_create(User).id)
9 p.state_with_region = 'SP' 9 p.state_with_region = 'SP'
10 p.city_with_region = 'Pindamonhangaba' 10 p.city_with_region = 'Pindamonhangaba'
@@ -13,7 +13,8 @@ class SetProfileRegionFromCityStateTest &lt; ActiveSupport::TestCase @@ -13,7 +13,8 @@ class SetProfileRegionFromCityStateTest &lt; ActiveSupport::TestCase
13 end 13 end
14 14
15 should 'set region to null if city not found' do 15 should 'set region to null if city not found' do
16 - s = State.create!(:name => 'Sao Paulo', :acronym => 'SP', :environment_id => Environment.default.id) 16 + create_city_in_state(nil, 'Sao Paulo', 'SP')
  17 +
17 p = fast_create(Person, :user_id => fast_create(User).id) 18 p = fast_create(Person, :user_id => fast_create(User).id)
18 p.state_with_region = 'SP' 19 p.state_with_region = 'SP'
19 p.city_with_region = 'Pindamonhangaba' 20 p.city_with_region = 'Pindamonhangaba'
@@ -22,12 +23,30 @@ class SetProfileRegionFromCityStateTest &lt; ActiveSupport::TestCase @@ -22,12 +23,30 @@ class SetProfileRegionFromCityStateTest &lt; ActiveSupport::TestCase
22 end 23 end
23 24
24 should 'set region to null if state not found' do 25 should 'set region to null if state not found' do
25 - s = State.create!(:name => 'Sao Paulo', :acronym => 'SP', :environment_id => Environment.default.id)  
26 - c = City.create!(:name => 'Pindamonhangaba', :parent_id => s.id, :environment_id => Environment.default.id) 26 + create_city_in_state('Pindamonhangaba', 'Sao Paulo', 'SP')
  27 +
27 p = fast_create(Person, :user_id => fast_create(User).id) 28 p = fast_create(Person, :user_id => fast_create(User).id)
28 p.state_with_region = 'RJ' 29 p.state_with_region = 'RJ'
29 p.city_with_region = 'Pindamonhangaba' 30 p.city_with_region = 'Pindamonhangaba'
30 p.save! 31 p.save!
31 assert p.region.nil? 32 assert p.region.nil?
32 end 33 end
  34 +
  35 + def create_city_in_state(city_name, state_name, state_acronym)
  36 + environment_id = Environment.default.id
  37 +
  38 + state = State.new(:name => state_name, :acronym => state_acronym)
  39 + state.environment_id = environment_id
  40 + state.save!
  41 +
  42 + city = nil
  43 + if city_name
  44 + city = City.new(:name => city_name, :parent_id => state.id)
  45 + city.environment_id = environment_id
  46 + city.save!
  47 + end
  48 +
  49 + return [city, state]
  50 + end
  51 +
33 end 52 end