MooseX::Getopt::Dashes: Document how ::Dashes interacts with the cmd_flag argument
[gitmo/MooseX-Getopt.git] / t / 010_dashes.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 5;
7
8 use Test::Exception;
9
10
11 BEGIN {
12         use_ok('MooseX::Getopt');
13 }
14
15 {
16         package App;
17         use Moose;
18
19         with 'MooseX::Getopt::Dashes';
20
21         has 'some_thingy' => ( is => 'ro', isa => 'Str', default => 'foo' );
22         has 'another_thingy'   => ( is => 'ro', isa => 'Str', default => 'foo', cmd_flag => 'another_thingy', traits => [ 'Getopt' ], );
23 }
24
25 {
26         local @ARGV = (qw/--some-thingy bar/);
27         lives_and { is( App->new_with_options->some_thingy, 'bar') } 'Dash in option name';
28 }
29
30 {
31         local @ARGV = (qw/--some_thingy bar/);
32         throws_ok { App->new_with_options } qr/Unknown option: some_thingy/;
33 }
34
35 {
36         local @ARGV = (qw/--another_thingy bar/);
37         lives_and { is( App->new_with_options->another_thingy, 'bar' ) } 'Underscore in option name';
38 }
39
40 {
41         local @ARGV = (qw/--another-thingy bar/);
42         throws_ok { App->new_with_options } qr/Unknown option: another-thingy/;
43 }