diff --git a/app/models/region.rb b/app/models/region.rb index c5a39de..727b231 100644 --- a/app/models/region.rb +++ b/app/models/region.rb @@ -1,4 +1,8 @@ # Region is a special type of category that is related to geographical issues. class Region < Category has_and_belongs_to_many :validators, :class_name => Organization.name, :join_table => :region_validators + + def search_possible_validators(search) + Organization.find_by_contents(search).reject {|item| self.validator_ids.include?(item.id) } + end end diff --git a/test/unit/region_test.rb b/test/unit/region_test.rb index 3034255..7daa002 100644 --- a/test/unit/region_test.rb +++ b/test/unit/region_test.rb @@ -17,11 +17,26 @@ class RegionTest < Test::Unit::TestCase end should 'be able to search for possible validators by name' do - flunk 'need to write this test' + env = Environment.create!(:name => "my test environment") + region = Region.create!(:environment_id => env.id, :name => 'My Region') + org1 = Organization.create!(:name => 'Organization 1', :identifier => 'org1', :environment_id => env.id) + org2 = Organization.create!(:name => 'Organization 2', :identifier => 'org2', :environment_id => env.id) + + possible = region.search_possible_validators('organization') + assert possible.include?(org2) + assert possible.include?(org1) end should 'return search results without validators that are already associated to the current region' do - flunk 'need to write this test' + env = Environment.create!(:name => "my test environment") + region = Region.create!(:environment_id => env.id, :name => 'My Region') + org1 = Organization.create!(:name => 'Organization 1', :identifier => 'org1', :environment_id => env.id) + org2 = Organization.create!(:name => 'Organization 2', :identifier => 'org2', :environment_id => env.id) + region.validators << org1 + + possible = region.search_possible_validators('organization') + assert possible.include?(org2) + assert !possible.include?(org1) end end -- libgit2 0.21.2