Kouhei Sutou
null+****@clear*****
Wed Mar 1 16:01:33 JST 2017
Kouhei Sutou 2017-03-01 16:01:33 +0900 (Wed, 01 Mar 2017) New Revision: 5cd6b186c539e1d394eb4639fcac5eafdec72452 https://github.com/ranguba/groonga-client/commit/5cd6b186c539e1d394eb4639fcac5eafdec72452 Message: Support nil as the initial parameters Added files: test/request/test-merger.rb Modified files: lib/groonga/client/request/generic.rb Modified: lib/groonga/client/request/generic.rb (+13 -1) =================================================================== --- lib/groonga/client/request/generic.rb 2017-03-01 14:52:55 +0900 (2d9dcbf) +++ lib/groonga/client/request/generic.rb 2017-03-01 16:01:33 +0900 (7299e4b) @@ -172,7 +172,19 @@ module Groonga class OverwriteMerger < ParameterMerger def to_parameters - @parameters1.to_parameters.merge(@parameters2.to_parameters) + if****@param*****? + if****@param*****? + {} + else + @parameters2.to_parameters + end + else + if****@param*****? + @parameters1.to_parameters + else + @parameters1.to_parameters.merge(@parameters2.to_parameters) + end + end end end end Added: test/request/test-merger.rb (+48 -0) 100644 =================================================================== --- /dev/null +++ test/request/test-merger.rb 2017-03-01 16:01:33 +0900 (add65c7) @@ -0,0 +1,48 @@ +# Copyright (C) 2017 Kouhei Sutou <kou �� clear-code.com> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +class TestRequestMerger < Test::Unit::TestCase + sub_test_case "OverwriteMerger" do + def merge(parameters1, parameters2) + klass = Groonga::Client::Request::OverwriteMerger + klass.new(parameters1, parameters2).to_parameters + end + + def param(name, value) + Groonga::Client::Request::RequestParameter.new(name, value) + end + + test "(nil, nil)" do + assert_equal({}, merge(nil, nil)) + end + + test "(nil, parameter)" do + assert_equal({"name" => "value"}, + merge(nil, param("name", "value"))) + end + + test "(parameter, nil)" do + assert_equal({"name" => "value"}, + merge(param("name", "value"), nil)) + end + + test "(parameter, parameter)" do + assert_equal({"name" => "value2"}, + merge(param("name", "value1"), + param("name", "value2"))) + end + end +end -------------- next part -------------- HTML����������������������������... 下載