From 2a74577d5f08b1b2a4ac33b8d9753b3f8d1efba4 Mon Sep 17 00:00:00 2001 From: Daniel Abrahamsson Date: Fri, 7 Oct 2011 15:56:55 +0200 Subject: [PATCH] search should return result set if :return_result is unspecified (nil). Corrects incorrect behaviour introduced in a4819e525f29d83357a298065df06acf5903b1af --- lib/net/ldap.rb | 5 +++-- spec/unit/ldap/search_spec.rb | 11 +++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/net/ldap.rb b/lib/net/ldap.rb index 27bc5e9..b92a13f 100644 --- a/lib/net/ldap.rb +++ b/lib/net/ldap.rb @@ -619,7 +619,8 @@ class Net::LDAP end args[:base] ||= @base - result_set = args[:return_result] == false ? nil : [] + return_result_set = args[:return_result] != false + result_set = return_result_set ? [] : nil if @open_connection @result = @open_connection.search(args) { |entry| @@ -642,7 +643,7 @@ class Net::LDAP end end - if args[:return_result] + if return_result_set @result == 0 ? result_set : nil else @result == 0 diff --git a/spec/unit/ldap/search_spec.rb b/spec/unit/ldap/search_spec.rb index 3bf2187..61cb4fd 100644 --- a/spec/unit/ldap/search_spec.rb +++ b/spec/unit/ldap/search_spec.rb @@ -13,17 +13,24 @@ describe Net::LDAP, "search method" do @connection.instance_variable_set(:@open_connection, FakeConnection.new) end - context "when returning result set" do + context "when :return_result => true" do it "should return nil upon error" do result_set = @connection.search(:return_result => true) result_set.should be_nil end end - context "when returning boolean" do + context "when :return_result => false" do it "should return false upon error" do success = @connection.search(:return_result => false) success.should == false end end + + context "When :return_result is not given" do + it "should return nil upon error" do + result_set = @connection.search + result_set.should be_nil + end + end end