diff options
Diffstat (limited to 'qpid/cpp/bindings/qpid/ruby/test/test_connection.rb')
-rw-r--r-- | qpid/cpp/bindings/qpid/ruby/test/test_connection.rb | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/qpid/cpp/bindings/qpid/ruby/test/test_connection.rb b/qpid/cpp/bindings/qpid/ruby/test/test_connection.rb new file mode 100644 index 0000000000..648fb0588a --- /dev/null +++ b/qpid/cpp/bindings/qpid/ruby/test/test_connection.rb @@ -0,0 +1,257 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +$:.unshift File.join(File.dirname(__FILE__), "..", "lib") + +require 'test/unit' +require 'flexmock/test_unit' + +require 'cqpid' +require 'qpid/connection' + +class TestConnection < Test::Unit::TestCase + + def setup + @connection_impl = flexmock("connection_impl") + @other_connection = flexmock("other_connection") + @other_connection_impl = flexmock("other_connection_impl") + @cqpid_connection = flexmock(Cqpid::Connection) + + @session = flexmock("session") + @session_name = "test-session" + + @url = "localhost" + @options = {} + + @connection = Qpid::Messaging::Connection.new(@url, @options, @connection_impl) + end + + def test_create_with_username_and_password + @cqpid_connection. + should_receive(:new). + once.with("localhost", + {"username" => "username", + "password" => "password"}). + and_return(@connection_impl) + @connection_impl. + should_receive(:open). + once + + result = Qpid::Messaging::Connection.new("localhost", + :username => "username", + :password => "password") + result.open + + assert_same @connection_impl, result.connection_impl + end + + def test_create_with_hostname + result = Qpid::Messaging::Connection.new("localhost") + + assert_not_nil result + end + + def test_open + @cqpid_connection. + should_receive(:new). + once. + with(@url, {}). + and_return(@connection_impl) + @connection_impl. + should_receive(:open). + once + + @connection.open + + assert_same @connection_impl, @connection.connection_impl + end + + def test_check_open_when_open + @connection_impl. + should_receive(:isOpen). + once. + and_return(true) + + assert @connection.open? + end + + def test_check_open_before_connection + result = Qpid::Messaging::Connection.new("hostname") + + assert !result.open? + end + + def test_check_open_when_closed + @connection_impl. + should_receive(:isOpen). + once. + and_return(false) + + assert !@connection.open? + end + + def test_close_an_unopened_session + @connection_impl. + should_receive(:isOpen). + once. + and_return(false) + + @connection.close + end + + def test_close + @connection_impl. + should_receive(:isOpen). + once. + and_return(true). + should_receive(:close). + once + + @connection.close + end + + def test_create_session_without_name + @connection_impl. + should_receive(:isOpen). + once. + and_return(true). + should_receive(:createSession). + once. + with(""). + and_return(@session) + + result = @connection.create_session + + assert_not_nil result + assert_same @session, result.session_impl + end + + def test_create_session + @connection_impl. + should_receive(:isOpen). + once. + and_return(true). + should_receive(:createSession). + once. + with(@session_name). + and_return(@session) + + result = @connection.create_session :name => @session_name + + assert_not_nil result + assert_same @session, result.session_impl + end + + def test_create_session_raises_exception_when_closed + @connection_impl. + should_receive(:isOpen). + once. + and_return(false) + + assert_raise(RuntimeError) {@connection.create_session @session_name} + end + + def test_create_transactional_session + @connection_impl. + should_receive(:isOpen). + once. + and_return(true). + should_receive(:createTransactionalSession). + once. + with(""). + and_return(@session) + + result = @connection.create_session :transactional => true + + assert_not_nil result + assert_same @session, result.session_impl + end + + def test_authenticated_username_when_not_connected + @connection_impl. + should_receive(:isOpen). + once. + and_return(false) + + result = @connection.authenticated_username + + assert_nil result + end + + def test_authenticated_username + @connection_impl. + should_receive(:isOpen). + once. + and_return(true). + should_receive(:getAuthenticatedUsername). + once. + and_return("farkle") + + result = @connection.authenticated_username + + assert_equal "farkle", result + end + + def test_get_session_with_invalid_name + @connection_impl. + should_receive(:getSession). + once. + with(@session_name). + and_return(nil) + + result = @connection.session @session_name + + assert_nil result + end + + # APIs inherited from Handle + + def test_is_valid + @connection_impl. + should_receive(:isValid). + once. + and_return(true) + + assert @connection.valid? + end + + def test_is_null + @connection_impl. + should_receive(:isNull). + once. + and_return(false) + + assert !@connection.null? + end + + def test_swap + @other_connection. + should_receive(:connection_impl). + once. + and_return(@other_connection_impl) + @connection_impl. + should_receive(:swap). + once. + with(@other_connection_impl) + + @connection.swap @other_connection + end + +end + |