AnyEvent-WebService-Tracks
view release on metacpan or search on metacpan
t/03-project.t view on Meta::CPAN
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
use List::MoreUtils qw(all);
use Scalar::Util qw(looks_like_number);
use Storable qw(dclone);
use Test::AnyEvent::WebService::Tracks;
use Test::Exception;
use UNIVERSAL ();
my @orig_projects = qw(P1 P2 P3 P4);
my @projects = @orig_projects;
plan tests => 62 * @projects + 78;
my $tracks = get_tracks;
run_tests_in_loop {
my ( $cond ) = @_;
my $pos = 1;
my $run;
$run = sub {
my $name = shift @projects;
$tracks->create_project($name, sub {
my ( $proj ) = @_;
ok($proj);
isa_ok($proj, 'AnyEvent::WebService::Tracks::Project');
is($proj->name, $name);
ok(! defined($proj->description));
ok(looks_like_number $proj->position);
ok(! defined($proj->completed_at));
ok(! $proj->is_complete);
ok(! $proj->is_hidden);
ok($proj->is_active);
isa_ok($proj->created_at, 'DateTime');
isa_ok($proj->updated_at, 'DateTime');
dies_ok {
$proj->completed_at(DateTime->now);
};
dies_ok {
$proj->created_at(DateTime->now);
};
dies_ok {
$proj->id(0);
};
dies_ok {
$proj->updated_at(DateTime->now);
};
lives_ok {
$proj->description('Phony description');
};
lives_ok {
$proj->name('Another name');
};
lives_ok {
( run in 1.478 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )