=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/t/GET/entry.t,v retrieving revision 1.2 retrieving revision 1.10 diff -u -r1.2 -r1.10 --- todotxt/Text-Todo-REST-API/t/GET/entry.t 2010/01/18 13:47:53 1.2 +++ todotxt/Text-Todo-REST-API/t/GET/entry.t 2010/02/13 21:48:28 1.10 @@ -7,62 +7,57 @@ # AUTHOR: Andrew Fresh (AAF), andrew@cpan.org # COMPANY: Red River Communications # CREATED: 01/07/10 19:11 -# REVISION: $AFresh1: entry.t,v 1.1 2010/01/17 19:41:24 andrew Exp $ +# REVISION: $AFresh1: entry.t,v 1.9 2010/01/31 03:10:39 andrew Exp $ #=============================================================================== use strict; use warnings; -use Test::More tests => 26; +use Test::More tests => 89; +my $api_class; my $class; + BEGIN { - $class = 'Text::Todo::REST::API'; - use_ok( $class, "use $class" ); + $api_class = 'Text::Todo::REST::API'; + $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, [ { todo_dir => 't/lists', path_info => '/todo' } ] ); +my $api = new_ok( $api_class, [ { todo_dir => 't/lists' } ] ); +my $action = new_ok($class); -my $list_should_be = [ - { 'text' => '(A) entry 1 @one +uno', - '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 - } -]; +my $list_should_be; +ok( $list_should_be = $api->GET('todo_file'), 'Get todo_file' ); -foreach my $e ( @{$list_should_be} ) { - my $entry; - ok( $entry = $api->get_entry( $e->{line} ), - "get_entry by line ($e->{line})" - ); - is_deeply( $entry, $e, 'got correct entry' ); +my @types = ( 'line', 'md5' ); - $entry = undef; - ok( $entry = $api->get_entry( $e->{md5} ), - "get_entry by md5 ($e->{md5})" - ); - is_deeply( $entry, $e, 'got correct entry' ); +foreach my $e ( @{ $list_should_be->data } ) { + foreach my $type (@types) { + my $entry; + ok( $entry = $action->get_entry( $api->_todo, $e->{$type} ), + "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' ); + } } +