Acme-require-case

 view release on metacpan or  search on metacpan

t/require.t  view on Meta::CPAN

use 5.008001;
use strict;
use warnings;
use Test::More 0.96;
use Test::Fatal;
use Test::FailWarnings;
use Capture::Tiny qw/capture/;
use File::Spec;
use lib 't/lib';

plan skip_all => "Your filesystem respects case"
  unless -f 't/lib/foo.pm'; # it's really Foo.pm

use Acme::require::case;

my ($n, $err);

#--------------------------------------------------------------------------#
# Fails because of case
#--------------------------------------------------------------------------#

$err = exception { require foo };
like( $err, qr/incorrect case/, "foo: caught wrong case" );

$err = exception { require Foo::bar::Baz };
like( $err, qr/incorrect case/, "Foo::bar::Baz: caught wrong case" );

#--------------------------------------------------------------------------#
# Works like CORE::require
#--------------------------------------------------------------------------#

$err = exception { require Foo::Bar::Baz };
is( $err, undef, "Foo::Bar::Baz: required OK" );
ok( $INC{'Foo/Bar/Baz.pm'}, "Foo::Bar::Baz correct in \%INC" );

$err = exception { require 5 };
is( $err, undef, "5: required OK" );

$err = exception { require 5.000 };
is( $err, undef, "5.000: required OK" );

$err = exception { $n = 5; require $n };
is( $err, undef, "\$n = 5: required OK" );

$err = exception { $n = "5"; require $n if $n > 0 };
is( $err, undef, "\$n = '5': required numerized \$n OK" );

$err = exception { require only_once };
is( $err, undef, "only_once: required OK" );
$err = exception { require only_once };
is( $err, undef, "only_once: required again without dying" );

my $abs = File::Spec->rel2abs('t/lib/Absolute.pm');
$err = exception { require $abs };
is( $err, undef, "absolute path" );

#--------------------------------------------------------------------------#
# Fails like CORE::require
#--------------------------------------------------------------------------#

$err = exception { require dies };
like( $err, qr{error at t/lib/dies\.pm}, "dies.pm: caught 'error at' exception" );

$err = exception { require dies };
like( $err, qr{Compilation failed}, "dies.pm: caught 'Compilation failed' reload exception" );

$err = exception { require false };
like(
    $err,



( run in 0.999 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )