blob: 8f1ea3d81a4bc2daa8d31534959978fdf1a30f26 [file] [log] [blame]
#!/bin/env perl -w
#
# 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.
#
use Test::More qw(no_plan);
use Test::Exception;
require 'utils.pm';
BEGIN {use_ok('qpid_proton');}
require_ok('qpid_proton');
my $data;
my $hash;
my $result;
#=============================================================================
# raises an error when getting a hash from a null data object
#=============================================================================
dies_ok(sub {qpid::proton::get_map_from(undef);},
"Raises an error when getting a hash froma null data object");
#=============================================================================
# raises an error if the current node is not a map
#=============================================================================
$data = qpid::proton::Data->new;
$data->put_string(random_string(16));
$data->rewind;
$data->next;
dies_ok(sub {qpid::proton::get_map_from($data);},
"Raises an error if the current node is not a map");
#=============================================================================
# returns a hash from a Data object
#=============================================================================
$data = qpid::proton::Data->new;
$hash = random_hash(rand(128) + 64);
$data->put_map;
$data->enter;
foreach my $key (keys \%{$hash}) {
$data->put_string($key);
$data->put_string($hash->{$key});
}
$data->exit;
$data->rewind;
$data->next;
{
$result = qpid::proton::get_map_from($data);
ok(defined($result), "Getting a hash returns a value");
ok(scalar(keys %{$result}) == scalar(keys %{$hash}),
"Returned the same number of keys");
is_deeply(\%{$result}, \%{$hash}, "Returned the same hash values");
}