use strict; use Test::More (tests => 17); use Test::Moose; use Scalar::Util qw(blessed); BEGIN { use_ok("Atomik::Feed"); } { my $feed = Atomik::Feed->from_file( "t/data/atom-full.xml" ); ok($feed); ok($feed->updated, "2006-08-10T02:43:00Z"); my $count = 0; my %data = ( "http://blog.jrock.us/articles/Catalyst%20+%20Cache.pod" => { title => "Catalyst + Cache", id => "urn:guid:8D9B9CBE-27DB-11DB-B6C2-F007B8516AA5", modified => "2006-08-09T19:07:58Z", summary => undef, author => Atomik::Author->new( name => "Jonathan T. Rockway", email => 'jon@jroc.us' ) }, "http://blog.jrock.us/articles/Quantum%20Physics%20and%20the%20Template%20Toolkit.pod" => { title => "Quantum Physics and the Template Toolkit", id => "urn:guid:BB054AF0-2601-11DB-9738-946FBD312859", modified => "2006-08-07T10:44:20Z", author => Atomik::Author->new( name => "Jonathan T. Rockway", email => 'jon@jroc.us' ) } ); foreach my $entry ($feed->entries) { isa_ok $entry, 'Atomik::Entry', "entry from entries() is $entry"; my @links = $entry->links; my $main_link = $links[0]; my $data = $data{ $main_link->href }; foreach my $method qw(title id modified created summary author) { my $expected = $data->{$method}; my $value = $entry->$method(); if (blessed $expected) { isa_ok( $value, blessed $expected, "$method is $value " . ( $expected || "(null)") ); } else { is( $value, $expected, "$method is " . ($value || '(null)') . " " . ( $expected || "(null)") ); } } } }