spec/unit/ldap_spec.rb in socialcast-net-ldap-0.1.7 vs spec/unit/ldap_spec.rb in socialcast-net-ldap-0.1.8
- old
+ new
@@ -5,44 +5,65 @@
context "when host is not responding" do
before(:each) do
flexmock(TCPSocket).
should_receive(:new).and_raise(Errno::ECONNREFUSED)
end
-
+
it "should raise LdapError" do
lambda {
Net::LDAP::Connection.new(
- :server => 'test.mocked.com',
+ :server => 'test.mocked.com',
:port => 636)
}.should raise_error(Net::LDAP::LdapError)
end
end
context "when host is blocking the port" do
before(:each) do
flexmock(TCPSocket).
should_receive(:new).and_raise(SocketError)
end
-
+
it "should raise LdapError" do
lambda {
Net::LDAP::Connection.new(
- :server => 'test.mocked.com',
+ :server => 'test.mocked.com',
:port => 636)
}.should raise_error(Net::LDAP::LdapError)
end
end
context "on other exceptions" do
before(:each) do
flexmock(TCPSocket).
should_receive(:new).and_raise(NameError)
end
-
+
it "should rethrow the exception" do
lambda {
Net::LDAP::Connection.new(
- :server => 'test.mocked.com',
+ :server => 'test.mocked.com',
:port => 636)
}.should raise_error(NameError)
end
end
end
-end
\ No newline at end of file
+ describe "wrap_with_ssl" do
+ before(:each) do
+ @conn = flexmock(TCPSocket).should_receive(:new).and_return(flexmock('tcpsocket'))
+ @ssl_con = flexmock('sslsocket')
+ @ssl_con.should_receive(:connect)
+ @ssl_con.should_receive(:sync_close=)
+ flexmock(OpenSSL::SSL::SSLSocket).should_receive(:new).and_return(@ssl_con)
+ end
+ it "allows no options to be passed" do
+ flexmock(OpenSSL::SSL::SSLContext).new_instances.should_receive(:ssl_version=).never
+ Net::LDAP::Connection.wrap_with_ssl(@conn).should eql(@ssl_con)
+ end
+ it "allows options to be passed" do
+ flexmock(OpenSSL::SSL::SSLContext).new_instances.should_receive(:ssl_version=).never
+ Net::LDAP::Connection.wrap_with_ssl(@conn, {}).should eql(@ssl_con)
+ end
+ it "communicates over the ssl_version configured" do
+ flexmock(OpenSSL::SSL::SSLContext).new_instances.should_receive(:ssl_version=).with(:SSLv3)
+ Net::LDAP::Connection.wrap_with_ssl(@conn, {:ssl_version => :SSLv3}).should eql(@ssl_con)
+ end
+ end
+end