The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# ----------------------------------------------------------------
    use strict;
    use Test::More tests => 21;
    BEGIN { use_ok('XML::FeedPP') };
# ----------------------------------------------------------------
    my $ftitle = "Title of the site";
    my $fdesc  = "Description of the site";
    my $fdateA = "Mon, 02 Jan 2006 03:04:05 +0600";
    my $fdateB = "2006-01-02T03:04:05+06:00";
    my $fright = "Owner of the site";
    my $flink  = "http://www.kawa.net/";
    my $flang  = "ja";
# ----------------------------------------------------------------
    my $link1 = "http://www.perl.org/";
    my $link2  = "http://use.perl.org/";
    my $link3 = "http://cpan.perl.org/";
    my $title1 = "The Perl Directory - perl.org";
    my $title2 = "use Perl: All the Perl that's Practical to Extract and Report";
    my $title3 = "The Comprehensive Perl Archive Network";
# ----------------------------------------------------------------
    my $idesc  = "Description of the first item";
    my $icate  = "Category of the first item";
    my $idateA = "Sun, 11 Dec 2005 10:09:08 -0700";
    my $idateB = "2005-12-11T10:09:08-07:00";
    my $iauthor = "Author";
    my $iguid   = "GUID";
# ----------------------------------------------------------------
    my $feed1 = XML::FeedPP::RSS->new();
    $feed1->title( $ftitle );
    $feed1->description( $fdesc );
    $feed1->pubDate( $fdateA );
    $feed1->copyright( $fright );
    $feed1->link( $flink );
    $feed1->language( $flang );
# ----------------------------------------------------------------
    my $item1 = $feed1->add_item( $link1 );
    $item1->title( $title1 );
    $item1->pubDate( $idateA );
    $item1->description( $idesc );
    $item1->category( $icate );
    $item1->author( $iauthor, isPermaLink => "false" );
    $item1->guid( $iguid );
# ----------------------------------------------------------------
    ok( 1 == scalar $feed1->get_item(), "RSS 1st" );
    my $source1 = $feed1->to_string();
# ----------------------------------------------------------------
#   Round1: RSS -> RDF -> Atom -> RSS (w/1item)
# ----------------------------------------------------------------
    my $feed2 = XML::FeedPP::RDF->new();
    $feed2->merge( $source1 );
    ok( 1 == $feed2->get_item(), "RDF 1st" );
    my $source2 = $feed2->to_string();
    my $feed3 = XML::FeedPP::Atom->new();
    $feed3->merge( $source2 );
    ok( 1 == $feed3->get_item(), "Atom 1st" );
    my $source3 = $feed3->to_string();
    my $feed4 = XML::FeedPP::RSS->new();
    $feed4->merge( $source3 );
    ok( 1 == $feed4->get_item(), "RSS 2nd A" );
# ----------------------------------------------------------------
    my $item2 = $feed4->add_item( $link2 );
    $item2->title( $title2 );
    $item2->pubDate( $idateA );
    my $item3 = $feed4->add_item( $link3 );
    $item3->title( $title3 );
    $item3->pubDate( $idateA );
    ok( 3 == $feed4->get_item(), "RSS 2nd B" );
# ----------------------------------------------------------------
#   Round2: RSS -> Atom -> RDF -> RSS (w/3items)
# ----------------------------------------------------------------
    my $source4 = $feed4->to_string();
    my $feed5 = XML::FeedPP::Atom->new();
    $feed5->merge( $source4 );
    ok( 3 == $feed5->get_item(), "Atom 2nd" );
    my $source5 = $feed5->to_string();
    my $feed6 = XML::FeedPP::RDF->new();
    $feed6->merge( $source5 );
    ok( 3 == $feed6->get_item(), "RDF 2nd" );
    my $source6 = $feed6->to_string();
    my $feed7 = XML::FeedPP::RSS->new();
    $feed7->merge( $source6 );
    ok( 3 == $feed7->get_item(), "RSS 3rd" );
    my $source7 = $feed7->to_string();
# ----------------------------------------------------------------
    is( $source4, $source7, "turn round" );
    is( $feed7->title(),            $ftitle,    "RSS->title()" );
    is( $feed7->description(),      $fdesc,     "RSS->description()" );
    is( $feed7->pubDate(),          $fdateB,    "RSS->pubDate()" );
    is( $feed7->copyright(),        $fright,    "RSS->copyright()" );
    is( $feed7->link(),             $flink,     "RSS->link()" );
    is( $feed7->language(),         $flang,     "RSS->language()" );
# ----------------------------------------------------------------
    my $item7 = $feed7->get_item( 0 );
    is( $item7->link(),             $link1,     "Item->title()" );
    is( $item7->title(),            $title1,    "Item->title()" );
    is( $item7->pubDate(),          $idateB,    "Item->pubDate()" );
    is( $item7->description(),      $idesc,     "Item->description()" );
    is( $item7->author(),           $iauthor,   "Item->author()" );
# ----------------------------------------------------------------
#   use Data::Dumper;
#   my $text = Dumper( $feed1 );
# ----------------------------------------------------------------
;1;
# ----------------------------------------------------------------