Log-Procmail

 view release on metacpan or  search on metacpan

t/20abstract.t  view on Meta::CPAN

use strict;
use Test::More tests => 63;
use Log::Procmail;

# create a record by hand
my $rec = Log::Procmail::Abstract->new(
    from    => 'book@cpan.org',
    date    => 'Tue Feb  5 01:14:36 CET 2002',
    subject => 'Re: Log::Procmail',
    folder  => 'modules',
    size    => '2197',
);

isa_ok( $rec, "Log::Procmail::Abstract" );

# test the methods
is( $rec->from,    'book@cpan.org', "Correct from" );
is( $rec->date,    'Tue Feb  5 01:14:36 CET 2002', "Correct date");
is( $rec->subject, 'Re: Log::Procmail', "Correct subject");
is( $rec->folder,  'modules', "Correct folder" );
is( $rec->size,    '2197', "Correct size" );
is( $rec->ymd,     '20020205011436', "Correct ymd" );
is( $rec->source,  undef, "No source" );

# create a logger
my $log = Log::Procmail->new("t/procmail.log");
isa_ok( $log, "Log::Procmail" );

# read a record from the first file
$rec = $log->next;
is( $rec->from, 'r21436@start.no',          "Correct from" );
is( $rec->date, 'Wed Feb  6 18:50:17 2002', "Correct date" );
is( $rec->subject,
    'I woke up from my obesity nightmare                         5765',
    "Correct subject" );
is( $rec->folder, '/var/spool/mail/book', "Correct folder" );
is( $rec->size, 5774, "Correct size" );
is( $rec->source, 't/procmail.log', "Correct source" );

# a record with a <SPACE> in the From field
$rec = $log->next;
is( $rec->from, '"antispamsoftware <antispam"@mx05.sytes.net', "Correct from");
is( $rec->date, 'Mon Apr  5 23:01:10 2004', "Correct date" );
is( $rec->subject, 'Filter spammers and keep your email address', "Correct subject");
is( $rec->folder, "isspam", "Correct folder");
is( $rec->size, 7528, "Correct size" );

# read the remaining records
my $i = 1;
while ( $rec = $log->next ) { $i++ }
is( $i, 5, "Remaining logs" );

# push new files on the log stack
$log->push( 't/procmail.log', 't/procmail2.log' );
$rec = $log->next;

# did we get the first record again?
isa_ok( $rec, "Log::Procmail::Abstract" );
is( $rec->from, 'r21436@start.no',          "Correct from" );
is( $rec->date, 'Wed Feb  6 18:50:17 2002', "Correct date" );
is( $rec->subject,
    'I woke up from my obesity nightmare                         5765',
    "Correct subject" );
is( $rec->folder, '/var/spool/mail/book', "Correct folder" );
is( $rec->size, 5774, "Correct size" );
is( $rec->source, 't/procmail.log', "Correct source" );

# go to next file, automatically
$rec = $log->next for 1 .. 6;    # skip 6 records

is( $rec->from, 'p11542@24horas.com', "Correct from" );
is( $rec->date, 'Mon Feb  4 18:29:00 2002', "Correct date" );
is( $rec->subject,
    "I didn't want to struggle anymore                         5901",
    "Correct subject" );
is( $rec->folder, '/var/spool/mail/book', "Correct folder" );
is( $rec->size,   5745, "Correct size" );
is( $rec->source, 't/procmail2.log', "Correct source" );



( run in 0.948 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )