diff --git a/plugins/sub_organizations/test/functional/sub_organizations_plugin_myprofile_controller_test.rb b/plugins/sub_organizations/test/functional/sub_organizations_plugin_myprofile_controller_test.rb index 93f535e..09c4913 100644 --- a/plugins/sub_organizations/test/functional/sub_organizations_plugin_myprofile_controller_test.rb +++ b/plugins/sub_organizations/test/functional/sub_organizations_plugin_myprofile_controller_test.rb @@ -1,6 +1,9 @@ require 'test_helper' require_relative '../../controllers/sub_organizations_plugin_myprofile_controller' +# Re-raise errors caught by the controller. +class SubOrganizationsPluginMyprofileController; def rescue_action(e) raise e end; end + class SubOrganizationsPluginMyprofileControllerTest < ActionController::TestCase def setup @controller = SubOrganizationsPluginMyprofileController.new diff --git a/plugins/sub_organizations/test/functional/sub_organizations_plugin_profile_controller_test.rb b/plugins/sub_organizations/test/functional/sub_organizations_plugin_profile_controller_test.rb index 1ce9ab2..a3b123b 100644 --- a/plugins/sub_organizations/test/functional/sub_organizations_plugin_profile_controller_test.rb +++ b/plugins/sub_organizations/test/functional/sub_organizations_plugin_profile_controller_test.rb @@ -1,6 +1,9 @@ require 'test_helper' require_relative '../../controllers/sub_organizations_plugin_profile_controller' +# Re-raise errors caught by the controller. +class SubOrganizationsPluginProfileController; def rescue_action(e) raise e end; end + class SubOrganizationsPluginProfileControllerTest < ActionController::TestCase def setup diff --git a/plugins/sub_organizations/test/unit/approve_paternity_relation_test.rb b/plugins/sub_organizations/test/unit/approve_paternity_relation_test.rb new file mode 100644 index 0000000..c42c25e --- /dev/null +++ b/plugins/sub_organizations/test/unit/approve_paternity_relation_test.rb @@ -0,0 +1,32 @@ +require 'test_helper' + +class ApprovePaternityRelationTest < ActiveSupport::TestCase + + def setup + @requestor = create_user('some-user').person + end + + attr_reader :requestor + + should 'return parent' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + task = SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org2, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name) + + assert_equal SubOrganizationsPlugin::ApprovePaternityRelation.parent_approval(task), org1 + end + + should 'list pending children' do + organization = fast_create(Organization) + org1 = fast_create(Organization) + org2 = fast_create(Organization) + org3 = fast_create(Organization) + + SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org1, :temp_parent_id => organization.id, :temp_parent_type => organization.class.name) + SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org2, :temp_parent_id => organization.id, :temp_parent_type => organization.class.name) + + assert_includes Organization.pending_children(organization), org1 + assert_includes Organization.pending_children(organization), org2 + assert_not_includes Organization.pending_children(organization), org3 + end +end diff --git a/plugins/sub_organizations/test/unit/approve_paternity_test.rb b/plugins/sub_organizations/test/unit/approve_paternity_test.rb new file mode 100644 index 0000000..667824e --- /dev/null +++ b/plugins/sub_organizations/test/unit/approve_paternity_test.rb @@ -0,0 +1,29 @@ +require 'test_helper' + +class ApprovePaternityTest < ActiveSupport::TestCase + + def setup + @requestor = create_user('some-user').person + end + + attr_reader :requestor + + should 'create relation after creation' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + assert_difference 'SubOrganizationsPlugin::ApprovePaternityRelation.count', 1 do + SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name, :target => org2) + end + end + + should 'add children to parent after approving' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + + task = SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name, :target => org2) + assert_not_includes Organization.children(org1), org2 + + task.finish + assert_includes Organization.children(org1), org2 + end +end diff --git a/plugins/sub_organizations/test/unit/create_enterprise_test.rb b/plugins/sub_organizations/test/unit/create_enterprise_test.rb new file mode 100644 index 0000000..731db2a --- /dev/null +++ b/plugins/sub_organizations/test/unit/create_enterprise_test.rb @@ -0,0 +1,10 @@ +require 'test_helper' + +class CreateEnterpriseTest < ActiveSupport::TestCase + + should 'inlude the parent field in create enterprise' do + create_enterprise = CreateEnterprise.new + assert_nothing_raised { create_enterprise.sub_organizations_plugin_parent_to_be = '999' } + end + +end diff --git a/plugins/sub_organizations/test/unit/organization_test.rb b/plugins/sub_organizations/test/unit/organization_test.rb new file mode 100644 index 0000000..62a0e2e --- /dev/null +++ b/plugins/sub_organizations/test/unit/organization_test.rb @@ -0,0 +1,23 @@ +require 'test_helper' + +class OrganizationTest < ActiveSupport::TestCase + + should 'inlude the parent field in organization' do + organization = Organization.new + assert_nothing_raised { organization.sub_organizations_plugin_parent_to_be = '999' } + end + + should 'include the parent field in the FIELDS constant' do + assert_includes Organization::FIELDS, 'sub_organizations_plugin_parent_to_be' + end + + should 'relate organization with parent if the attribute is set' do + parent = fast_create(Organization) + organization = build(Organization, :identifier => 'some-org',:name => 'Some Org', :sub_organizations_plugin_parent_to_be => parent.id) + assert_not_includes Organization.children(parent), organization + + organization.save! + assert_includes Organization.children(parent), organization + end + +end diff --git a/plugins/sub_organizations/test/unit/relation_test.rb b/plugins/sub_organizations/test/unit/relation_test.rb new file mode 100644 index 0000000..6d74de1 --- /dev/null +++ b/plugins/sub_organizations/test/unit/relation_test.rb @@ -0,0 +1,110 @@ +require 'test_helper' + +class RelationTest < ActiveSupport::TestCase + + should 'validates presence of child and parent' do + org = fast_create(Organization) + relation = SubOrganizationsPlugin::Relation.new + + relation.parent = org + relation.valid? + assert relation.errors.include?(:child) + + relation.parent = nil + relation.child = org + relation.valid? + assert relation.errors.include?(:parent) + end + + should 'relate two organizations' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + relation = SubOrganizationsPlugin::Relation.create!(:parent => org1, :child => org2) + + assert_equal org1, relation.parent + assert_equal org2, relation.child + end + + should 'not allow self relation' do + org = fast_create(Organization) + relation = SubOrganizationsPlugin::Relation.new(:parent => org, :child => org) + refute relation.valid? + assert relation.errors.include?(:child) + end + + should 'be able to retrieve parents of an organization' do + child = fast_create(Organization) + parent1 = fast_create(Organization) + parent2 = fast_create(Organization) + SubOrganizationsPlugin::Relation.create!(:parent => parent1, :child => child) + SubOrganizationsPlugin::Relation.create!(:parent => parent2, :child => child) + + assert_includes Organization.parents(child), parent1 + assert_includes Organization.parents(child), parent2 + end + + should 'be able to retrieve children of an organization' do + parent = fast_create(Organization) + child1 = fast_create(Organization) + child2 = fast_create(Organization) + SubOrganizationsPlugin::Relation.create!(:parent => parent, :child => child1) + SubOrganizationsPlugin::Relation.create!(:parent => parent, :child => child2) + + assert_includes Organization.children(parent), child1 + assert_includes Organization.children(parent), child2 + end + + should 'not allow cyclical reference' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + SubOrganizationsPlugin::Relation.create!(:parent => org1, :child => org2) + relation = SubOrganizationsPlugin::Relation.new(:parent => org2, :child => org1) + + refute relation.valid? + assert relation.errors.include?(:child) + end + + should 'not allow multi-level paternity' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + org3 = fast_create(Organization) + SubOrganizationsPlugin::Relation.create!(:parent => org1, :child => org2) + r1 = SubOrganizationsPlugin::Relation.new(:parent => org2, :child => org3) + r2 = SubOrganizationsPlugin::Relation.new(:parent => org3, :child => org1) + + refute r1.valid? + assert r1.errors.include?(:child) + + refute r2.valid? + assert r2.errors.include?(:child) + end + + should 'add children' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + org3 = fast_create(Organization) + org4 = fast_create(Organization) + + SubOrganizationsPlugin::Relation.add_children(org1,org2) + assert_includes Organization.children(org1), org2 + + SubOrganizationsPlugin::Relation.add_children(org1,org3,org4) + assert_includes Organization.children(org1), org3 + assert_includes Organization.children(org1), org4 + end + + should 'remove children' do + org1 = fast_create(Organization) + org2 = fast_create(Organization) + org3 = fast_create(Organization) + org4 = fast_create(Organization) + SubOrganizationsPlugin::Relation.add_children(org1,org2,org3,org4) + + SubOrganizationsPlugin::Relation.remove_children(org1,org2) + assert_not_includes Organization.children(org1), org2 + + SubOrganizationsPlugin::Relation.remove_children(org1,org3,org4) + assert_not_includes Organization.children(org1), org3 + assert_not_includes Organization.children(org1), org4 + end +end diff --git a/plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_relation_test.rb b/plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_relation_test.rb deleted file mode 100644 index f3f07c4..0000000 --- a/plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_relation_test.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'test_helper' - -class SubOrganizationsPlugin::ApprovePaternityRelationTest < ActiveSupport::TestCase - - def setup - @requestor = create_user('some-user').person - end - - attr_reader :requestor - - should 'return parent' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - task = SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org2, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name) - - assert_equal SubOrganizationsPlugin::ApprovePaternityRelation.parent_approval(task), org1 - end - - should 'list pending children' do - organization = fast_create(Organization) - org1 = fast_create(Organization) - org2 = fast_create(Organization) - org3 = fast_create(Organization) - - SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org1, :temp_parent_id => organization.id, :temp_parent_type => organization.class.name) - SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org2, :temp_parent_id => organization.id, :temp_parent_type => organization.class.name) - - assert_includes Organization.pending_children(organization), org1 - assert_includes Organization.pending_children(organization), org2 - assert_not_includes Organization.pending_children(organization), org3 - end -end diff --git a/plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_test.rb b/plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_test.rb deleted file mode 100644 index a4d63ee..0000000 --- a/plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_test.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'test_helper' - -class SubOrganizationsPlugin::ApprovePaternityTest < ActiveSupport::TestCase - - def setup - @requestor = create_user('some-user').person - end - - attr_reader :requestor - - should 'create relation after creation' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - assert_difference 'SubOrganizationsPlugin::ApprovePaternityRelation.count', 1 do - SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name, :target => org2) - end - end - - should 'add children to parent after approving' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - - task = SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name, :target => org2) - assert_not_includes Organization.children(org1), org2 - - task.finish - assert_includes Organization.children(org1), org2 - end -end diff --git a/plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/create_enterprise_test.rb b/plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/create_enterprise_test.rb deleted file mode 100644 index 905ff48..0000000 --- a/plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/create_enterprise_test.rb +++ /dev/null @@ -1,11 +0,0 @@ -require 'test_helper' - -class CreateEnterpriseTest < ActiveSupport::TestCase - - should 'inlude the parent field in create enterprise' do - create_enterprise = CreateEnterprise.new - assert_nothing_raised { create_enterprise.sub_organizations_plugin_parent_to_be = '999' } - end - -end - diff --git a/plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/organization.rb b/plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/organization.rb deleted file mode 100644 index 62a0e2e..0000000 --- a/plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/organization.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'test_helper' - -class OrganizationTest < ActiveSupport::TestCase - - should 'inlude the parent field in organization' do - organization = Organization.new - assert_nothing_raised { organization.sub_organizations_plugin_parent_to_be = '999' } - end - - should 'include the parent field in the FIELDS constant' do - assert_includes Organization::FIELDS, 'sub_organizations_plugin_parent_to_be' - end - - should 'relate organization with parent if the attribute is set' do - parent = fast_create(Organization) - organization = build(Organization, :identifier => 'some-org',:name => 'Some Org', :sub_organizations_plugin_parent_to_be => parent.id) - assert_not_includes Organization.children(parent), organization - - organization.save! - assert_includes Organization.children(parent), organization - end - -end diff --git a/plugins/sub_organizations/test/unit/sub_organizations_plugin/relation_test.rb b/plugins/sub_organizations/test/unit/sub_organizations_plugin/relation_test.rb deleted file mode 100644 index a0e8557..0000000 --- a/plugins/sub_organizations/test/unit/sub_organizations_plugin/relation_test.rb +++ /dev/null @@ -1,110 +0,0 @@ -require 'test_helper' - -class SubOrganizationsPlugin::RelationTest < ActiveSupport::TestCase - - should 'validates presence of child and parent' do - org = fast_create(Organization) - relation = SubOrganizationsPlugin::Relation.new - - relation.parent = org - relation.valid? - assert relation.errors.include?(:child) - - relation.parent = nil - relation.child = org - relation.valid? - assert relation.errors.include?(:parent) - end - - should 'relate two organizations' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - relation = SubOrganizationsPlugin::Relation.create!(:parent => org1, :child => org2) - - assert_equal org1, relation.parent - assert_equal org2, relation.child - end - - should 'not allow self relation' do - org = fast_create(Organization) - relation = SubOrganizationsPlugin::Relation.new(:parent => org, :child => org) - refute relation.valid? - assert relation.errors.include?(:child) - end - - should 'be able to retrieve parents of an organization' do - child = fast_create(Organization) - parent1 = fast_create(Organization) - parent2 = fast_create(Organization) - SubOrganizationsPlugin::Relation.create!(:parent => parent1, :child => child) - SubOrganizationsPlugin::Relation.create!(:parent => parent2, :child => child) - - assert_includes Organization.parents(child), parent1 - assert_includes Organization.parents(child), parent2 - end - - should 'be able to retrieve children of an organization' do - parent = fast_create(Organization) - child1 = fast_create(Organization) - child2 = fast_create(Organization) - SubOrganizationsPlugin::Relation.create!(:parent => parent, :child => child1) - SubOrganizationsPlugin::Relation.create!(:parent => parent, :child => child2) - - assert_includes Organization.children(parent), child1 - assert_includes Organization.children(parent), child2 - end - - should 'not allow cyclical reference' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - SubOrganizationsPlugin::Relation.create!(:parent => org1, :child => org2) - relation = SubOrganizationsPlugin::Relation.new(:parent => org2, :child => org1) - - refute relation.valid? - assert relation.errors.include?(:child) - end - - should 'not allow multi-level paternity' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - org3 = fast_create(Organization) - SubOrganizationsPlugin::Relation.create!(:parent => org1, :child => org2) - r1 = SubOrganizationsPlugin::Relation.new(:parent => org2, :child => org3) - r2 = SubOrganizationsPlugin::Relation.new(:parent => org3, :child => org1) - - refute r1.valid? - assert r1.errors.include?(:child) - - refute r2.valid? - assert r2.errors.include?(:child) - end - - should 'add children' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - org3 = fast_create(Organization) - org4 = fast_create(Organization) - - SubOrganizationsPlugin::Relation.add_children(org1,org2) - assert_includes Organization.children(org1), org2 - - SubOrganizationsPlugin::Relation.add_children(org1,org3,org4) - assert_includes Organization.children(org1), org3 - assert_includes Organization.children(org1), org4 - end - - should 'remove children' do - org1 = fast_create(Organization) - org2 = fast_create(Organization) - org3 = fast_create(Organization) - org4 = fast_create(Organization) - SubOrganizationsPlugin::Relation.add_children(org1,org2,org3,org4) - - SubOrganizationsPlugin::Relation.remove_children(org1,org2) - assert_not_includes Organization.children(org1), org2 - - SubOrganizationsPlugin::Relation.remove_children(org1,org3,org4) - assert_not_includes Organization.children(org1), org3 - assert_not_includes Organization.children(org1), org4 - end -end diff --git a/plugins/sub_organizations/test/unit/sub_organizations_plugin_test.rb b/plugins/sub_organizations/test/unit/sub_organizations_plugin_test.rb index f6be796..3048da5 100644 --- a/plugins/sub_organizations/test/unit/sub_organizations_plugin_test.rb +++ b/plugins/sub_organizations/test/unit/sub_organizations_plugin_test.rb @@ -1,6 +1,6 @@ require 'test_helper' -class SubOrganizationsTest < ActiveSupport::TestCase +class SubOrganizationsPluginTest < ActiveSupport::TestCase def setup @plugin = SubOrganizationsPlugin.new @@ -29,7 +29,7 @@ class SubOrganizationsTest < ActiveSupport::TestCase org1_members = plugin.organization_members(org1) - assert_equal ActiveRecord::Relation, org1_members.class + assert_equal Person::ActiveRecord_Relation, org1_members.class assert_not_includes org1_members, member1 assert_includes org1_members, member2 assert_includes org1_members, member3 @@ -59,7 +59,7 @@ class SubOrganizationsTest < ActiveSupport::TestCase person1_memberships = plugin.person_memberships(person1) person2_memberships = plugin.person_memberships(person2) - assert_equal ActiveRecord::Relation, person1_memberships.class + assert_equal Organization::ActiveRecord_Relation, person1_memberships.class assert_includes person1_memberships, org1 assert_not_includes person1_memberships, org2 assert_not_includes person1_memberships, org3 @@ -109,4 +109,3 @@ class SubOrganizationsTest < ActiveSupport::TestCase assert_nil plugin.control_panel_buttons end end - -- libgit2 0.21.2