AWS-S3

 view release on metacpan or  search on metacpan

t/aws/s3/file_iterator.t  view on Meta::CPAN

#!perl

use strict;
use warnings;

package Mocked::HTTP::Response;

use Moose;
extends 'HTTP::Response';

sub content        { shift->{_msg}; }
sub code           { 200 }
sub is_success     { 1 }
sub header         { $_[1] =~ /content-length/i ? 1 : 'header' }

1;

package main;
use Test::More;
use Test::Deep;
use Test::Exception;
use FindBin qw/ $Script /;
use Data::Section::Simple 'get_data_section';

use Carp 'confess';
$SIG{__DIE__} = \&confess;

use_ok('AWS::S3');
use_ok('AWS::S3::FileIterator');
use_ok('AWS::S3::Bucket');

my $s3 = AWS::S3->new(
    access_key_id     => $ENV{AWS_ACCESS_KEY_ID}     // 'foo',
    secret_access_key => $ENV{AWS_SECRET_ACCESS_KEY} // 'bar',
    endpoint          => $ENV{AWS_ENDPOINT}          // 's3.baz.com',
);

isa_ok(
    my $bucket = AWS::S3::Bucket->new(
        s3   => $s3,
        name => $ENV{AWS_TEST_BUCKET} // 'maibucket',
    ),
    'AWS::S3::Bucket'
);

foreach my $args (
    [qw( page_size page_number )],
    [qw( bucket page_number )],
    [qw( bucket page_size )],
)
{
    throws_ok {
        AWS::S3::FileIterator->new( map { $_ => 1 } @$args );
    }
    qr/Required argument/, 'dies when arg is missing';
}

{
    isa_ok(
        my $iterator = AWS::S3::FileIterator->new(
            page_number => 2,
            page_size   => 1,
            bucket      => $bucket,
            prefix      => 'img',
        ),
        'AWS::S3::FileIterator'
    );

    is( $iterator->marker,'','marker' );
    is( $iterator->pattern,qr/.*/,'pattern' );
    isa_ok( $iterator->bucket,'AWS::S3::Bucket' );
    is( $iterator->page_size,1,'page_size' );
    is( $iterator->has_prev,'','has_prev' );
    is( $iterator->has_next,undef,'has_next' );
    is( $iterator->page_number,1,'get page_number' );
    is( $iterator->page_number(1),0,'set page_number' );
    is( $iterator->prefix,'img','prefix' );

    {
        my $iterator2 = AWS::S3::FileIterator->new(
            page_number => 1,



( run in 1.315 second using v1.01-cache-2.11-cpan-39bf76dae61 )