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::Mouse qw(does_ok); |
12 | |
13 | { |
14 | package Foo::Trait::Class; |
15 | use Mouse::Role; |
16 | } |
17 | |
18 | { |
19 | package Foo::Trait::Attribute; |
20 | use Mouse::Role; |
21 | } |
22 | |
23 | { |
24 | package Foo::Role::Base; |
25 | use Mouse::Role; |
26 | } |
27 | |
28 | { |
29 | package Foo::Exporter; |
30 | use Mouse::Exporter; |
31 | |
32 | Mouse::Exporter->setup_import_methods( |
c47cf415 |
33 | class_metaroles => { |
34 | class => ['Foo::Trait::Class'], |
35 | attribute => ['Foo::Trait::Attribute'], |
36 | }, |
37 | role_metaroles => { role => ['Foo::Trait::Class'] }, |
38 | base_class_roles => ['Foo::Role::Base'], |
41888e7d |
39 | ); |
40 | } |
41 | |
42 | { |
43 | package Foo; |
44 | use Mouse; |
45 | Foo::Exporter->import; |
46 | |
47 | has foo => (is => 'ro'); |
48 | |
49 | ::does_ok(Foo->meta, 'Foo::Trait::Class'); |
50 | ::does_ok(Foo->meta->get_attribute('foo'), 'Foo::Trait::Attribute'); |
51 | ::does_ok('Foo', 'Foo::Role::Base'); |
52 | } |
53 | |
54 | { |
85476837 |
55 | package Foo::Exporter::WithMouse; |
41888e7d |
56 | use Mouse (); |
57 | use Mouse::Exporter; |
58 | |
c47cf415 |
59 | my ( $import, $unimport, $init_meta ) |
60 | = Mouse::Exporter->build_import_methods( |
61 | also => 'Mouse', |
62 | class_metaroles => { |
63 | class => ['Foo::Trait::Class'], |
64 | attribute => ['Foo::Trait::Attribute'], |
65 | }, |
66 | base_class_roles => ['Foo::Role::Base'], |
67 | install => [qw(import unimport)], |
41888e7d |
68 | ); |
69 | |
70 | sub init_meta { |
71 | my $package = shift; |
72 | my %options = @_; |
73 | ::pass('custom init_meta was called'); |
74 | Mouse->init_meta(%options); |
75 | return $package->$init_meta(%options); |
76 | } |
77 | } |
78 | |
79 | { |
80 | package Foo2; |
85476837 |
81 | Foo::Exporter::WithMouse->import; |
41888e7d |
82 | |
83 | has(foo => (is => 'ro')); |
84 | |
85 | ::isa_ok('Foo2', 'Mouse::Object'); |
86 | ::isa_ok(Foo2->meta, 'Mouse::Meta::Class'); |
87 | ::does_ok(Foo2->meta, 'Foo::Trait::Class'); |
88 | ::does_ok(Foo2->meta->get_attribute('foo'), 'Foo::Trait::Attribute'); |
89 | ::does_ok('Foo2', 'Foo::Role::Base'); |
90 | } |
91 | |
92 | { |
93 | package Foo::Role; |
94 | use Mouse::Role; |
95 | Foo::Exporter->import; |
96 | |
97 | ::does_ok(Foo::Role->meta, 'Foo::Trait::Class'); |
98 | } |
99 | |
100 | { |
85476837 |
101 | package Foo::Exporter::WithMouseRole; |
41888e7d |
102 | use Mouse::Role (); |
103 | use Mouse::Exporter; |
104 | |
c47cf415 |
105 | my ( $import, $unimport, $init_meta ) |
106 | = Mouse::Exporter->build_import_methods( |
107 | also => 'Mouse::Role', |
108 | role_metaroles => { |
109 | role => ['Foo::Trait::Class'], |
110 | attribute => ['Foo::Trait::Attribute'], |
111 | }, |
112 | install => [qw(import unimport)], |
41888e7d |
113 | ); |
114 | |
115 | sub init_meta { |
116 | my $package = shift; |
117 | my %options = @_; |
118 | ::pass('custom init_meta was called'); |
119 | Mouse::Role->init_meta(%options); |
120 | return $package->$init_meta(%options); |
121 | } |
122 | } |
123 | |
124 | { |
125 | package Foo2::Role; |
85476837 |
126 | Foo::Exporter::WithMouseRole->import; |
41888e7d |
127 | |
128 | ::isa_ok(Foo2::Role->meta, 'Mouse::Meta::Role'); |
129 | ::does_ok(Foo2::Role->meta, 'Foo::Trait::Class'); |
130 | } |
c47cf415 |
131 | |
132 | done_testing; |