#!/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' );