diff --git a/app/models/city.rb b/app/models/city.rb index f490aae..4a21a00 100644 --- a/app/models/city.rb +++ b/app/models/city.rb @@ -1,2 +1,3 @@ class City < Region + attr_accessible :name, :parent_id end diff --git a/app/models/state.rb b/app/models/state.rb index c659537..ab91e0b 100644 --- a/app/models/state.rb +++ b/app/models/state.rb @@ -1,2 +1,3 @@ class State < Region + attr_accessible :name, :acronym end diff --git a/test/unit/set_profile_region_from_city_state_test.rb b/test/unit/set_profile_region_from_city_state_test.rb index 87f46c0..4c3c2aa 100644 --- a/test/unit/set_profile_region_from_city_state_test.rb +++ b/test/unit/set_profile_region_from_city_state_test.rb @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + '/../test_helper' class SetProfileRegionFromCityStateTest < ActiveSupport::TestCase should 'set city and state from names' do - s = State.create!(:name => 'Sao Paulo', :acronym => 'SP', :environment_id => Environment.default.id) - c = City.create!(:name => 'Pindamonhangaba', :parent_id => s.id, :environment_id => Environment.default.id) + c, _ = create_city_in_state('Pindamonhangaba', 'Sao Paulo', 'SP') + p = fast_create(Person, :user_id => fast_create(User).id) p.state_with_region = 'SP' p.city_with_region = 'Pindamonhangaba' @@ -13,7 +13,8 @@ class SetProfileRegionFromCityStateTest < ActiveSupport::TestCase end should 'set region to null if city not found' do - s = State.create!(:name => 'Sao Paulo', :acronym => 'SP', :environment_id => Environment.default.id) + create_city_in_state(nil, 'Sao Paulo', 'SP') + p = fast_create(Person, :user_id => fast_create(User).id) p.state_with_region = 'SP' p.city_with_region = 'Pindamonhangaba' @@ -22,12 +23,30 @@ class SetProfileRegionFromCityStateTest < ActiveSupport::TestCase end should 'set region to null if state not found' do - s = State.create!(:name => 'Sao Paulo', :acronym => 'SP', :environment_id => Environment.default.id) - c = City.create!(:name => 'Pindamonhangaba', :parent_id => s.id, :environment_id => Environment.default.id) + create_city_in_state('Pindamonhangaba', 'Sao Paulo', 'SP') + p = fast_create(Person, :user_id => fast_create(User).id) p.state_with_region = 'RJ' p.city_with_region = 'Pindamonhangaba' p.save! assert p.region.nil? end + + def create_city_in_state(city_name, state_name, state_acronym) + environment_id = Environment.default.id + + state = State.new(:name => state_name, :acronym => state_acronym) + state.environment_id = environment_id + state.save! + + city = nil + if city_name + city = City.new(:name => city_name, :parent_id => state.id) + city.environment_id = environment_id + city.save! + end + + return [city, state] + end + end -- libgit2 0.21.2