| # |
| # 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. |
| # |
| |
| require "test/unit" |
| require "qpid/test" |
| require "qpid/spec010" |
| |
| class SpecTest < Test::Unit::TestCase |
| |
| def setup() |
| @spec = Qpid::Spec010.load() |
| end |
| |
| def testSessionHeader() |
| hdr = @spec[:header] |
| sc = Qpid::StringCodec.new(@spec) |
| hdr.encode(sc, Qpid::struct(hdr, :sync=>true)) |
| assert sc.encoded == "\x01\x01" |
| |
| sc = Qpid::StringCodec.new(@spec) |
| hdr.encode(sc, Qpid::struct(hdr, :sync=>false)) |
| assert sc.encoded == "\x01\x00" |
| end |
| |
| def encdec(type, value) |
| sc = Qpid::StringCodec.new(@spec) |
| type.encode(sc, value) |
| decoded = type.decode(sc) |
| return decoded |
| end |
| |
| def testMessageProperties() |
| mp = @spec[:message_properties] |
| rt = @spec[:reply_to] |
| |
| props = Qpid::struct(mp, |
| :content_length=>3735928559, |
| :reply_to=>Qpid::struct(rt, |
| :exchange=>"the exchange name", |
| :routing_key=>"the routing key")) |
| dec = encdec(mp, props) |
| assert props.content_length == dec.content_length |
| assert props.reply_to.exchange == dec.reply_to.exchange |
| assert props.reply_to.routing_key == dec.reply_to.routing_key |
| end |
| |
| def testMessageSubscribe() |
| ms = @spec[:message_subscribe] |
| cmd = Qpid::struct(ms, :exclusive=>true, :destination=>"this is a test") |
| dec = encdec(@spec[:message_subscribe], cmd) |
| assert cmd.exclusive == dec.exclusive |
| assert cmd.destination == dec.destination |
| end |
| |
| def testXid() |
| xid = @spec[:xid] |
| sc = Qpid::StringCodec.new(@spec) |
| st = Qpid::struct(xid, :format=>0, :global_id=>"gid", :branch_id=>"bid") |
| xid.encode(sc, st) |
| assert sc.encoded == "\x00\x00\x00\x10\x06\x04\x07\x00\x00\x00\x00\x00\x03gid\x03bid" |
| assert xid.decode(sc) == st |
| end |
| |
| end |