The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
use strict;

use IO::File;
use LWP::UserAgent;
use Parse::CPAN::Distributions;
use Test::More  tests => 8;

use Parse::CPAN::Distributions;
my $version = $Parse::CPAN::Distributions::VERSION;

my $fh = IO::File->new('Changes','r')   or plan skip_all => "Cannot open Changes file";
while(<$fh>) {
    next    unless(m!^\d!);
    next    if(m!^$version!);
    ($version) = $_ =~ /^([\d.]+)/;
    last;
}
$fh->close;

my $ua = LWP::UserAgent->new;
$ua->timeout(10);
 
my $response = $ua->get('http://www.cpan.org');

SKIP: {
    skip "No connection", 8 unless($response->is_success);
    {
        my $obj = Parse::CPAN::Distributions->new(file => '');
        SKIP: {
            skip "Unable to retrieve file: $Parse::CPAN::Distributions::ERROR", 2 unless($obj);
            isa_ok($obj,'Parse::CPAN::Distributions');
            is($obj->author_of('Parse-CPAN-Distributions',$version),'BARBIE');
        }
    }
    {
        my $obj = Parse::CPAN::Distributions->new();
        SKIP: {
            skip "Unable to retrieve file: $Parse::CPAN::Distributions::ERROR", 2 unless($obj);
            isa_ok($obj,'Parse::CPAN::Distributions');
            is($obj->author_of('Parse-CPAN-Distributions',$version),'BARBIE');
        }
    }
    {
        my $obj = Parse::CPAN::Distributions->new(file => 't/samples/nofile');
        SKIP: {
            skip "Unable to retrieve file: $Parse::CPAN::Distributions::ERROR", 2 unless($obj);
            isa_ok($obj,'Parse::CPAN::Distributions');
            is($obj->author_of('Parse-CPAN-Distributions',$version),'BARBIE');
        }
    }

    {
        my $obj = Parse::CPAN::Distributions->new();
        SKIP: {
            skip "Unable to retrieve file: $Parse::CPAN::Distributions::ERROR", 2 unless($obj);
            isa_ok($obj,'Parse::CPAN::Distributions');
            is($obj->author_of('Parse-CPAN-Distributions','0.01'),undef,'no longer on CPAN');
        }
    }
}