Test search strategy config, detection, defaults

This commit is contained in:
Matt Todd 2014-12-05 18:45:22 -08:00
Родитель d7b83cd312
Коммит 42ffdb659c
3 изменённых файлов: 31 добавлений и 106 удалений

Просмотреть файл

@ -73,28 +73,45 @@ module GitHubLdapTestCases
assert_equal "dc=github,dc=com", payload[:base]
end
def test_membership_validator_default
assert_equal :detect, @ldap.membership_validator
def test_search_strategy_defaults
assert_equal GitHub::Ldap::MembershipValidators::Recursive, @ldap.membership_validator
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
end
def test_membership_validator_configured_to_classic_strategy
@ldap.configure_membership_validation_strategy :classic
assert_equal :classic, @ldap.membership_validator
def test_search_strategy_detects_active_directory
caps = Net::LDAP::Entry.new
caps[:supportedcapabilities] = [GitHub::Ldap::ACTIVE_DIRECTORY_V61_R2_OID]
@ldap.stub :capabilities, caps do
@ldap.configure_search_strategy :detect
assert_equal GitHub::Ldap::MembershipValidators::ActiveDirectory, @ldap.membership_validator
assert_equal GitHub::Ldap::MemberSearch::ActiveDirectory, @ldap.member_search_strategy
end
end
def test_membership_validator_configured_to_recursive_strategy
@ldap.configure_membership_validation_strategy :recursive
assert_equal :recursive, @ldap.membership_validator
def test_search_strategy_configured_to_classic
@ldap.configure_search_strategy :classic
assert_equal GitHub::Ldap::MembershipValidators::Classic, @ldap.membership_validator
assert_equal GitHub::Ldap::MemberSearch::Classic, @ldap.member_search_strategy
end
def test_membership_validator_configured_to_active_directory_strategy
@ldap.configure_membership_validation_strategy :active_directory
assert_equal :active_directory, @ldap.membership_validator
def test_search_strategy_configured_to_recursive
@ldap.configure_search_strategy :recursive
assert_equal GitHub::Ldap::MembershipValidators::Recursive, @ldap.membership_validator
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
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
def test_search_strategy_configured_to_active_directory
@ldap.configure_search_strategy :active_directory
assert_equal GitHub::Ldap::MembershipValidators::ActiveDirectory, @ldap.membership_validator
assert_equal GitHub::Ldap::MemberSearch::ActiveDirectory, @ldap.member_search_strategy
end
def test_search_strategy_misconfigured_to_unrecognized_strategy_falls_back_to_default
@ldap.configure_search_strategy :unknown
assert_equal GitHub::Ldap::MembershipValidators::Recursive, @ldap.membership_validator
assert_equal GitHub::Ldap::MemberSearch::Recursive, @ldap.member_search_strategy
end
def test_capabilities

Просмотреть файл

@ -1,42 +0,0 @@
require_relative '../test_helper'
# NOTE: Since this strategy is targeted at detecting ActiveDirectory
# capabilities, and we don't have AD setup in CI, we stub out actual queries
# and test against what AD *would* respond with.
class GitHubLdapDetectMemberSearchTest < GitHub::Ldap::Test
include GitHub::Ldap::Capabilities
def setup
@ldap = GitHub::Ldap.new(options.merge(search_domains: %w(dc=github,dc=com)))
@domain = @ldap.domain("dc=github,dc=com")
@entry = @domain.user?('user1')
@strategy = GitHub::Ldap::MemberSearch::Detect.new(@ldap)
end
def test_defers_to_configured_strategy
@ldap.configure_member_search_strategy(:classic)
assert_kind_of GitHub::Ldap::MemberSearch::Classic, @strategy.strategy
end
def test_detects_active_directory
caps = Net::LDAP::Entry.new
caps[:supportedcapabilities] = [ACTIVE_DIRECTORY_V61_R2_OID]
@ldap.stub :capabilities, caps do
assert_kind_of GitHub::Ldap::MemberSearch::ActiveDirectory,
@strategy.strategy
end
end
def test_falls_back_to_recursive
caps = Net::LDAP::Entry.new
caps[:supportedcapabilities] = []
@ldap.stub :capabilities, caps do
assert_kind_of GitHub::Ldap::MemberSearch::Recursive,
@strategy.strategy
end
end
end

Просмотреть файл

@ -1,50 +0,0 @@
require_relative '../test_helper'
# NOTE: Since this strategy is targeted at detecting ActiveDirectory
# capabilities, and we don't have AD setup in CI, we stub out actual queries
# and test against what AD *would* respond with.
class GitHubLdapDetectMembershipValidatorsTest < GitHub::Ldap::Test
include GitHub::Ldap::Capabilities
def setup
@ldap = GitHub::Ldap.new(options.merge(search_domains: %w(dc=github,dc=com)))
@domain = @ldap.domain("dc=github,dc=com")
@entry = @domain.user?('user1')
@validator = GitHub::Ldap::MembershipValidators::Detect
end
def make_validator(groups)
groups = @domain.groups(groups)
@validator.new(@ldap, groups)
end
def test_defers_to_configured_strategy
@ldap.configure_membership_validation_strategy(:classic)
validator = make_validator(%w(group))
assert_kind_of GitHub::Ldap::MembershipValidators::Classic, validator.strategy
end
def test_detects_active_directory
caps = Net::LDAP::Entry.new
caps[:supportedcapabilities] = [ACTIVE_DIRECTORY_V61_R2_OID]
validator = make_validator(%w(group))
@ldap.stub :capabilities, caps do
assert_kind_of GitHub::Ldap::MembershipValidators::ActiveDirectory,
validator.strategy
end
end
def test_falls_back_to_recursive
caps = Net::LDAP::Entry.new
caps[:supportedcapabilities] = []
validator = make_validator(%w(group))
@ldap.stub :capabilities, caps do
assert_kind_of GitHub::Ldap::MembershipValidators::Recursive,
validator.strategy
end
end
end