Skip to content

Commit

Permalink
Responds to bind requests
Browse files Browse the repository at this point in the history
  • Loading branch information
aanand committed Jul 22, 2010
0 parents commit bea4a07
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "vendor/ruby-ldapserver"]
path = vendor/ruby-ldapserver
url = file:///Users/aanand/src/ruby-ldapserver
1 change: 1 addition & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--colour
37 changes: 37 additions & 0 deletions lib/fakeldap.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
$:.unshift(File.expand_path('../../vendor/ruby-ldapserver/lib', __FILE__))
require 'ldap/server'

module FakeLDAP
class Server < LDAP::Server
def initialize(options={})
super(default_options.merge(options))
end

def default_options
{
:operation_class => ::FakeLDAP::Operation,
:operation_args => [self]
}
end
end

class Operation < LDAP::Server::Operation
def initialize(connection, messageID, server)
super(connection, messageID)
@server = server
end

def simple_bind(version, dn, password)
puts "simple_bind: #{version}, #{dn}, #{password}"
super(version, dn, password)
end

def search(basedn, scope, deref, filter); raise "not implemented"; end
def modify(dn, modification); raise "not implemented"; end
def add(dn, av); raise "not implemented"; end
def del(dn); raise "not implemented"; end
def modifydn(entry, newrdn, deleteoldrdn, newSuperior); raise "not implemented"; end
def compare(entry, attr, val); raise "not implemented"; end
end
end

23 changes: 23 additions & 0 deletions spec/server_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
require 'spec_helper'

describe FakeLDAP::Server do
before :all do
@port = rand(1000) + 1000

@server = FakeLDAP::Server.new(:port => @port)
@server.run_tcpserver

@client = Net::LDAP.new
@client.port = @port
end

after :all do
@server.stop
end

it "responds to bind requests" do
@client.auth("user", "pass")
@client.bind
end
end

5 changes: 5 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require 'rspec'
require 'net/ldap'

$:.unshift(File.expand_path('../../lib', __FILE__))
require 'fakeldap'
1 change: 1 addition & 0 deletions vendor/ruby-ldapserver
Submodule ruby-ldapserver added at 738c93

0 comments on commit bea4a07

Please sign in to comment.