Exporter-Extensible
view release on metacpan or search on metacpan
t/09-generators.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;
$INC{'Example.pm'}=1;
use Exporter::Extensible -exporter_setup => 1;
our %EXPORT= ( alpha => \ \ "alpha", beta => \ \ &beta, '@gamma' => &gamma, '*zeta' => '_generateGlob_zeta' );
our %EXPORT_TAGS= ( delta => \ "delta" );
sub alpha { sub { 'a' } }
sub beta { sub { 'b' } }
sub gamma { ['g'] }
sub delta { ['alpha', 'beta'] }
sub _generateGlob_zeta { open my $fh, '<', \ "test"; $fh; }
1;
}, 'declare Example' ) or diag $@;
ok( Example->import_into("Test::_Namespace1", 'alpha'), 'import "alpha"' );
is( eval 'Test::_Namespace1::alpha()', 'a', 'run alpha' );
ok( Example->import_into('Test::_Namespace1', 'beta'), 'import "beta"' );
is( eval 'Test::_Namespace1::beta()', 'b', 'run beta' );
ok( Example->import_into('Test::_Namespace1', '@gamma'), 'import "@gamma"' );
is_deeply( eval '\\@Test::_Namespace1::gamma', ['g'], '@gamma correct value' );
ok( Example->import_into('Test::_Namespace1', '*zeta'), 'import "*zeta"' );
is_deeply( eval 'scalar <Test::_Namespace1::zeta>', 'test', '*zeta correct value' );
ok( Example->import_into("Test::_Namespace2", ':delta'), 'import ":delta"' );
is_deeply( eval 'no strict; [sort keys %{"Test::_Namespace2::"}]', ['alpha','beta'], 'imported alpha, beta' );
done_testing;
( run in 1.447 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )