The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 8;

BEGIN { use_ok('XML::RSS::Feed') }

my $feed = XML::RSS::Feed->new(
    url  => "http://www.jbisbee.com/rdf/",
    name => 'jbisbee',
);
isa_ok( $feed, 'XML::RSS::Feed' );

my $iterations = 100;
my $title      = "This is a test 1";
my $url        = "http://www.jbisbee.com/test/url/1";
my $des        = "Description number 1";
my $rss        = {
    channel => {
        title => "Channel Title",
        link  => "http://www.google.com/",
    },
    items => [],
};

for my $i ( 1 .. $iterations ) {
    push @{ $rss->{items} },
        {
        headline    => ++$title,
        url         => ++$url,
        description => ++$des,
        };
}

$feed->pre_process;
$feed->title( $rss->{channel}{title} );
$feed->link( $rss->{channel}{link} );
ok( $feed->process_items( $rss->{items} ), "Process Items" );
$feed->post_process;

cmp_ok( $feed->num_headlines, '==', $iterations,
    "Verify num_headlines $iterations" );
cmp_ok( $feed->late_breaking_news, '==', $iterations,
    "Verify mark_all_headlines_read" );
cmp_ok( $feed->title, 'eq', $rss->{channel}{title}, "Verify feed title" );
cmp_ok( $feed->link,  'eq', $rss->{channel}{link},  "Verify feed link" );
ok( !$feed->process_items(), "Failed Process Items" );