Revert autogenerated tests. Tests should not changed radically.
[gitmo/Mouse.git] / Moose-t-failing / 050_metaclasses / 023_easy_init_meta.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::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(
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'],
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 {
55     package Foo::Exporter::WithMoose;
56     use Mouse ();
57     use Mouse::Exporter;
58
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)],
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;
81     Foo::Exporter::WithMoose->import;
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 {
101     package Foo::Exporter::WithMooseRole;
102     use Mouse::Role ();
103     use Mouse::Exporter;
104
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)],
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;
126     Foo::Exporter::WithMooseRole->import;
127
128     ::isa_ok(Foo2::Role->meta, 'Mouse::Meta::Role');
129     ::does_ok(Foo2::Role->meta, 'Foo::Trait::Class');
130 }
131
132 done_testing;