Amazon-SQS-Client

 view release on metacpan or  search on metacpan

t/01-sqs-client.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;

use Test::More;
use Data::Dumper;
use English qw(-no_match_vars);
use List::Util qw(any);

my $client;

plan skip_all => 'no service set'
  if !$ENV{SERVICE_URL};

########################################################################
subtest 'create client' => sub {
########################################################################
  use_ok('Amazon::SQS::Client');

  local $ENV{AWS_ACCESS_KEY_ID}     = 'TEST';
  local $ENV{AWS_SECRET_ACCESS_KEY} = 'TEST';

  $client = Amazon::SQS::Client->new( undef, undef, { ServiceURL => $ENV{SERVICE_URL} } );

  isa_ok( $client, 'Amazon::SQS::Client' )
    or BAIL_OUT('could not create client');
};

my $queueUrl;

########################################################################
subtest 'create queue' => sub {
########################################################################
  my $rsp = $client->createQueue( { QueueName => 'fooManQueue' } );

  my $result = $rsp->getCreateQueueResult();

  isa_ok( $result, 'Amazon::SQS::Model::CreateQueueResult')
    or BAIL_OUT('could not create queue');

  $queueUrl = $result->getQueueUrl;

  like( $queueUrl, qr/http.*\/fooManQueue/xsm )
    or diag( Dumper( [ result => $result ] ) );
};

########################################################################
subtest 'create queue' => sub {
########################################################################
  my $rsp = $client->listQueues();

  my $result = $rsp->getListQueuesResult();
  isa_ok($result, 'Amazon::SQS::Model::ListQueuesResult')
    or BAIL_OUT('could not list queues');

  my $queueUrls = $result->getQueueUrl();
  isa_ok( $queueUrls, 'ARRAY' );

  ok( any { $_ =~ /fooManQueue/xsm } @{$queueUrls} );
};

########################################################################
subtest 'send message' => sub {
########################################################################
  my $rsp = $client->sendMessage({ QueueUrl => $queueUrl,
                                   MessageBody => 'test message'



( run in 1.654 second using v1.01-cache-2.11-cpan-98e64b0badf )