4b5ea9ecce3544fe6e85bec2c70cee0548faee15
[gitmo/Mouse.git] / t-failing / 050_metaclasses / 014_goto_moose_import.t
1 #!/usr/bin/perl
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;
5
6 use strict;
7 use warnings;
8
9 use Test::More;
10 $TODO = q{Mouse is not yet completed};
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 {
17     package MooseAlike1;
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
36     MooseAlike1->import();
37
38     ::lives_ok( sub { has( 'size', is => 'bare' ) },
39                 'has was exported via MooseAlike1' );
40
41     MooseAlike1->unimport();
42 }
43
44 ok( ! Foo->can('has'),
45     'No has sub in Foo after MooseAlike1 is unimported' );
46 ok( Foo->can('meta'),
47     'Foo has a meta method' );
48 isa_ok( Foo->meta(), 'Mouse::Meta::Class' );
49
50
51 {
52     package MooseAlike2;
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
73     MooseAlike2->import();
74
75     ::lives_ok( sub { has( 'size', is => 'bare' ) },
76                 'has was exported via MooseAlike2' );
77
78     MooseAlike2->unimport();
79 }
80
81
82 ok( ! Bar->can('has'),
83           'No has sub in Bar after MooseAlike2 is unimported' );
84 ok( Bar->can('meta'),
85     'Bar has a meta method' );
86 isa_ok( Bar->meta(), 'Mouse::Meta::Class' );
87
88 done_testing;