BusyBird

 view release on metacpan or  search on metacpan

t/Timeline.t  view on Meta::CPAN

use strict;
use warnings;
use lib "t";
use Test::More;
use Test::Builder;
use Test::Fatal qw(exception);
use Test::MockObject;
use BusyBird::Test::StatusStorage qw(:status test_cases_for_ack);
use testlib::Timeline_Util qw(sync status test_sets test_content *LOOP *UNLOOP);
use Test::Memory::Cycle;
use BusyBird::DateTime::Format;
use BusyBird::Log;
use DateTime;
use DateTime::Duration;
use Storable qw(dclone);
use utf8;

BEGIN {
    use_ok('BusyBird::Timeline');
    use_ok('BusyBird::StatusStorage::SQLite');
    use_ok('BusyBird::Watcher');
}

$BusyBird::Log::Logger = undef;

our $CREATE_STORAGE;

sub test_unacked_counts {
    my ($timeline, $exp, $msg) = @_;
    local $Test::Builder::Level = $Test::Builder::Level + 1;
    my ($error, $got) = sync($timeline, 'get_unacked_counts');
    is($error, undef, "get_unacked_counts succeed");
    is_deeply($got, $exp, $msg);
}

sub test_error_back {
    my (%args) = @_;
    local $Test::Builder::Level = $Test::Builder::Level + 1;
    my $timeline = $args{timeline};
    my $method = $args{method};
    my $args = $args{args};
    my $exp_error = $args{exp_error};
    my $label = $args{label} || '';
    my ($got_error) = sync($timeline, $method, %$args);
    ok($got_error, "$label: error expected.");
    like($got_error, $exp_error, "$label: error message is as expected.");
}

sub filter {
    my ($timeline, $mode, $sync_filter) = @_;
    if($mode eq 'sync') {
        $timeline->add_filter($sync_filter);
    }elsif($mode eq 'async') {
        $timeline->add_filter(sub {
            my ($statuses, $done) = @_;
            $done->($sync_filter->($statuses));
        }, 1);
    }
}

sub test_watcher_basic {
    my ($watcher) = @_;
    local $Test::Builder::Level = $Test::Builder::Level + 1;
    isa_ok($watcher, 'BusyBird::Watcher');
    can_ok($watcher, 'active', 'cancel');
}



( run in 1.512 second using v1.01-cache-2.11-cpan-54e63673c56 )