Commit | Line | Data |
d28e4285 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | use Moose (); |
5 | use Moose::Meta::Class; |
6 | |
7 | foreach my $role (qw/ |
8 | MooseX::Getopt |
9 | MooseX::Getopt::GLD |
10 | MooseX::Getopt::Basic |
11 | /) { |
12 | Class::MOP::load_class($role); |
13 | |
14 | my $meta = Moose::Meta::Class->create_anon_class( |
15 | superclasses => ['Moose::Object'], |
16 | ); |
17 | $meta->add_attribute('Debug', traits => ['Getopt'], isa => 'Bool', |
18 | cmd_aliases => ['d'], is => 'ro'); |
19 | $role->meta->apply($meta); |
20 | |
21 | ok($meta->name->new_with_options({ argv => ['-d'] })->Debug, |
22 | "Debug was set for argv -d on $role"); |
23 | { |
24 | local @ARGV = ('-d'); |
25 | ok($meta->name->new_with_options()->Debug, |
26 | "Debug was set for ARGV on $role"); |
27 | } |
28 | |
29 | ok($meta->name->new_with_options({ argv => ['--Debug'] })->Debug, |
30 | "Debug was set for argv --Debug on $role"); |
31 | |
32 | ok($meta->name->new_with_options({ argv => ['--debug'] })->Debug, |
33 | "Debug was set for argv --debug on $role"); |
34 | } |
35 | |
36 | done_testing; |
37 | |