0f24131bd8fbd04f6b0f6274c76adc2bb4fa6193
[gitmo/MooseX-Getopt.git] / t / 108_usage_attr.t
1 # Re RT#58715 and the claim in the documentation:
2 #   If you have Getopt::Long::Descriptive the usage param is also passed to new.
3
4 # This tests the fix (that fulfills the documentation claim).
5
6 use strict; use warnings FATAL => 'all';
7 use Test::More tests => 4;
8 use Test::NoWarnings 1.04 ':early';
9
10 {
11     package MyClass;
12     use strict; use warnings FATAL => 'all';
13     use Moose;
14     with 'MooseX::Getopt';
15 }
16
17 Moose::Meta::Class->create('MyClassWithBasic',
18     superclasses => ['MyClass'],
19     roles => [ 'MooseX::Getopt::Basic' ],
20 );
21
22 my $basic_obj = MyClassWithBasic->new_with_options();
23 ok(!$basic_obj->meta->has_attribute('usage'), 'basic class has no usage attribute');
24
25 Moose::Meta::Class->create('MyClassWithGLD',
26     superclasses => ['MyClass'],
27     roles => [ 'MooseX::Getopt' ],
28 );
29
30 my $gld_obj = MyClassWithGLD->new_with_options();
31
32 ok($gld_obj->meta->has_attribute('usage'), 'class has usage attribute');
33 isa_ok($gld_obj->usage, 'Getopt::Long::Descriptive::Usage');
34