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 )