MQSeries
view release on metacpan or search on metacpan
t.in/51oo-command-changes.t view on Meta::CPAN
#
# $Id: 51oo-command-changes.t,v 36.9 2012/09/26 16:15:34 jettisu Exp $
#
# (c) 2009-2012 Morgan Stanley & Co. Incorporated
# See ..../src/LICENSE for terms of distribution.
#
# Additional MQSeries::Command test to create, copy, change and delete
# objects.
#
use strict;
use warnings;
our %myconfig;
our $systemdir;
BEGIN {
require "../util/parse_config";
}
use Data::Dumper;
use Test::More tests => 102;
BEGIN {
our $VERSION = '1.34';
use_ok('__APITYPE__::MQSeries' => $VERSION);
use_ok('MQSeries::QueueManager' => $VERSION);
use_ok('MQSeries::Command' => $VERSION);
}
SKIP: {
if ( "__APITYPE__" eq "MQServer" && ! -d $systemdir ) {
skip("Cannot test server API on client host", 99);
}
#
# We'll only test MQSeries::Command if we run as user 'mqm'
#
my $username = ($^O =~ /^MSWin/ ? $ENV{USERNAME} : getpwuid($<));
unless (lc $username eq 'mqm') {
skip("Not testing MQSeries::Command unless running as user 'mqm', not '$username'", 99);
}
my $QMgrName = $myconfig{"QUEUEMGR"};
#
# Create QueueManager object and connect
#
my $qmgr_obj = MQSeries::QueueManager->
new('QueueManager' => $QMgrName,
'AutoConnect' => 0);
unless ($qmgr_obj->Connect()) {
skip("MQSeries::QueueManager Connect failed (Reason=" .
$qmgr_obj->Reason() . ")", 99);
}
ok($qmgr_obj, "MQSeries::QueueManager - Connect");
#
# Inquire the platform. Skip the tests if we're not on Unix.
#
my $rc = $qmgr_obj->Open();
unless ($rc) {
skip("Could not open queue manager", 98);
}
ok($rc, "MQSeries::QueueManager - Open");
my %qmgr_attr = $qmgr_obj->Inquire('Platform');
ok((keys %qmgr_attr), "MQSeries::QueueManager - Inquire");
$rc = $qmgr_obj->Close();
ok($rc, "MQSeries::QueueManager - Close");
unless ($qmgr_attr{Platform} eq 'UNIX') {
skip("Not testing MQSeries::Command on non-Unix platform $qmgr_attr{Platform}", 95);
}
#
# Create MQSeries::Command object
#
my $cmd = MQSeries::Command::->new('QueueManager' => $qmgr_obj,
'Type' => 'PCF');
unless (defined $cmd) {
skip("MQSeries::Command constructor failed", 95);
}
ok($cmd, "MQSeries::Command constructor");
#
# Use 'InquireQueueManager' to get queue manager information. We
# retain this, as we need the command level later to test MQ v6
# and MQ v7 specific commands.
#
my $qmgr_info = $cmd->InquireQueueManager();
ok($qmgr_info, "InquireQueueManager");
#
# For multiple object types, go through the following cycle
# that works out most of of the MQSeries::Command functionality
#
# - Delete object, should it exist
# - Create object
# - Inquire it back & verify
( run in 0.643 second using v1.01-cache-2.11-cpan-39bf76dae61 )