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 )