File: 055-exporter.t

package info (click to toggle)
libmouse-perl 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,156 kB
  • sloc: perl: 14,569; ansic: 218; makefile: 8
file content (77 lines) | stat: -rw-r--r-- 1,530 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
#!perl
use strict;
use warnings;
use Test::More tests => 14;

use Mouse ();

BEGIN{
    package MyMouse;
    use Mouse;
    Mouse::Exporter->setup_import_methods(
        as_is => [qw(foo)],
        also  => [qw(Mouse)],
    );

    sub foo{ 100 }

    package MyMouseEx;
    use Mouse;
    Mouse::Exporter->setup_import_methods(
        as_is => [\&bar],
        also  => [qw(MyMouse)],

#        groups => {
#            foobar_only => [qw(foo bar)],
#        },
    );

    sub bar{ 200 }
}

can_ok 'MyMouse',   qw(import unimport);
can_ok 'MyMouseEx', qw(import unimport);

{
    package MyApp;
    use Test::More;
    use MyMouse;

    can_ok __PACKAGE__, 'meta';
    ok defined(&foo), 'foo is imported';
    ok defined(&has), 'has is also imported';

    no MyMouse;

    ok !defined(&foo), 'foo is unimported';
    ok !defined(&has), 'has is also unimported';
}
{
    package MyAppEx;
    use Test::More;
    use MyMouseEx;

    can_ok __PACKAGE__, 'meta';
    ok defined(&foo), 'foo is imported';
    ok defined(&bar), 'foo is also imported';
    ok defined(&has), 'has is also imported';

    no MyMouseEx;

    ok !defined(&foo), 'foo is unimported';
    ok !defined(&bar), 'foo is also unimported';
    ok !defined(&has), 'has is also unimported';
}

# exporting groups are not implemented in Moose::Exporter
#{
#    package MyAppExTags;
#    use Test::More;
#    use MyMouseEx qw(:foobar_only);
#
#    can_ok __PACKAGE__, 'meta';
#    ok defined(&foo);
#    ok defined(&bar);
#    ok!defined(&has), "export tags";
#}