[BACK]Return to read_todo.t CVS log [TXT][DIR] Up to [local] / todotxt / Text-Todo / t

Diff for /todotxt/Text-Todo/t/read_todo.t between version 1.2 and 1.3

version 1.2, 2009/07/13 18:50:37 version 1.3, 2010/01/06 19:54:56
Line 8 
Line 8 
 #       AUTHOR:  Andrew Fresh (AAF), andrew@cpan.org  #       AUTHOR:  Andrew Fresh (AAF), andrew@cpan.org
 #      COMPANY:  Red River Communications  #      COMPANY:  Red River Communications
 #      CREATED:  07/09/09 11:45:52  #      CREATED:  07/09/09 11:45:52
 #     REVISION:  $RedRiver: 50.read_todo.t,v 1.1 2009/07/10 22:26:14 andrew Exp $  #     REVISION:  $RedRiver: 50.read_todo.t,v 1.2 2009/07/13 17:50:37 andrew Exp $
 #===============================================================================  #===============================================================================
   
 use strict;  use strict;
 use warnings;  use warnings;
 use File::Spec;  use File::Spec;
 use Test::More tests => 28;  use File::Temp qw/ tempdir /;
   use Test::More tests => 106;
   
 my $todo_file = File::Spec->catfile( 't', 'todo1.txt' );  my $todo_file = File::Spec->catfile( 't', 'todo1.txt' );
   my $tempdir = tempdir( 'todotxt-XXXXXXX', CLEANUP => 1 );
   my $dup_todo_file = File::Spec->catfile( $tempdir, 'todo50_dup.txt' );
   
   #my $new_todo_file = File::Spec->catfile( $tempdir, 'todo50_new.txt' );
   
 my @todos = (  my @todos = (
     {   text     => '(B) +GarageSale @phone schedule Goodwill pickup',      {   text     => '(B) +GarageSale @phone schedule Goodwill pickup',
         priority => 'B',          priority => 'B',
         contexts => ['phone'],          contexts => ['phone'],
         projects => ['GarageSale'],          projects => ['GarageSale'],
           complete => undef,
     },      },
     {   text =>      {   text =>
             '+GarageSale @home post signs around the neighborhood DUE:2006-08-01',              '+GarageSale @home post signs around the neighborhood DUE:2006-08-01',
         priority => undef,          priority => undef,
         contexts => ['home'],          contexts => ['home'],
         projects => ['GarageSale'],          projects => ['GarageSale'],
           complete => undef,
     },      },
     {   text     => 'eat meatballs @home',      {   text     => 'X eat meatballs @home',
         priority => undef,          priority => undef,
         contexts => ['home'],          contexts => ['home'],
         projects => [],          projects => [],
           complete => 'X',
     },      },
     {   text     => '(A) @phone thank Mom for the meatballs WAIT',      {   text     => '(A) @phone thank Mom for the meatballs WAIT',
         priority => 'A',          priority => 'A',
         contexts => ['phone'],          contexts => ['phone'],
         projects => [],          projects => [],
           complete => undef,
     },      },
     {   text     => '@shopping Eskimo pies',      {   text     => '@shopping Eskimo pies',
         priority => undef,          priority => undef,
         contexts => ['shopping'],          contexts => ['shopping'],
         projects => [],          projects => [],
           complete => undef,
     },      },
     {   text     => 'email andrew@cpan.org for help +report_bug @wherever',      {   text     => 'email andrew@cpan.org for help +report_bug @wherever',
         priority => undef,          priority => undef,
         contexts => ['wherever'],          contexts => ['wherever'],
         projects => ['report_bug'],          projects => ['report_bug'],
           complete => undef,
     },      },
 );  );
   
   my %extra_todo = (
       text     => '+test+everything hope there are no bugs @continually',
       priority => undef,
       contexts => ['continually'],
       projects => ['test+everything'],
       complete => undef,
   );
   
 BEGIN: { use_ok( 'Text::Todo', 'use Text::Todo' ) }  BEGIN: { use_ok( 'Text::Todo', 'use Text::Todo' ) }
   
 diag("Testing 50 read Text::Todo $Text::Todo::VERSION");  diag("Testing read Text::Todo $Text::Todo::VERSION");
   
 my $todo = new_ok('Text::Todo');  my $todo = new_ok( 'Text::Todo' => [], 'Empty todo' );
   
 #ok( $todo->load(), 'Load no file');  #ok( $todo->load(), 'Load no file');
   
 ok( $todo->load($todo_file), "Load file [$todo_file]" );  ok( $todo->load($todo_file), "Load file [$todo_file]" );
   
 my $list;  #my $bad_todo = new_ok('Text::Todo' => [ $new_todo_file ]);
 ok( $list = $todo->list, 'Get list' );  
   
   ok( $todo->save($dup_todo_file), "Save to tempfile" );
   
   my $dup_todo = new_ok( 'Text::Todo' => [$dup_todo_file], 'New todo' );
   
   ok( $todo->load($todo_file), "Load file [$todo_file]" );
   
   my $new_todo = new_ok( 'Text::Todo' => [], 'Empty todo' );
   
 for my $id ( 0 .. $#todos ) {  for my $id ( 0 .. $#todos ) {
     my $sample = $todos[$id];      my $t = ok( $new_todo->add( $todos[$id]->{text} ), "Add Todo [$id]" );
     my $read   = $list->[$id];  }
   
     is( $read->text,     $sample->{text},     "check text [$id]" );  foreach my $t ( $todo, $dup_todo, $new_todo ) {
     is( $read->priority, $sample->{priority}, "check priority [$id]" );      my $list;
     is_deeply(      my $file = $t->file || 'unsaved';
         [ $read->contexts ],      ok( $list = $t->list, 'Get list from ' . $file );
         $sample->{contexts},  
         "check contexts [$id]"      for my $id ( 0 .. $#todos ) {
     );          test_todo( $todos[$id], $list->[$id], $id);
     is_deeply(      }
         [ $read->projects ],  
         $sample->{projects},  
         "check projects [$id]"  
     );  
 }  }
   
   sub test_todo {
       my ($sample, $read, $id) = @_;
   
           is( $read->text,      $sample->{text},     "check text [$id]" );
           is( $read->priority,  $sample->{priority}, "check priority [$id]" );
           is( $read->completed, $sample->{complete}, "check completion [$id]" );
           is_deeply(
               [ $read->contexts ],
               $sample->{contexts},
               "check contexts [$id]"
           );
           is_deeply(
               [ $read->projects ],
               $sample->{projects},
               "check projects [$id]"
           );
       }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>