=================================================================== RCS file: /cvs/todotxt/Text-Todo-REST-API/t/formats/text.t,v retrieving revision 1.1 retrieving revision 1.8 diff -u -r1.1 -r1.8 --- todotxt/Text-Todo-REST-API/t/formats/text.t 2010/01/17 19:57:16 1.1 +++ todotxt/Text-Todo-REST-API/t/formats/text.t 2010/01/18 13:47:53 1.8 @@ -7,31 +7,47 @@ # AUTHOR: Andrew Fresh (AAF), andrew@cpan.org # COMPANY: Red River Communications # CREATED: 01/07/10 19:11 -# REVISION: $AFresh1$ +# REVISION: $AFresh1: text.t,v 1.7 2010/01/18 03:51:40 andrew Exp $ #=============================================================================== use strict; use warnings; -use Test::More tests => 10; +use Test::More tests => 45; my $class; my $subclass; +my $ext; BEGIN { + $ext = 'txt'; + $class = 'Text::Todo::REST::API'; use_ok( $class, "use $class" ); - $subclass = $class . '::text'; - use_ok( $subclass, "use $subclass" ); + $subclass = $class . '::Representations::text'; } -diag("Testing entry $class $Text::Todo::REST::API::text::VERSION"); +diag("Testing entry $subclass $Text::Todo::REST::API::VERSION"); my $api = new_ok( $class, - [ { basedir => 't', path_info => '/lists/todo.txt' } ] ); -isa_ok( $api, $subclass, 'isa ' . $subclass ); + [ { todo_dir => 't/lists', path_info => '/.' . $ext } ] ); +isa_ok( $api, $subclass ); +my $files_should_be = ['todo.txt']; +my @files; +ok( @files = $api->get_files, 'get files' ); +is_deeply( \@files, $files_should_be, 'Got correct files' ); + +my $files_dump_should_be = join q{}, map "$_\n", @{ $files_should_be }; +my $result; +ok( ($result) = $api->Dump( @files ), 'Dump files' ); +is_deeply( $result, $files_dump_should_be, 'files Dump as expected' ); + +$api = new_ok( $class, + [ { todo_dir => 't/lists', path_info => '/todo.' . $ext } ] ); +isa_ok( $api, $subclass ); + my $list_should_be = [ { 'text' => '(A) entry 1 @one +uno', 'md5' => '931e0831c31a70928b29de55778dc294', @@ -62,16 +78,32 @@ my $list_dump_should_be = join q{}, map { $_->{text} . "\n" } @{$list_should_be}; -my $result; -ok( !eval { $result = $api->Load('test') }, 'Load method (test)' ); -like( $@, '/^Unable to Load \[test\]/', 'Failed Load as expected' ); +$result = undef; +ok( !eval { $result = $api->Load() }, 'Load method' ); +like( $@, '/^Unable to Load \[list\]/', 'Failed Load as expected' ); $result = undef; -ok( !eval { $result = $api->Dump('test') }, 'Dump method (test)' ); -like( $@, '/^Unable to Dump \[test\]/', 'Failed Dump test as expected' ); +ok( !( $result = $api->Dump() ), 'Dump method' ); +is( $result, undef, 'Dump returned undef' ); $result = undef; -ok( eval { $result = $api->Dump( 'list', @{$list_should_be} ) }, - 'Dump method' ); +ok( eval { $result = $api->Dump( @{$list_should_be} ) }, 'Dump method' ); is( $result, $list_dump_should_be, 'Got expected Dump result' ); $result = undef; + +foreach my $e ( @{$list_should_be} ) { + my $api = new_ok( + $class, + [ { todo_dir => 't/lists', + path_info => '/todo/entry/' . $e->{md5} . '.' . $ext + } + ] + ); + my @entry; + ok( @entry = $api->GET(), "get_entry by GET()" ); + is_deeply( \@entry, [$e], 'got correct entry' ); + + my $result; + ok( $result = $api->Dump(@entry), 'Dump output' ); + is( $result, $e->{text} . "\n", 'Got correct Dump result' ); +}