Exporter-Extensible
view release on metacpan or search on metacpan
t/20-export-dwim.t view on Meta::CPAN
#! /usr/bin/env perl
use strict;
use warnings;
no warnings 'once', 'redefine';
use Test::More;
use Scalar::Util 'weaken';
use_ok( 'Exporter::Extensible' ) or BAIL_OUT;
ok( eval q{
package Example;
use Exporter::Extensible -exporter_setup => 1;
sub alpha { 'a' }
sub beta { 'b' }
sub gamma { 'g' }
sub delta { 'd' }
sub _generate_delta { sub { 'd' } }
sub _generateArray_epsillon { [ 'e' ] }
sub _generateGlob_zeta { open my $fh, '>+', \""; $fh; }
our $scalar0;
our $scalar1= \"test";
our $scalar2= [ 'test' ];
our $scalar3= bless {}, "Foo";
our $scalar4= sub { 1 };
our $scalar5= \sub { 1 };
our @array;
our %hash;
our ($glob, @glob, %glob); sub glob { "glob" };
1;
}, 'declare Example' ) or diag $@;
my @tests= (
[ 'export a sub',
['alpha'],
{ alpha => Example->can('alpha') }
],
[ 'export a scalar',
['$scalar0'],
{ '$scalar0' => eval '*Example::scalar0{SCALAR}' },
],
[ 'export a scalar holding a scalar ref',
['$scalar1'],
{ '$scalar1' => eval '*Example::scalar1{SCALAR}' },
],
[ 'export a scalar holding an array ref',
['$scalar2'],
{ '$scalar2' => eval '*Example::scalar2{SCALAR}' },
],
[ 'export a scalar holding a blesed object',
['$scalar3'],
{ '$scalar3' => eval '*Example::scalar3{SCALAR}' },
],
[ 'export a scalar holding a coderef',
['$scalar4'],
{ '$scalar4' => eval '*Example::scalar4{SCALAR}' },
],
[ 'export a scalar holding a coderef-ref',
['$scalar5'],
{ '$scalar5' => eval '*Example::scalar5{SCALAR}' },
],
[ 'export a sub',
['alpha'],
{ alpha => Example->can('alpha') },
],
[ 'export an array',
( run in 1.126 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )