blob: 648fb0588a4659bde0ec407ee0bde169e2d3e13c [file] [log] [blame]
#
# 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