modulesync 2017-02-07

This commit is contained in:
Zach Leslie
2017-02-07 21:30:39 -08:00
parent 589a63b10e
commit 5e4e0671ef
15 changed files with 795 additions and 152 deletions

View File

@@ -4,62 +4,64 @@ require 'net/ldap'
describe 'PuppetX::LDAPquery' do
describe 'results' do
let (:conf) { {
:host => 'ldap.example.com',
:port => 9009,
} }
let(:conf) do
{
host: 'ldap.example.com',
port: 9009
}
end
let (:base) { 'dc=example,dc=com' }
let(:base) { 'dc=example,dc=com' }
it "should fail with no filter" do
it 'fails with no filter' do
filter = ''
attributes = ['uid']
expect { PuppetX::LDAPquery.new(filter, attributes).results }.to raise_error
end
it "should not fail when using defaults in puppet.conf" do
it 'does not fail when using defaults in puppet.conf' do
filter = '(uid=zach)'
attributes = ['uid']
l = PuppetX::LDAPquery.new(filter, attributes, base)
expect { l.get_config }.to_not raise_error
expect { l.ldap_config }.not_to raise_error
end
it 'should return the desired results' do
it 'returns the desired results' do
filter = '(uid=zach)'
attributes = ['uid']
wanted = [{"dn"=>["uid=zach,ou=users,dc=puppetlabs,dc=com"], "uid"=>["zach"]}]
entries = Marshal.load(File.read("spec/fixtures/entries_single.obj"))
wanted = [{ 'dn' => ['uid=zach,ou=users,dc=puppetlabs,dc=com'], 'uid' => ['zach'] }]
entries = Marshal.load(File.read('spec/fixtures/entries_single.obj'))
l = PuppetX::LDAPquery.new(filter, attributes, base)
expect(l).to receive(:get_entries).and_return(entries)
allow(l).to receive(:entries).and_return(entries)
expect(l.results).to eq(wanted)
end
context "a multivalued attribute is requested" do
it 'should return the attribute values as an array to the attribute' do
context 'a multivalued attribute is requested' do
it 'returns the attribute values as an array to the attribute' do
filter = '(uid=zach)'
attributes = ['objectClass']
wanted =[{"dn"=>["uid=zach,ou=users,dc=puppetlabs,dc=com"], "objectclass"=>["posixAccount", "shadowAccount", "inetOrgPerson", "puppetPerson", "ldapPublicKey", "top"]}]
wanted = [{ 'dn' => ['uid=zach,ou=users,dc=puppetlabs,dc=com'], 'objectclass' => %w(posixAccount shadowAccount inetOrgPerson puppetPerson ldapPublicKey top) }]
entries = Marshal.load(File.read("spec/fixtures/entries_objectClass.obj"))
entries = Marshal.load(File.read('spec/fixtures/entries_objectClass.obj'))
l = PuppetX::LDAPquery.new(filter, attributes, base)
expect(l).to receive(:get_entries).and_return(entries)
allow(l).to receive(:entries).and_return(entries)
expect(l.results).to eq(wanted)
end
it 'should return the attributes without new lines' do
it 'returns the attributes without new lines' do
filter = '(uid=zach)'
attributes = ['sshPublicKey']
wanted = [{"dn"=>["uid=zach,ou=users,dc=puppetlabs,dc=com"], "sshpublickey"=>["ssh-rsa AAAAB...1== user@somewhere", "ssh-rsa AAAAB...2== user@somewhereelse"]}]
wanted = [{ 'dn' => ['uid=zach,ou=users,dc=puppetlabs,dc=com'], 'sshpublickey' => ['ssh-rsa AAAAB...1== user@somewhere', 'ssh-rsa AAAAB...2== user@somewhereelse'] }]
entries = Marshal.load(File.read("spec/fixtures/entries_multivalue.obj"))
entries = Marshal.load(File.read('spec/fixtures/entries_multivalue.obj'))
l = PuppetX::LDAPquery.new(filter, attributes, base)
expect(l).to receive(:get_entries).and_return(entries)
allow(l).to receive(:entries).and_return(entries)
expect(l.results).to eq(wanted)
end
end