diff --git a/app/models/organization.rb b/app/models/organization.rb index 1ca5d4e..d48c622 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -6,6 +6,8 @@ class Organization < Profile has_one :validation_info + has_many :validations, :class_name => 'CreateEnterprise', :foreign_key => :target_id + after_create do |org| OrganizationInfo.create!(:organization_id => org.id) end @@ -23,19 +25,19 @@ class Organization < Profile end def pending_validations - CreateEnterprise.pending_for(self) + validations.pending end def find_pending_validation(code) - CreateEnterprise.pending_for(self, :code => code).first + validations.pending.find { |pending| pending.code == code } end def processed_validations - CreateEnterprise.processed_for(self) + validations.finished end def find_processed_validation(code) - CreateEnterprise.processed_for(self, :code => code).first + validations.finished.find { |pending| pending.code == code } end def is_validation_entity? diff --git a/test/unit/organization_test.rb b/test/unit/organization_test.rb index 851f82e..d1433cd 100644 --- a/test/unit/organization_test.rb +++ b/test/unit/organization_test.rb @@ -3,6 +3,28 @@ require File.dirname(__FILE__) + '/../test_helper' class OrganizationTest < Test::Unit::TestCase fixtures :profiles + def create_create_enterprise(org) + region = Region.create!(:name => 'some region', :environment => Environment.default) + region.validators << org + + requestor = create_user('testreq').person + + data = { + :name => 'My new enterprise', + :identifier => 'mynewenterprise', + :address => 'satan street, 666', + :contact_phone => '1298372198', + :contact_person => 'random joe', + :legal_form => 'cooperative', + :economic_activity => 'free software', + :region_id => region.id, + :requestor => requestor, + :target => org, + } + CreateEnterprise.create!(data) + end + + should 'reference organization info' do org = Organization.new assert_raise ActiveRecord::AssociationTypeMismatch do @@ -62,36 +84,33 @@ class OrganizationTest < Test::Unit::TestCase should 'list pending enterprise validations' do org = Organization.new - empty = [] - CreateEnterprise.expects(:pending_for).with(org).returns(empty) - assert_same empty, org.pending_validations + assert_kind_of Array, org.pending_validations end should 'be able to find a pending validation by its code' do - org = Organization.new - validation = mock - CreateEnterprise.expects(:pending_for).with(org, { :code => 'lele'}).returns([validation]) - assert_same validation, org.find_pending_validation('lele') + org = Organization.create!(:name => 'test org', :identifier => 'testorg') + + validation = create_create_enterprise(org) + + ok('should find pending validation by code') { validation == org.find_pending_validation(validation.code) } end should 'return nil when finding for an unexisting pending validation' do org = Organization.new - CreateEnterprise.expects(:pending_for).with(org, { :code => 'lele'}).returns([]) - assert_nil org.find_pending_validation('lele') + assert_nil org.find_pending_validation('xxxxxxxxxxxxxxxxxxx') end - should 'be able to find already processed validations by target' do + should 'be able to find already processed validations' do org = Organization.new - empty = mock - CreateEnterprise.expects(:processed_for).with(org).returns(empty) - assert_same empty, org.processed_validations + assert_kind_of Array, org.processed_validations end should 'be able to find an already processed validation by its code' do - org = Organization.new - empty = mock - CreateEnterprise.expects(:processed_for).with(org, {:code => 'lalalala'}).returns([empty]) - assert_same empty, org.find_processed_validation('lalalala') + org = Organization.create!(:name => 'test org', :identifier => 'testorg') + validation = create_create_enterprise(org) + validation.finish + + ok('should find processed validation by code') { validation == org.find_processed_validation(validation.code) } end should 'have boxes and blocks upon creation' do -- libgit2 0.21.2