#!/usr/bin/perl
use strict;
BEGIN {
$| = 1;
$^W = 1;
}
use Test::More tests => 13;
use File::Spec::Functions ':ALL';
my $test_file = rel2abs( catfile( 't', 'data', 'foo.txt' ) );
ok( -f $test_file, 'Test file exists' );
my $share_file = 'test.txt';
#####################################################################
# Main Tests
# Get the some files
ok( My::Test1->file, 'Got ->file for My::Test1' );
ok( My::Test2->file, 'Got ->file for My::Test2' );
ok( My::Test3->file, 'Got ->file for My::Test3' );
# Get them as IO objects
isa_ok( My::Test1->get('IO::File'), 'IO::File' );
isa_ok( My::Test2->get('IO::File'), 'IO::File' );
isa_ok( My::Test3->get('IO::File'), 'IO::File' );
# Get them as Path::Class objects
SKIP: {
skip("Path::Class not available", 3) unless Class::Inspector->installed('Path::Class');
isa_ok( My::Test1->get('Path::Class::File'), 'Path::Class::File' );
isa_ok( My::Test2->get('Path::Class::File'), 'Path::Class::File' );
isa_ok( My::Test3->get('Path::Class::File'), 'Path::Class::File' );
}
# Get them as URI::file objects
SKIP: {
skip("URI::file not available", 3) unless Class::Inspector->installed('URI::file');
isa_ok( My::Test1->get('URI::file'), 'URI::file' );
isa_ok( My::Test2->get('URI::file'), 'URI::file' );
isa_ok( My::Test3->get('URI::file'), 'URI::file' );
}
#####################################################################
# Test Packages
SCOPE: {
package My::Test1;
use Data::Package::File ();
BEGIN {
@My::Test1::ISA = 'Data::Package::File';
}
sub file {
return File::Spec->rel2abs(
File::Spec->catfile( 't', 'data', 'foo.txt' ),
);
}
package My::Test2;
use Data::Package::File ();
BEGIN {
@My::Test2::ISA = 'Data::Package::File';
}
sub dist_file {
'Data-Package', 'test.txt';
}
package My::Test3;
use Data::Package::File ();
BEGIN {
@My::Test3::ISA = 'Data::Package::File';
}
sub module_file {
'Data::Package', 'test.txt';
}
}