|
14 | 14 | ldap = Net::LDAP.new(:server => 'test.mocked.com', :port => 636, |
15 | 15 | :instrumentation_service => @service) |
16 | 16 |
|
17 | | - @tcp_socket.should_receive(:write) |
| 17 | + @tcp_socket.should_receive(:write).and_return(bytes_written = 1) |
| 18 | + |
| 19 | + write_events = @service.subscribe "write.net_ldap_connection" |
| 20 | + read_events = @service.subscribe "read.net_ldap_connection" |
18 | 21 |
|
19 | 22 | ber = Net::BER::BerIdentifiedArray.new([0, "", ""]) |
20 | 23 | ber.ber_identifier = 7 |
21 | | - result = [2, ber] |
22 | | - @tcp_socket.should_receive(:read_ber).and_return(result) |
| 24 | + read_result = [2, ber] |
| 25 | + @tcp_socket.should_receive(:read_ber).and_return(read_result) |
23 | 26 |
|
24 | 27 | ldap.bind.should be_true |
25 | 28 |
|
26 | | - # a write event, then a read event |
27 | | - @service.events.size.should == 2 |
| 29 | + # a write event |
| 30 | + payload, result = write_events.pop |
| 31 | + result.should == bytes_written |
| 32 | + |
| 33 | + # then a read event |
| 34 | + payload, result = read_events.pop |
| 35 | + result.should == read_result |
28 | 36 | end |
29 | 37 | end |
30 | 38 | end |
|
125 | 133 | read_result = [2, ber] |
126 | 134 | @tcp_socket.should_receive(:read_ber).and_return(read_result) |
127 | 135 |
|
| 136 | + write_events = @service.subscribe "write.net_ldap_connection" |
| 137 | + read_events = @service.subscribe "read.net_ldap_connection" |
| 138 | + |
128 | 139 | result = subject.modify(:dn => "1", :operations => [[:replace, "mail", "something@sothsdkf.com"]]) |
129 | 140 | result.should be_success |
130 | 141 |
|
131 | | - # a write event, then a read event |
132 | | - @service.events.size.should == 2 |
133 | | - |
134 | | - event, payload, result = @service.events.shift |
135 | | - event.should == "write.net_ldap_connection" |
| 142 | + # a write event |
| 143 | + payload, result = write_events.pop |
136 | 144 | payload.should have_key(:result) |
137 | 145 | payload.should have_key(:packet) |
138 | 146 |
|
139 | | - event, payload, result = @service.events.shift |
140 | | - event.should == "read.net_ldap_connection" |
| 147 | + # then a read event |
| 148 | + payload, result = read_events.pop |
141 | 149 | payload.should have_key(:result) |
142 | 150 | result.should == read_result |
143 | 151 | end |
|
0 commit comments