Net-CascadeCopy

 view release on metacpan or  search on metacpan

t/02_successful_copy.t  view on Meta::CPAN

#!perl
use Test::More tests => 26;
use Test::Differences;
use strict;

#use Log::Log4perl qw(:easy);
#Log::Log4perl->easy_init($DEBUG);
#my $logger = get_logger( 'default' );

use Net::CascadeCopy;

my $transfer_start = new Benchmark;

my $ccp;
ok( $ccp = Net::CascadeCopy->new( { ssh         => 'echo',
                                    command     => 'echo',
                                    source_path => '/foo',
                                    target_path => '/foo',
                                } ),
    "Creating a new ccp object"
);

my @hosts1 = map { "host$_" } 101 .. 105;
ok( $ccp->add_group( "first", [ @hosts1 ] ),
    "Adding first host group"
);

my @hosts2 = map { "host$_" } 201 .. 205;
ok( $ccp->add_group( "second", [ @hosts2 ] ),
    "Adding second host group"
);

{
    eq_or_diff( [ $ccp->_get_available_servers( 'first' ) ],
               [ 'localhost' ],
               "Checking that only localhost available in first group"
           );

    eq_or_diff( [ $ccp->_get_available_servers( 'second' ) ],
               [ 'localhost' ],
               "Checking that only localhost available in second group"
           );

    eq_or_diff( [ $ccp->_get_remaining_servers( 'first' ) ],
               \@hosts1,
               "Checking that all servers in first group are in the 'remaining' group"
           );

    eq_or_diff( [ $ccp->_get_remaining_servers( 'second' ) ],
               \@hosts2,
               "Checking that all servers in second group are in the 'remaining' group"
           );
}

ok( $ccp->_transfer_loop( $transfer_start ),
    "Executing a single transfer loop"
);

eq_or_diff( $ccp->get_transfer_map(),
           { localhost => { host101 => 1,
                            host201 => 1,
                        },
         },



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