AnyEvent-WebService-Tracks
view release on metacpan or search on metacpan
t/06-project-todos.t view on Meta::CPAN
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
use Test::AnyEvent::WebService::Tracks tests => 60;
use Test::Exception;
clear_tracks;
my $tracks = get_tracks;
my @project_names = map { "Project $_" } 1..4;
my @todo_names = map { "Todo $_" } 1..8;
my @projects;
my @todos;
my ( $ctx, $ctx2 );
run_tests_in_loop {
my ( $cond ) = @_;
$tracks->create_context('Test Context', sub {
( $ctx ) = @_;
ok($ctx);
$tracks->create_context('Test Context 2', sub {
( $ctx2 ) = @_;
ok($ctx2);
my $create_todos;
my $create_projects;
$create_todos = sub {
my ( $index ) = @_;
my $name = $todo_names[$index];
my $project = $projects[int($index / 2)];
$tracks->create_todo(
description => $name,
project => $project, sub {
my ( $t ) = @_;
ok($t);
push @todos, $t;
$t->project(sub {
my ( $p ) = @_;
is($p->id, $project->id);
if($index + 1 < @todo_names) {
$create_todos->($index + 1);
} else {
$cond->send;
}
});
});
};
$create_projects = sub {
( run in 0.956 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )