Skip to content

Commit d2df85e

Browse files
committed
Spec out Net::LDAP instrumentation service settings
1 parent 97e035a commit d2df85e

File tree

2 files changed

+45
-15
lines changed

2 files changed

+45
-15
lines changed

spec/spec_helper.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,17 @@ def raw_string(s)
88
s.respond_to?(:b) ? s.b : s
99
end
1010
end
11+
12+
class MockInstrumentationService
13+
attr_reader :events
14+
15+
def initialize
16+
@events = []
17+
end
18+
19+
def instrument(event, payload)
20+
result = yield
21+
@events << [event, payload, result]
22+
result
23+
end
24+
end

spec/unit/ldap_spec.rb

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
require 'spec_helper'
22

3+
describe Net::LDAP do
4+
describe "initialize" do
5+
context "on instrumentation_service configuration" do
6+
before do
7+
@tcp_socket = flexmock(:connection)
8+
@tcp_socket.should_receive(:close)
9+
flexmock(TCPSocket).should_receive(:new).and_return(@tcp_socket)
10+
@service = MockInstrumentationService.new
11+
end
12+
13+
it "should set the service object and instrument network calls" do
14+
ldap = Net::LDAP.new(:server => 'test.mocked.com', :port => 636,
15+
:instrumentation_service => @service)
16+
17+
@tcp_socket.should_receive(:write)
18+
19+
ber = Net::BER::BerIdentifiedArray.new([0, "", ""])
20+
ber.ber_identifier = 7
21+
result = [2, ber]
22+
@tcp_socket.should_receive(:read_ber).and_return(result)
23+
24+
ldap.bind.should be_true
25+
26+
# a write event, then a read event
27+
@service.events.size.should == 2
28+
end
29+
end
30+
end
31+
end
32+
333
describe Net::LDAP::Connection do
434
describe "initialize" do
535
context "when host is not responding" do
@@ -77,25 +107,11 @@
77107
end
78108

79109
context "instrumentation" do
80-
class InstrumentationService
81-
attr_reader :events
82-
83-
def initialize
84-
@events = []
85-
end
86-
87-
def instrument(event, payload)
88-
result = yield
89-
@events << [event, payload, result]
90-
result
91-
end
92-
end
93-
94110
before do
95111
@tcp_socket = flexmock(:connection)
96112
@tcp_socket.should_receive(:write)
97113
flexmock(TCPSocket).should_receive(:new).and_return(@tcp_socket)
98-
@service = InstrumentationService.new
114+
@service = MockInstrumentationService.new
99115
end
100116

101117
subject do

0 commit comments

Comments
 (0)