Commit | Line | Data |
41888e7d |
1 | #!/usr/bin/perl |
c47cf415 |
2 | # This is automatically generated by author/import-moose-test.pl. |
3 | # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! |
4 | use t::lib::MooseCompat; |
41888e7d |
5 | |
6 | use strict; |
7 | use warnings; |
8 | |
c47cf415 |
9 | use Test::More; |
10 | $TODO = q{Mouse is not yet completed}; |
41888e7d |
11 | use Test::Exception; |
12 | |
13 | # Some packages out in the wild cooperate with Mouse by using goto |
14 | # &Mouse::import. we want to make sure it still works. |
15 | |
16 | { |
c47cf415 |
17 | package MooseAlike1; |
41888e7d |
18 | |
19 | use strict; |
20 | use warnings; |
21 | |
22 | use Mouse (); |
23 | |
24 | sub import { |
25 | goto &Mouse::import; |
26 | } |
27 | |
28 | sub unimport { |
29 | goto &Mouse::unimport; |
30 | } |
31 | } |
32 | |
33 | { |
34 | package Foo; |
35 | |
c47cf415 |
36 | MooseAlike1->import(); |
41888e7d |
37 | |
38 | ::lives_ok( sub { has( 'size', is => 'bare' ) }, |
c47cf415 |
39 | 'has was exported via MooseAlike1' ); |
41888e7d |
40 | |
c47cf415 |
41 | MooseAlike1->unimport(); |
41888e7d |
42 | } |
43 | |
44 | ok( ! Foo->can('has'), |
c47cf415 |
45 | 'No has sub in Foo after MooseAlike1 is unimported' ); |
41888e7d |
46 | ok( Foo->can('meta'), |
47 | 'Foo has a meta method' ); |
48 | isa_ok( Foo->meta(), 'Mouse::Meta::Class' ); |
49 | |
50 | |
51 | { |
c47cf415 |
52 | package MooseAlike2; |
41888e7d |
53 | |
54 | use strict; |
55 | use warnings; |
56 | |
57 | use Mouse (); |
58 | |
59 | my $import = \&Mouse::import; |
60 | sub import { |
61 | goto $import; |
62 | } |
63 | |
64 | my $unimport = \&Mouse::unimport; |
65 | sub unimport { |
66 | goto $unimport; |
67 | } |
68 | } |
69 | |
70 | { |
71 | package Bar; |
72 | |
c47cf415 |
73 | MooseAlike2->import(); |
41888e7d |
74 | |
75 | ::lives_ok( sub { has( 'size', is => 'bare' ) }, |
c47cf415 |
76 | 'has was exported via MooseAlike2' ); |
41888e7d |
77 | |
c47cf415 |
78 | MooseAlike2->unimport(); |
41888e7d |
79 | } |
80 | |
81 | |
82 | ok( ! Bar->can('has'), |
c47cf415 |
83 | 'No has sub in Bar after MooseAlike2 is unimported' ); |
41888e7d |
84 | ok( Bar->can('meta'), |
85 | 'Bar has a meta method' ); |
86 | isa_ok( Bar->meta(), 'Mouse::Meta::Class' ); |
c47cf415 |
87 | |
88 | done_testing; |