15a9f19b77ee6058615128dc5a24b707ed04df53
[gitmo/Moose.git] / t / 050_metaclasses / 031_new_exporter_parameters.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use Test::More skip_all => "not implemented yet";
5 #use Test::More tests => 2;
6
7 my @init_meta_args;
8
9 BEGIN {
10     package My::Moose;
11     use Moose::Exporter;
12     use Moose ();
13
14     Moose::Exporter->setup_import_methods(
15         with_caller => ['has_rw'],
16         also => 'Moose',
17         extra_parameters => ['-attribute'],
18     );
19
20     sub has_rw {
21         my $caller = shift;
22         my $name   = shift;
23         $caller->meta->add_attribute($name, is => 'rw', @_);
24     }
25
26     sub init_meta {
27         my $self = shift;
28         my %args = @_;
29
30         push @init_meta_args, \%args;
31
32         my $attribute = $args{'-attribute'};
33         my $meta = Moose->init_meta(
34             %args,
35         );
36
37         if ($attribute) {
38             $meta->add_attribute($attribute, is => 'rw');
39         }
40
41         return $meta;
42     }
43 }
44
45 {
46     package My::Moose::User;
47     BEGIN { My::Moose->import };
48
49     has_rw 'counter' => (
50         isa => 'Int',
51     );
52 }
53
54 ok(My::Moose::User->meta->get_attribute('counter')->has_accessor, 'our exported sugar works');
55
56 {
57     package My::Other::Moose::User;
58     BEGIN {
59         My::Moose->import(
60             -attribute => 'counter',
61         );
62     };
63 }
64
65 ok(My::Moose::User->meta->get_attribute('counter')->has_accessor, 'our extra exporter option worked');