WWW-Phanfare-Class
view release on metacpan or search on metacpan
#!perl -T
# Test all class methods
use Test::More;
use File::Slurp;
use_ok( 'WWW::Phanfare::Class' );
use lib 't';
use_ok( 'FakeAgent' );
my $class;
if ( $ENV{SITE} ) {
# Create test object on live site
my %config;
eval '
use Config::General;
use File::HomeDir;
use WWW::Phanfare::API;
my $rcfile = File::HomeDir->my_home . "/.phanfarerc";
%config = Config::General->new( $rcfile )->getall;
die unless $config{api_key}
and $config{private_key}
and $config{email_address}
and $config{password};
';
plan skip_all => "Local config not found: $@" if $@;
$class = new_ok( 'WWW::Phanfare::Class' => [ %config ] );
} else {
# Create an fake test object
$class = new_ok( 'WWW::Phanfare::Class' => [
api_key => 'secret',
private_key => 'secret',
email_address => 's@c.et',
password => 'secret',
] );
$class->api( FakeAgent->new() );
}
isa_ok( $class, 'WWW::Phanfare::Class' );
# Verify there is account
ok( my $account = $class->account(), "Class has account" );
isa_ok( $account, 'WWW::Phanfare::Class::Account' );
# Verify there is a site
ok( my($sitename) = $account->names, "Class has sites" );
ok( my $site = $account->$sitename, "Class has site object" );
isa_ok( $site, 'WWW::Phanfare::Class::Site' );
# Verify there are years
ok( my($yearname) = $site->names, "Class has years" );
ok( my $year = $site->$yearname, "Class has year object" );
isa_ok( $year, 'WWW::Phanfare::Class::Year' );
# Verify there are albums
ok( my($albumname) = $year->names, "Class has an album" );
ok( my $album = $year->$albumname, "Class has album object" );
isa_ok( $album, 'WWW::Phanfare::Class::Album' );
# Verify there are sections
ok( my($sectionname) = $album->names, "Class has sections" );
ok( my $section = $album->$sectionname, "Class has section object" );
isa_ok( $section, 'WWW::Phanfare::Class::Section' );
# Verify there are renditions
ok( my($renditionname) = $section->names, "Class has renditions" );
ok( my $rendition = $section->$renditionname, "Class has section object" );
isa_ok( $rendition, 'WWW::Phanfare::Class::Rendition' );
# Verify there are images
ok( my @imagenames = $rendition->names, "Class has images" );
my $imagename = shift @imagenames;
ok( my $image = $rendition->$imagename, 'Class has image object' );
isa_ok( $image, 'WWW::Phanfare::Class::Image' );
diag "Test Year: $yearname\n";
diag "Test Album: $albumname\n";
diag "Test Section: $sectionname\n";
diag "Test Image: $imagename\n";
# Make sure all image filenames are different
my %U;
my @uniqnames = grep { ! $U{$_}++ } @imagenames;
ok( scalar @uniqnames == scalar @imagenames, "All image names are unique: @imagenames" );
# Create, read and delete a year
my $newyear = '1999';
ok( ! grep(/$newyear/, $site->names), "Year $newyear doesn't yet exist" );
ok( $site->add( $newyear ), "Year $newyear created" );
ok( grep(/$newyear/, $site->names), "Year $newyear now exists" );
ok( $site->remove( $newyear ), "Year $newyear removed" );
ok( ! grep(/$newyear/, $site->names), "Year $newyear no longer exists" );
( run in 0.748 second using v1.01-cache-2.11-cpan-99c4e6809bf )