#!/usr/bin/perl
use Test::More tests => 14;
use Syndication::ESF;
my $testdata = {
channel => {
title => 'test title',
contact => 'test contact',
link => 'test link'
},
items => [
{ date => time,
title => 'test title',
link => 'test link'
},
{ date => time,
title => 'test title 2',
link => 'test link 2'
},
]
};
my @channel_fields = qw( title contact link );
my @item_fields = qw( date title link );
my $esf = Syndication::ESF->new;
ok( defined $esf, "new() returned something" );
ok( $esf->isa( 'Syndication::ESF' ), "it's the right class" );
$esf->channel( %{ $testdata->{ channel } } );
for ( @channel_fields ) {
is( $esf->channel( $_ ),
$testdata->{ channel }->{ $_ },
"channel( '$_' ) matches test data"
);
}
is( scalar @{ $esf->add_item( %{ $testdata->{ items }->[ 0 ] } ) },
1, "additem( [data] )" );
for ( @item_fields ) {
is( $esf->{ items }->[ 0 ]->{ $_ },
$testdata->{ items }->[ 0 ]->{ $_ },
"{ items }->[0]->{ $_ } matches test data"
);
}
is( scalar @{
$esf->add_item( %{ $testdata->{ items }->[ 1 ] }, mode => 'insert' )
},
2,
"additem( [data], mode => 'insert' )"
);
for ( @item_fields ) {
is( $esf->{ items }->[ 0 ]->{ $_ },
$testdata->{ items }->[ 1 ]->{ $_ },
"{ items }->[0]->{ $_ } matches test data"
);
}
$esf->save( 't/test2.esf' );
like( -s 't/test2.esf', qr/(122|128)/, "save( 'test2.esf' )" );
unlink( 't/test2.esf' );