File: 10no.t

package info (click to toggle)
libexporter-tiny-perl 1.002002-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 472 kB
  • sloc: perl: 2,634; makefile: 8
file content (77 lines) | stat: -rw-r--r-- 1,471 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
=pod

=encoding utf-8

=head1 PURPOSE

Check C<< unimport >> works.

=head1 AUTHOR

Toby Inkster E<lt>tobyink@cpan.orgE<gt>.

=head1 COPYRIGHT AND LICENCE

This software is copyright (c) 2014, 2017 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut

use strict;
use warnings;
use Test::More tests => 9;

use lib qw( examples ../examples );

{
	package Local::Pkg1;
	use Example::Exporter;
	::is( fib(6), 8, 'fib exported' );
	no Example::Exporter;
}

ok( !Local::Pkg1->can('fib'), 'tidied fib' );

{
	package Local::Pkg2;
	use Example::Exporter fib => { -as => 'fibo' };
	::is( fibo(6), 8, 'fibo exported' );
	no Example::Exporter;
}

ok( !Local::Pkg2->can('fibo'), 'tidied fibo' );

{
	package Local::Pkg3;
	use Example::Exporter -all;
	::is( fib(6), 8, 'fib exported' );
	::is( embiggen(6), 7, 'embiggen exported' );
	no Example::Exporter qw( /^F/i );
}

ok( Local::Pkg3->can('embiggen') && !Local::Pkg3->can('fib'), 'tidied by regexp' );

BEGIN {
	package Local::Pkg4;
	use Exporter::Shiny qw( $Foo );
	our $Foo = 42;
};

our ($xxx, $yyy);
local $@;
eval q{
	use strict;
	use warnings;
	package Local::Pkg5;
	use Local::Pkg4 qw( $Foo );
	BEGIN { $::xxx = $Foo };   # why BEGIN needed???
	no Local::Pkg4 qw( $Foo );
	$::yyy = $Foo;
};
my $e = $@;


is($xxx, 42, 'importing scalar works');
like($e, qr/Unimporting non-code/, 'unimporting scalar works');  # TODO