version 1.1, 2010/01/17 19:41:24 |
version 1.10, 2010/02/13 21:48:28 |
|
|
# AUTHOR: Andrew Fresh (AAF), andrew@cpan.org |
# AUTHOR: Andrew Fresh (AAF), andrew@cpan.org |
# COMPANY: Red River Communications |
# COMPANY: Red River Communications |
# CREATED: 01/07/10 19:11 |
# CREATED: 01/07/10 19:11 |
# REVISION: $AFresh1$ |
# REVISION: $AFresh1: entry.t,v 1.9 2010/01/31 03:10:39 andrew Exp $ |
#=============================================================================== |
#=============================================================================== |
|
|
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
use Test::More tests => 26; |
use Test::More tests => 89; |
|
|
|
my $api_class; |
my $class; |
my $class; |
|
|
BEGIN { |
BEGIN { |
$class = 'Text::Todo::REST::API'; |
$api_class = 'Text::Todo::REST::API'; |
use_ok( $class, "use $class" ); |
$class = 'Text::Todo::REST::API::Actions::GET'; |
|
|
|
use_ok( $api_class, "use $api_class" ); |
|
use_ok( $class, "use $class" ); |
} |
} |
|
|
diag("Testing GET entry $class $Text::Todo::REST::API::VERSION"); |
diag( |
|
"Testing GET entry $class $Text::Todo::REST::API::Actions::GET::VERSION"); |
|
|
my $api = new_ok( $class, [ { basedir => 't', path_info => '/lists/todo' } ] ); |
my $api = new_ok( $api_class, [ { todo_dir => 't/lists' } ] ); |
|
my $action = new_ok($class); |
|
|
my $list_should_be = [ |
my $list_should_be; |
{ 'text' => '(A) entry 1 @one +uno', |
ok( $list_should_be = $api->GET('todo_file'), 'Get todo_file' ); |
'md5' => '931e0831c31a70928b29de55778dc294', |
|
'line' => 1 |
|
}, |
|
{ 'text' => 'entry 2 @two +dos', |
|
'md5' => 'b38dde8029c047e81379d9de581a6251', |
|
'line' => 2 |
|
}, |
|
{ 'text' => '', |
|
'md5' => 'd41d8cd98f00b204e9800998ecf8427e', |
|
'line' => 3 |
|
}, |
|
{ 'text' => 'x completed entry 4', |
|
'md5' => '8de0a2b65a50d5e30e84ad48af46fa78', |
|
'line' => 4 |
|
}, |
|
{ 'text' => '(B) entry 5 is priority', |
|
'md5' => 'c1692dfbf3b5829b6bce44b1a1614980', |
|
'line' => 5 |
|
}, |
|
{ 'text' => 'entry 6 +delete', |
|
'md5' => 'e1f6bf867f75aa019063782554407d02', |
|
'line' => 6 |
|
} |
|
]; |
|
|
|
foreach my $e ( @{$list_should_be} ) { |
my @types = ( 'line', 'md5' ); |
my $entry; |
|
ok( $entry = $api->get_entry( $e->{line} ), |
|
"get_entry by line ($e->{line})" |
|
); |
|
is_deeply( $entry, $e, 'got correct entry' ); |
|
|
|
$entry = undef; |
foreach my $e ( @{ $list_should_be->data } ) { |
ok( $entry = $api->get_entry( $e->{md5} ), |
foreach my $type (@types) { |
"get_entry by md5 ($e->{md5})" |
my $entry; |
); |
ok( $entry = $action->get_entry( $api->_todo, $e->{$type} ), |
is_deeply( $entry, $e, 'got correct entry' ); |
"by $type get_entry($e->{$type})" ); |
|
is_deeply( $entry, $e, "Entry Matches" ); |
|
|
|
my $response; |
|
ok( $response = $api->GET( '/todo_file/entry/' . $e->{$type} ), |
|
"by $type GET($e->{$type})" ); |
|
$entry = undef; |
|
ok( $entry = $response->data, 'Get data from response' ); |
|
is_deeply( $entry, $e, "Entry Matches" ); |
|
|
|
$response = undef; |
|
ok( $response |
|
= $api->GET( '/todo_file/entry/' . $e->{$type} . '/done' ), |
|
"by $type GET($e->{$type}/done)" |
|
); |
|
my ($should_be) = $e->{text} =~ /^(x)/xms; |
|
is( $response->data, $should_be, 'Check done status' ); |
|
} |
} |
} |
|
|