version 1.1, 2010/01/08 04:38:44 |
version 1.12, 2010/01/18 00:19:55 |
|
|
# 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: $RedRiver$ |
# REVISION: $AFresh1: list.t,v 1.11 2010/01/15 19:50:15 andrew Exp $ |
#=============================================================================== |
#=============================================================================== |
|
|
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
use Test::More tests => 2; |
use Test::More tests => 53; |
|
|
my $class = 'Text::Todo'; |
use File::Temp qw/ tempdir /; |
|
|
BEGIN: { use_ok( $class, "use $class" ) } |
my $class; |
|
BEGIN { |
|
$class = 'Text::Todo'; |
|
use_ok( $class, "use $class" ) |
|
} |
|
|
diag("Testing entry $class $Text::Todo::VERSION"); |
diag("Testing entry $class $Text::Todo::VERSION"); |
|
|
my $e = new_ok( $class, [ 't/todo.list.txt' ] ); |
my $orig = new_ok( $class => [{ todo_file => 't/todo.list.txt' }] ); |
|
my @orig_list; |
|
ok( @orig_list = $orig->list, 'get orig list' ); |
|
|
my %commands = ( |
is( $orig->file('todo_file'), 't/todo.list.txt', 'orig todo_file matches' ); |
add => {}, |
is( $orig->file('done_file'), 't/done.list.txt', 'orig done_file matches' ); |
archive => {}, |
is( $orig->file('report_file'), |
del => {}, |
't/report.list.txt', 'orig report_file matches' ); |
list => {}, |
|
listall => {}, |
my $todo_dir = tempdir( 'todo-XXXXXXXXX', CLEANUP => 1, TMPDIR => 1 ); |
listcon => {}, |
my $copy = new_ok($class => []); |
listfile => {}, |
|
listpri => {}, |
foreach my $e (@orig_list) { |
listproj => {}, |
ok( $copy->add($e), 'add entry from orginal list' ); |
move => {}, |
} |
replace => {}, |
ok( $copy->save( $todo_dir . '/todo.txt' ), 'save the copy' ); |
report => {}, |
|
|
is( $copy->file('todo_file'), |
|
$todo_dir . '/todo.txt', |
|
'copy todo_file matches' |
); |
); |
|
is( $copy->file('done_file'), |
|
$todo_dir . '/done.txt', |
|
'copy done_file matches' |
|
); |
|
is( $copy->file('report_file'), |
|
$todo_dir . '/report.txt', |
|
'copy report_file matches' |
|
); |
|
my @copy_list; |
|
ok( @copy_list = $copy->list, 'get copy list' ); |
|
|
my %aliases = ( |
for my $id ( 0 .. $#orig_list ) { |
a => 'add', |
is( $copy_list[$id]->text, $orig_list[$id]->text, "Entry $id matches" ); |
rm => 'del', |
} |
ls => 'list', |
|
lsa => 'listall', |
$orig = undef; |
lsc => 'listcon', |
|
lf => 'listfile', |
my @pri_list; |
lspri => 'listpri', |
ok( @pri_list = $copy->listpri('A'), 'list priority item' ); |
lsprj => 'listproj', |
is( scalar @pri_list, 1, 'only 1 item in the priority list' ); |
mv => 'move', |
is( $pri_list[0]->text, '(A) entry 1 @one +uno', 'priority item is correct' ); |
|
|
|
my $entry_to_move = $copy_list[-1]; |
|
ok( $copy->move( $entry_to_move, 1 ), 'move entry to position 1' ); |
|
ok( @copy_list = $copy->list, 'update our list' ); |
|
is( $copy_list[1]->text, $entry_to_move->text, |
|
'entry is in the new position' ); |
|
|
|
$entry_to_move = $copy_list[3]; |
|
ok( $copy->move( 3, 1 ), 'move entry 3 to position 1' ); |
|
ok( @copy_list = $copy->list, 'update our list' ); |
|
is( $copy_list[1]->text, $entry_to_move->text, |
|
'entry is in the new position' ); |
|
|
|
my @projects; |
|
ok( @projects = $copy->listproj, 'listproj for current list' ); |
|
is_deeply( |
|
\@projects, |
|
[ 'delete', 'dos', 'uno' ], |
|
'got the projects we expected' |
); |
); |
|
|
|
for my $id ( 0 .. $#copy_list ) { |
|
my $e = $copy_list[$id]; |
|
if ( $e->in_project('delete') ) { |
|
ok( $copy->del($e), "deleting entry $id" ); |
|
isnt( $copy->list->[$id]->text, $e->text, 'Entry seems to be gone' ); |
|
} |
|
} |
|
|
|
ok( @projects = $copy->listproj, 'listproj for current list' ); |
|
is_deeply( \@projects, [ 'dos', 'uno' ], 'got the projects we expected' ); |
|
|
|
my @contexts; |
|
ok( @contexts = $copy->listcon, 'listcon for current list' ); |
|
is_deeply( \@contexts, [ 'one', 'two' ], 'got the contexts we expected' ); |
|
|
|
my $entry_to_archive; |
|
ok( $entry_to_archive = $copy->list->[3], 'read entry_to_archive' ); |
|
is( $entry_to_archive->text, |
|
'x completed entry 4', |
|
'make sure we got the right entry' |
|
); |
|
|
|
ok( $copy->archive, 'archive done items' ); |
|
isnt( $copy->list->[1]->text, |
|
$entry_to_archive->text, 'make sure it changed' ); |
|
|
|
ok( $copy->load('done_file'), 'read the done_file' ); |
|
is( $copy->list->[-1]->text, |
|
$entry_to_archive->text, 'make sure it moved to the archive' ); |
|
|
|
my $file; |
|
ok( $file = $copy->file('done_file'), 'get the done_file name' ); |
|
is( $file, $todo_dir . '/done.txt', 'the done_file name what we expected?' ); |
|
|
|
ok( $copy->addto( $file, 'added text' ), 'Add text to file' ); |
|
|
|
my @done; |
|
ok( @done = $copy->listfile('done_file'), 'get items in done_file' ); |
|
is( $done[-1]->text, 'added text', 'make sure what we added is there' ); |
|
|
|
is( $done[-2]->text, $entry_to_archive->text, |
|
'make sure it moved to the archive' ); |
|
|
|
#done_testing(); |