AnyEvent-WebService-Tracks
view release on metacpan or search on metacpan
t/03-project.t view on Meta::CPAN
dies_ok {
$proj->id(0);
};
dies_ok {
$proj->updated_at(DateTime->now);
};
lives_ok {
$proj->description('Phony description');
};
lives_ok {
$proj->description('Another name');
};
lives_ok {
$proj->position(4);
};
$proj->default_context(sub {
my ( $ctx, $e ) = @_;
ok(! defined($ctx));
ok(! defined($e));
if(@projects) {
$run->();
} else {
$cond->send;
}
});
});
};
$run->();
};
run_tests_in_loop {
my ( $cond ) = @_;
$tracks->create_project('P1', sub {
my ( $proj, $error ) = @_;
ok(! $proj);
ok($error);
$cond->send;
});
};
run_tests_in_loop {
my ( $cond ) = @_;
$tracks->projects(sub {
my ( $projects ) = @_;
my ( $one ) = @$projects;
$one->name('Not one');
$one->description('A different description');
$one->position(3);
my $updated_at = $one->updated_at;
my $timer;
$timer = AnyEvent->timer(
after => 2,
cb => sub {
undef $timer;
$one->update(sub {
my ( $proj ) = @_;
ok($proj);
is($proj->name, 'Not one');
is($proj->description, 'A different description');
is($proj->position, 3);
ok($proj->updated_at > $updated_at);
$cond->send;
});
},
);
});
};
run_tests_in_loop {
my ( $cond ) = @_;
$tracks->projects(sub {
my ( $projects ) = @_;
my ( $one, $two ) = @$projects;
$one->name($two->name);
$one->update(sub {
my ( $proj, $error ) = @_;
ok(! $proj);
ok($error);
$cond->send;
});
});
};
run_tests_in_loop {
my ( $cond ) = @_;
$tracks->projects(sub {
my ( $projects ) = @_;
my ( $one ) = @$projects;
$one->destroy(sub {
dies_ok {
$one->completed_at;
};
dies_ok {
$one->created_at;
};
dies_ok {
$one->id;
};
dies_ok {
$one->updated_at;
};
dies_ok {
$one->is_complete;
( run in 0.765 second using v1.01-cache-2.11-cpan-85f18b9d64f )