<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/has_addresses.rb</filename>
    </added>
    <added>
      <filename>tasks/has_addresses_tasks.rake</filename>
    </added>
    <added>
      <filename>test/app_root/app/models/company.rb</filename>
    </added>
    <added>
      <filename>test/app_root/config/environment.rb</filename>
    </added>
    <added>
      <filename>test/app_root/db/migrate/001_create_companies.rb</filename>
    </added>
    <added>
      <filename>test/app_root/db/migrate/002_add_address_kinds.rb</filename>
    </added>
    <added>
      <filename>test/app_root/test/fixtures/addresses.yml</filename>
    </added>
    <added>
      <filename>test/app_root/test/fixtures/companies.yml</filename>
    </added>
    <added>
      <filename>test/app_root/test/fixtures/countries.yml</filename>
    </added>
    <added>
      <filename>test/app_root/test/fixtures/regions.yml</filename>
    </added>
    <added>
      <filename>test/unit/has_addresses_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,12 +1,12 @@
-= acts_as_addressable
+= has_addresses
 
-acts_as_addressable .
+has_addresses .
 
 == Resources
 
 Wiki
 
-* http://wiki.pluginaweek.org/Acts_as_addressable
+* http://wiki.pluginaweek.org/Has_addresses
 
 Announcement
 
@@ -14,11 +14,11 @@ Announcement
 
 Source
 
-* http://svn.pluginaweek.org/trunk/plugins/active_record/acts/acts_as_addressable
+* http://svn.pluginaweek.org/trunk/plugins/active_record/has/has_addresses
 
 Development
 
-* http://dev.pluginaweek.org/browser/trunk/plugins/active_record/acts/acts_as_addressable
+* http://dev.pluginaweek.org/browser/trunk/plugins/active_record/has/has_addresses
 
 == Description
 </diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require 'rake/contrib/sshpublisher'
 # Load custom rakefile extensions
 Dir[&quot;#{File.dirname(__FILE__)}/tasks/**/*.rake&quot;].sort.each {|ext| load ext}
 
-PKG_NAME           = 'acts_as_addressable'
+PKG_NAME           = 'has_addresses'
 PKG_VERSION        = '0.0.1'
 PKG_FILE_NAME      = &quot;#{PKG_NAME}-#{PKG_VERSION}&quot;
 RUBY_FORGE_PROJECT = 'pluginaweek'
@@ -14,17 +14,17 @@ RUBY_FORGE_PROJECT = 'pluginaweek'
 desc 'Default: run unit tests.'
 task :default =&gt; :test
 
-desc 'Test the acts_as_addressable plugin.'
+desc 'Test the has_addresses plugin.'
 Rake::TestTask.new(:test) do |t|
   t.libs &lt;&lt; 'lib'
   t.pattern = 'test/unit/**/*_test.rb'
   t.verbose = true
 end
 
-desc 'Generate documentation for the acts_as_addressable plugin.'
+desc 'Generate documentation for the has_addresses plugin.'
 Rake::RDocTask.new(:rdoc) do |rdoc|
   rdoc.rdoc_dir = 'rdoc'
-  rdoc.title    = 'ActsAsAddressable'
+  rdoc.title    = 'HasAddresses'
   rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source'
   rdoc.rdoc_files.include('README')
   rdoc.rdoc_files.include('lib/**/*.rb')
@@ -38,7 +38,7 @@ spec = Gem::Specification.new do |s|
   
   s.files           = FileList['{app,db,lib,tasks,test,utilities}/**/*'].to_a + %w(init.rb MIT-LICENSE Rakefile README)
   s.require_path    = 'lib'
-  s.autorequire     = 'acts_as_addressable'
+  s.autorequire     = 'has_addresses'
   s.has_rdoc        = true
   s.test_files      = Dir['test/unit/**/*_test.rb']
   </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -6,11 +6,18 @@ class Address &lt; ActiveRecord::Base
   belongs_to            :country
   
   validates_presence_of :addressable_id,
-                        :addressable_type
-  
+                        :addressable_type,
+                        :street_1,
+                        :city,
+                        :postal_code
+  validates_presence_of :region_id,
+                          :if =&gt; :known_region_required?
+  validates_presence_of :custom_region,
+                          :if =&gt; :custom_region_required?
   validates_format_of   :postal_code,
                           :with =&gt; /^[0-9]{5}$/,
                           :allow_nil =&gt; true
+  
   before_save           :ensure_exclusive_references
   
   # Returns the region's country if the region is specified
@@ -53,10 +60,21 @@ class Address &lt; ActiveRecord::Base
   end
   
   private
+  def known_region_required?
+    country.nil? || country.regions.count != 0
+  end
+  
+  # A custom region name is required if a known region was not specified and
+  # the country in which this address resides has no known regions in the
+  # database
+  def custom_region_required?
+    region_id.nil? &amp;&amp; country &amp;&amp; country.regions.count == 0
+  end
+  
   # Ensures that the country id/user region combo is not set at the same time as
   # the region id
   def ensure_exclusive_references
-    if region_id?
+    if known_region_required?
       self.country_id = nil
       self.custom_region = nil
     end</diff>
      <filename>app/models/address.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,13 @@
 # Defined by the ISO 3166-1 standard
 class Country &lt; ActiveRecord::Base
   has_many                  :regions
-  has_many                  :addresses_with_known_regions,
-                              :through =&gt; :regions,
-                              :source =&gt; :addresses
-  has_many                  :addresses_with_custom_regions,
-                              :class_name =&gt; 'Address'
   
   validates_presence_of     :name,
                             :alpha_2_code,
                             :alpha_3_code
-                            
   validates_uniqueness_of   :name,
                             :alpha_2_code,
                             :alpha_3_code
-                            
   validates_length_of       :name,
                               :within =&gt; 2..80
   validates_length_of       :alpha_2_code,
@@ -30,12 +23,6 @@ class Country &lt; ActiveRecord::Base
     read_attribute(:official_name) || name
   end
   
-  # Returns addresses, regardless of whether that are in a known or custom
-  # region
-  def addresses
-    addresses_with_known_regions + addresses_with_custom_regions
-  end
-  
   # Returns the name of the country
   def to_s #:nodoc
     name</diff>
      <filename>app/models/country.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
 class CreateCountries &lt; ActiveRecord::Migration
   def self.up
     create_table :countries do |t|
-      t.column :name,           :string,  :null =&gt; false, :limit =&gt; 80
-      t.column :official_name,  :string,  :limit =&gt; 80
-      t.column :alpha_2_code,   :string,  :null =&gt; false, :limit =&gt; 2
-      t.column :alpha_3_code,   :string,  :null =&gt; false, :limit =&gt; 3
-      t.column :calling_code,   :string,  :limit =&gt; 3
+      t.column :name,           :string, :null =&gt; false, :limit =&gt; 80
+      t.column :official_name,  :string, :limit =&gt; 80
+      t.column :alpha_2_code,   :string, :null =&gt; false, :limit =&gt; 2
+      t.column :alpha_3_code,   :string, :null =&gt; false, :limit =&gt; 3
+      t.column :calling_code,   :string, :limit =&gt; 3
     end
     add_index :countries, :name,          :unique =&gt; true
     add_index :countries, :alpha_2_code,  :unique =&gt; true
@@ -15,8 +15,4 @@ class CreateCountries &lt; ActiveRecord::Migration
   def self.down
     drop_table :countries
   end
-  
-  def self.bootstrap
-    :countries
-  end
 end</diff>
      <filename>db/migrate/001_create_countries.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 class CreateRegions &lt; ActiveRecord::Migration
   def self.up
     create_table :regions do |t|
-      t.column :country_id,   :integer, :null =&gt; false, :unsigned =&gt; true
-      t.column :name,         :string,  :null =&gt; false, :limit =&gt; 50
-      t.column :abbreviation, :string,  :null =&gt; false, :limit =&gt; 5
+      t.column :country_id,   :integer, :null =&gt; false
+      t.column :name,         :string, :null =&gt; false, :limit =&gt; 50
+      t.column :abbreviation, :string, :null =&gt; false, :limit =&gt; 5
     end
     add_index :regions, [:name, :country_id],         :unique =&gt; true
     add_index :regions, [:abbreviation, :country_id], :unique =&gt; true
@@ -12,8 +12,4 @@ class CreateRegions &lt; ActiveRecord::Migration
   def self.down
     drop_table :regions
   end
-  
-  def self.bootstrap
-    :regions
-  end
 end</diff>
      <filename>db/migrate/002_create_regions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,18 +1,17 @@
 class CreateAddresses &lt; ActiveRecord::Migration
   def self.up
     create_table :addresses do |t|
-      t.column :addressable_id,   :integer,   :unsigned =&gt; true, :references =&gt; nil
-      t.column :addressable_type, :string
-      t.column :street_1,         :string,    :limit =&gt; 100
-      t.column :street_2,         :string,    :limit =&gt; 100
-      t.column :city,             :string,    :limit =&gt; 255
-      t.column :region_id,        :integer,   :unsigned =&gt; true
-      t.column :custom_region,    :string,    :limit =&gt; 50
-      t.column :postal_code,      :string,    :limit =&gt; 5
-      t.column :country_id,       :integer,   :unsigned =&gt; true, :default =&gt; 223
+      t.column :addressable_id,   :integer, :null =&gt; false, :references =&gt; nil
+      t.column :addressable_type, :string, :null =&gt; false
+      t.column :street_1,         :string, :null =&gt; false, :limit =&gt; 100
+      t.column :street_2,         :string, :limit =&gt; 100
+      t.column :city,             :string, :null =&gt; false, :limit =&gt; 255
+      t.column :region_id,        :integer
+      t.column :custom_region,    :string, :limit =&gt; 50
+      t.column :postal_code,      :string, :null =&gt; false, :limit =&gt; 5
+      t.column :country_id,       :integer, :default =&gt; 223
       t.column :created_at,       :timestamp, :null =&gt; false
-      t.column :updated_at,       :datetime,  :null =&gt; false
-      t.column :deleted_at,       :datetime
+      t.column :updated_at,       :datetime, :null =&gt; false
     end
   end
   </diff>
      <filename>db/migrate/003_create_addresses.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-require 'acts_as_addressable'
\ No newline at end of file
+require 'has_addresses'
\ No newline at end of file</diff>
      <filename>init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,22 +1,12 @@
-# Load the environment
-ENV['RAILS_ENV'] ||= 'in_memory'
-require File.dirname(__FILE__) + '/rails_root/config/environment.rb'
+# Load local repository plugin paths
+$:.unshift(&quot;#{File.dirname(__FILE__)}/../../has_association_helper/lib&quot;)
 
-# Load the testing framework
-require 'test_help'
-silence_warnings { RAILS_ENV = ENV['RAILS_ENV'] }
+# Load the plugin testing framework
+$:.unshift(&quot;#{File.dirname(__FILE__)}/../../../../test/plugin_test_helper/lib&quot;)
+require 'rubygems'
+require 'plugin_test_helper'
 
-# Get some additional help
-require 'dry_validity_assertions'
-
-# Run the plugin migrations
-PluginAWeek::PluginMigrations::Migrator.current_plugin = 'acts_as_addressable'
-PluginAWeek::PluginMigrations::Migrator.migrate(File.dirname(__FILE__) + '/../db/migrate')
+PluginAWeek::PluginMigrations.migrate('has_addresses')
 
 # Run the migrations
-ActiveRecord::Migrator.migrate(&quot;#{RAILS_ROOT}/db/migrate&quot;)
-
-class Test::Unit::TestCase #:nodoc:
-  self.use_transactional_fixtures = false
-  self.use_instantiated_fixtures  = false
-end
\ No newline at end of file
+ActiveRecord::Migrator.migrate(&quot;#{RAILS_ROOT}/db/migrate&quot;)
\ No newline at end of file</diff>
      <filename>test/test_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,63 +1,104 @@
 require &quot;#{File.dirname(__FILE__)}/../test_helper&quot;
 
 class AddressTest &lt; Test::Unit::TestCase
-  fixtures :credit_cards, :countries, :regions, :addresses
+  fixtures :companies, :countries, :regions, :addresses
   
-  def setup
+  def test_address_in_known_region_should_be_valid
+    assert_valid addresses(:in_known_region)
   end
   
-  def valid_address
-    addresses(:valid)
+  def test_address_in_unknown_region_should_be_valid
+    assert_valid addresses(:in_unknown_region)
   end
   
-  def test_valid_address
-    assert_valid valid_address
+  def test_should_require_addressable_id
+    assert_invalid addresses(:google_headquarters), :addressable_id, nil
   end
   
-  def test_no_addressable_id
-    assert_invalid valid_address, :addressable_id, nil
+  def test_should_require_addressable_type
+    assert_invalid addresses(:google_headquarters), :addressable_type, nil
   end
   
-  def test_no_addressable_type
-    assert_invalid valid_address, :addressable_type, nil
+  def test_should_require_street_1
+    assert_invalid addresses(:google_headquarters), :street_1, nil
   end
   
-  def test_addressable
-    assert_equal credit_cards(:valid), addresses(:valid).addressable
+  def test_should_require_city
+    assert_invalid addresses(:google_headquarters), :city, nil
   end
   
-  def test_region
-    assert_equal regions(:california), addresses(:known_region).region
+  def test_should_require_postal_code
+    assert_invalid addresses(:google_headquarters), :postal_code, nil
   end
   
-  def test_invalid_postal_code
-    assert_invalid valid_address, :postal_code, '123456', '1234', 'abcdef'
+  def test_should_require_five_digit_postal_codes
+    assert_invalid addresses(:google_headquarters), :postal_code, '123456', '1234', 'abcdef'
   end
   
-  def test_region_id_and_custom_region
-    a = Address.new
-    a.addressable = credit_cards(:known_region)
-    a.region = regions(:california)
-    a.custom_region = 'Should not save'
-    assert a.save
-    assert a.region
-    assert_nil a.custom_region
+  def test_should_require_region_id_if_country_has_regions
+    assert_invalid addresses(:in_known_region), :region_id, nil
+  end
+  
+  def test_should_not_require_custom_region_if_country_has_regions
+    assert_valid addresses(:in_known_region), :custom_region, nil
+  end
+  
+  def test_should_require_custom_region_if_country_has_no_regions
+    assert_invalid addresses(:in_unknown_region), :custom_region, nil
+  end
+  
+  def test_should_not_require_region_id_if_country_has_no_regions
+    assert_valid addresses(:in_unknown_region), :region_id, nil
+  end
+  
+  def test_should_have_addressable_association
+    assert_not_nil addresses(:google_headquarters).addressable
   end
   
-  def test_country_with_known_region
-    assert_equal countries(:united_states), addresses(:known_region).country
+  def test_known_region_should_have_region_association
+    assert_not_nil addresses(:in_known_region).region
   end
   
-  def test_country_with_custom_region
-    assert_equal countries(:united_states), addresses(:custom_region).country
+  def test_unknown_region_should_not_have_region_association
+    assert_nil addresses(:in_unknown_region).region
+  end
+  
+  def test_known_region_should_have_country_association
+    assert_nil addresses(:in_known_region).country_id
+    assert_not_nil addresses(:in_known_region).country
+    assert_equal countries(:united_states), addresses(:in_known_region).country
+  end
+  
+  def test_unknown_region_should_have_country_association
+    assert_not_nil addresses(:in_unknown_region).country_id
+    assert_not_nil addresses(:in_unknown_region).country
+    assert_equal countries(:canada), addresses(:in_unknown_region).country
+  end
+  
+  def test_should_clear_country_id_with_known_region
+    address = addresses(:in_known_region)
+    address.country = countries(:united_states)
+    
+    assert_not_nil address.country_id
+    address.save!
+    assert_nil address.country_id
+  end
+  
+  def test_should_clear_custom_region_with_known_region
+    address = addresses(:in_known_region)
+    address.custom_region = 'Somewhere'
+    
+    assert_not_nil address.custom_region
+    address.save!
+    assert_nil address.custom_region
   end
   
-  def test_region_name_with_known_region
-    assert_equal 'California', addresses(:known_region).region_name
+  def test_region_name_shouild_use_region_association_when_known
+    assert_equal 'California', addresses(:in_known_region).region_name
   end
   
-  def test_region_name_with_custom_region
-    assert_equal 'Anywhere', addresses(:custom_region).region_name
+  def test_region_name_should_use_custom_region_when_unknown
+    assert_equal 'Anywhere', addresses(:in_unknown_region).region_name
   end
   
   def test_multiline
@@ -125,6 +166,6 @@ class AddressTest &lt; Test::Unit::TestCase
   end
   
   def test_single_line
-    assert_equal '1600 Amphitheatre Parkway, Mountain View, California  94043, United States', addresses(:known_region).single_line
+    assert_equal '1600 Amphitheatre Parkway, Mountain View, California  94043, United States', addresses(:google_headquarters).single_line
   end
 end
\ No newline at end of file</diff>
      <filename>test/unit/address_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,91 +1,77 @@
 require &quot;#{File.dirname(__FILE__)}/../test_helper&quot;
 
 class CountryTest &lt; Test::Unit::TestCase
-  fixtures :countries, :regions, :addresses
+  fixtures :countries, :regions
   
-  def setup
-    @united_states = countries(:united_states)
+  def test_should_be_valid
+    assert_valid countries(:united_states)
   end
   
-  def valid_country
-    countries(:valid)
+  def test_should_require_name
+    assert_invalid countries(:united_states), :name, nil
   end
   
-  def test_valid_country
-    assert_valid valid_country
+  def test_should_restrict_name_length
+    assert_invalid countries(:united_states), :name, 'U', 'U' * 81
+    assert_valid countries(:united_states), :name, 'US', 'U' * 80
   end
   
-  def test_no_name
-    assert_invalid valid_country, :name, nil
+  def test_should_require_unique_name
+    assert_invalid countries(:united_states).clone, :name
   end
   
-  def test_name_length
-    assert_invalid valid_country, :name, 'A', 'A' * 81
-    assert_valid valid_country, :name, 'AB', 'A' * 80
+  def test_should_require_alpha_2_code
+    assert_invalid countries(:united_states), :alpha_2_code, nil
   end
   
-  def test_no_alpha_2_code
-    assert_invalid valid_country, :alpha_2_code, nil
+  def test_should_restrict_alpha_2_code_length
+    assert_invalid countries(:united_states), :alpha_2_code, 'U', 'USA'
+    assert_valid countries(:united_states), :alpha_2_code, 'US'
   end
   
-  def test_alpha_2_length
-    assert_invalid valid_country, :alpha_2_code, 'A', 'ABC'
-    assert_valid valid_country, :alpha_2_code, 'AB'
+  def test_should_require_unique_alpha_2_code
+    assert_invalid countries(:united_states).clone, :alpha_2_code
   end
   
-  def test_no_alpha_3_code
-    assert_invalid valid_country, :alpha_3_code, nil
+  def test_should_require_alpha_3_code
+    assert_invalid countries(:united_states), :alpha_3_code, nil
   end
   
-  def test_alpha_3_length
-    assert_invalid valid_country, :alpha_3_code, 'AB', 'ABCD'
-    assert_valid valid_country, :alpha_3_code, 'ABC'
+  def test_should_restrict_alpha_3_code_length
+    assert_invalid countries(:united_states), :alpha_3_code, 'US', 'USAC'
+    assert_valid countries(:united_states), :alpha_3_code, 'USA'
   end
   
-  def test_no_calling_code
-    assert_valid valid_country, :calling_code, nil
+  def test_should_require_unique_alpha_3_code
+    assert_invalid countries(:united_states).clone, :alpha_3_code
   end
   
-  def test_unique_attributes
-    c = Country.new(valid_country.attributes)
-    assert_invalid c, :name
-    assert_invalid c, :alpha_2_code
-    assert_invalid c, :alpha_3_code
+  def test_should_not_require_calling_code
+    assert_valid countries(:united_states), :calling_code, nil
   end
   
-  def test_abbreviation_2
-    assert_equal 'US', @united_states.abbreviation_2
+  def test_abbreviation_2_should_be_same_as_alpha_2_code
+    assert_equal 'US', countries(:united_states).abbreviation_2
   end
   
-  def test_abbreviation_3
-    assert_equal 'USA', @united_states.abbreviation_3
+  def test_abbreviation_3should_be_same_as_alpha_3_code
+    assert_equal 'USA', countries(:united_states).abbreviation_3
   end
-  
-  def test_official_name
-    assert_equal 'United States of America', @united_states.official_name
+#  
+  def test_should_have_an_official_name
+    assert_equal 'United States of America', countries(:united_states).official_name
   end
   
-  def test_official_name_same_as_name
-    assert_equal 'Valid', valid_country.official_name
+  def test_should_use_name_when_official_name_is_not_present
+    assert_equal 'Canada', countries(:canada).official_name
   end
   
-  def test_to_s
-    assert_equal 'United States', @united_states.to_s
+  def test_should_return_name_for_to_s
+    assert_equal 'United States', countries(:united_states).to_s
+    assert_equal 'Canada', countries(:canada).to_s
   end
   
   def test_regions
-    assert_equal [regions(:california)], @united_states.regions
-  end
-  
-  def test_addresses_with_known_regions
-    assert_equal [addresses(:known_region)], @united_states.addresses_with_known_regions
-  end
-  
-  def test_addresses_with_custom_regions
-    assert_equal [addresses(:custom_region)], @united_states.addresses_with_custom_regions
-  end
-  
-  def test_addresses
-    assert_equal [addresses(:known_region), addresses(:custom_region)], @united_states.addresses
+    assert_equal [regions(:california)], countries(:united_states).regions
   end
 end
\ No newline at end of file</diff>
      <filename>test/unit/country_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,54 +3,53 @@ require &quot;#{File.dirname(__FILE__)}/../test_helper&quot;
 class RegionTest &lt; Test::Unit::TestCase
   fixtures :countries, :regions, :addresses
   
-  def setup
+  def test_should_be_valid
+    assert_valid regions(:california)
   end
   
-  def valid_region
-    regions(:valid)
+  def test_should_require_name
+    assert_invalid regions(:california), :name, nil
   end
   
-  def test_valid_region
-    assert_valid valid_region
+  def test_should_restrict_name_length
+    assert_invalid regions(:california), :name, 'C', 'C' * 81
+    assert_valid regions(:california), :name, 'Ca', 'C' * 80
   end
   
-  def test_no_name
-    assert_invalid valid_region, :name, nil
-  end
-  
-  def test_name_length
-    assert_invalid valid_region, :name, 'A', 'A' * 81
-    assert_valid valid_region, :name, 'AB', 'A' * 80
+  def test_should_require_unique_name_per_country
+    region = regions(:california).clone
+    assert_invalid region, :name
+    
+    region.country = countries(:canada)
+    assert_valid region, :name
   end
   
-  def test_no_abbreviation
-    assert_invalid valid_region, :abbreviation, nil
+  def test_should_require_abbreviation
+    assert_invalid regions(:california), :abbreviation, nil
   end
   
-  def test_abbreviation_length
-    assert_invalid valid_region, :abbreviation, 'A', 'A' * 6
-    assert_valid valid_region, :abbreviation, 'AB', 'A' * 5
+  def test_should_restrict_abbreviation_length
+    assert_invalid regions(:california), :abbreviation, 'C', 'C' * 6
+    assert_valid regions(:california), :abbreviation, 'CA', 'C' * 5
   end
   
-  def test_unique_attributes
-    r = Region.new(valid_region.attributes)
-    assert_invalid r, :name
-    assert_invalid r, :abbreviation
+  def test_should_require_unique_abbreviation_per_country
+    region = regions(:california).clone
+    assert_invalid region, :abbreviation
     
-    r.country = countries(:united_states)
-    assert_valid r, :name
-    assert_valid r, :abbreviation
+    region.country = countries(:canada)
+    assert_valid region, :abbreviation
   end
   
-  def test_country
+  def test_should_belong_to_a_country
     assert_equal countries(:united_states), regions(:california).country
   end
   
-  def test_addresses
-    assert_equal [addresses(:known_region)], regions(:california).addresses
+  def test_should_have_many_addresses
+    assert_equal [addresses(:in_known_region), addresses(:google_headquarters), addresses(:google_sales)], regions(:california).addresses
   end
   
-  def test_to_s
+  def test_should_use_name_for_stringification
     assert_equal 'California', regions(:california).to_s
   end
 end
\ No newline at end of file</diff>
      <filename>test/unit/region_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/acts_as_addressable.rb</filename>
    </removed>
    <removed>
      <filename>tasks/acts_as_addressable_tasks.rake</filename>
    </removed>
    <removed>
      <filename>test/rails_root/app/controllers/application.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/app/models/credit_card.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/boot.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/database.yml</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/environment.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/environments/in_memory.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/environments/mysql.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/environments/postgresql.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/environments/sqlite.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/environments/sqlite3.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/config/routes.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/db/migrate/001_create_credit_cards.rb</filename>
    </removed>
    <removed>
      <filename>test/rails_root/test/fixtures/addresses.yml</filename>
    </removed>
    <removed>
      <filename>test/rails_root/test/fixtures/countries.yml</filename>
    </removed>
    <removed>
      <filename>test/rails_root/test/fixtures/credit_cards.yml</filename>
    </removed>
    <removed>
      <filename>test/rails_root/test/fixtures/regions.yml</filename>
    </removed>
    <removed>
      <filename>test/rails_root/vendor/plugins/acts_as_addressable/init.rb</filename>
    </removed>
    <removed>
      <filename>test/unit/acts_as_addressable_test.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>c55c709889a5566cc38bf990211cc0ab2e9f7a69</id>
    </parent>
  </parents>
  <author>
    <name>Aaron Pfeifer</name>
    <email>aaron.pfeifer@gmail.com</email>
  </author>
  <url>http://github.com/pluginaweek/has_addresses/commit/2fd9b19c2b7a31e26f7ff14d7288b673f058aebd</url>
  <id>2fd9b19c2b7a31e26f7ff14d7288b673f058aebd</id>
  <committed-date>2007-07-22T13:00:39-07:00</committed-date>
  <authored-date>2007-07-22T13:00:39-07:00</authored-date>
  <message>Initial release</message>
  <tree>efba036fd634a43d8b521be84813669c997c5893</tree>
  <committer>
    <name>Aaron Pfeifer</name>
    <email>aaron.pfeifer@gmail.com</email>
  </committer>
</commit>
