From ef1c4537a475dfaa0af0f3903430ec497062773d Mon Sep 17 00:00:00 2001 From: Matt Todd Date: Fri, 14 Nov 2014 13:51:36 -0800 Subject: [PATCH 1/2] Test membership validation configuration This replaces the existing tests on the top level MembershipValidators module since those tests were duplicates of more specific tests for each strategy. --- test/membership_validators_test.rb | 49 +++++++++++------------------- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/test/membership_validators_test.rb b/test/membership_validators_test.rb index e1a981f..74e8cf8 100644 --- a/test/membership_validators_test.rb +++ b/test/membership_validators_test.rb @@ -1,46 +1,31 @@ require_relative 'test_helper' -module GitHubLdapMembershipValidatorsTestCases - def make_validator(groups) - groups = @domain.groups(groups) - @validator.new(@ldap, groups) +class GitHubLdapMembershipValidatorsTest < GitHub::Ldap::Test + def setup + @ldap = GitHub::Ldap.new(options.merge(search_domains: "dc=github,dc=com")) end - def test_validates_user_in_group - validator = make_validator(%w(ghe-users)) - assert validator.perform(@entry) + def test_defaults_to_detect_strategy + assert_equal :detect, @ldap.membership_validator end - def test_does_not_validate_user_not_in_group - validator = make_validator(%w(ghe-admins)) - refute validator.perform(@entry) + def test_configured_to_classic_strategy + @ldap.configure_membership_validation_strategy :classic + assert_equal :classic, @ldap.membership_validator end - def test_does_not_validate_user_not_in_any_group - @entry = @domain.user?('groupless-user1') - validator = make_validator(%w(ghe-users ghe-admins)) - refute validator.perform(@entry) + def test_configured_to_recursive_strategy + @ldap.configure_membership_validation_strategy :recursive + assert_equal :recursive, @ldap.membership_validator end -end -class GitHubLdapMembershipValidatorsClassicTest < GitHub::Ldap::Test - include GitHubLdapMembershipValidatorsTestCases - - def setup - @ldap = GitHub::Ldap.new(options.merge(search_domains: "dc=github,dc=com")) - @domain = @ldap.domain("dc=github,dc=com") - @entry = @domain.user?('user1') - @validator = GitHub::Ldap::MembershipValidators::Classic + def test_configured_to_active_directory_strategy + @ldap.configure_membership_validation_strategy :active_directory + assert_equal :active_directory, @ldap.membership_validator end -end - -class GitHubLdapMembershipValidatorsRecursiveTest < GitHub::Ldap::Test - include GitHubLdapMembershipValidatorsTestCases - def setup - @ldap = GitHub::Ldap.new(options.merge(search_domains: "dc=github,dc=com")) - @domain = @ldap.domain("dc=github,dc=com") - @entry = @domain.user?('user1') - @validator = GitHub::Ldap::MembershipValidators::Recursive + def test_misconfigured_to_unrecognized_strategy_falls_back_to_default + @ldap.configure_membership_validation_strategy :unknown + assert_equal :detect, @ldap.membership_validator end end From 7cd4bc84f305675b27d884e54731df40a2ce77f2 Mon Sep 17 00:00:00 2001 From: Matt Todd Date: Fri, 14 Nov 2014 13:56:37 -0800 Subject: [PATCH 2/2] Move membership validator config tests to GitHub::Ldap test --- test/ldap_test.rb | 20 +++++++++++++++++++ test/membership_validators_test.rb | 31 ------------------------------ 2 files changed, 20 insertions(+), 31 deletions(-) delete mode 100644 test/membership_validators_test.rb diff --git a/test/ldap_test.rb b/test/ldap_test.rb index 250c6bb..6d4d5fb 100644 --- a/test/ldap_test.rb +++ b/test/ldap_test.rb @@ -77,6 +77,26 @@ def test_membership_validator_default assert_equal :detect, @ldap.membership_validator end + def test_membership_validator_configured_to_classic_strategy + @ldap.configure_membership_validation_strategy :classic + assert_equal :classic, @ldap.membership_validator + end + + def test_membership_validator_configured_to_recursive_strategy + @ldap.configure_membership_validation_strategy :recursive + assert_equal :recursive, @ldap.membership_validator + end + + def test_membership_validator_configured_to_active_directory_strategy + @ldap.configure_membership_validation_strategy :active_directory + assert_equal :active_directory, @ldap.membership_validator + end + + def test_membership_validator_misconfigured_to_unrecognized_strategy_falls_back_to_default + @ldap.configure_membership_validation_strategy :unknown + assert_equal :detect, @ldap.membership_validator + end + def test_capabilities assert_kind_of Net::LDAP::Entry, @ldap.capabilities end diff --git a/test/membership_validators_test.rb b/test/membership_validators_test.rb deleted file mode 100644 index 74e8cf8..0000000 --- a/test/membership_validators_test.rb +++ /dev/null @@ -1,31 +0,0 @@ -require_relative 'test_helper' - -class GitHubLdapMembershipValidatorsTest < GitHub::Ldap::Test - def setup - @ldap = GitHub::Ldap.new(options.merge(search_domains: "dc=github,dc=com")) - end - - def test_defaults_to_detect_strategy - assert_equal :detect, @ldap.membership_validator - end - - def test_configured_to_classic_strategy - @ldap.configure_membership_validation_strategy :classic - assert_equal :classic, @ldap.membership_validator - end - - def test_configured_to_recursive_strategy - @ldap.configure_membership_validation_strategy :recursive - assert_equal :recursive, @ldap.membership_validator - end - - def test_configured_to_active_directory_strategy - @ldap.configure_membership_validation_strategy :active_directory - assert_equal :active_directory, @ldap.membership_validator - end - - def test_misconfigured_to_unrecognized_strategy_falls_back_to_default - @ldap.configure_membership_validation_strategy :unknown - assert_equal :detect, @ldap.membership_validator - end -end