MooseX::Getopt::Dashes: Document how ::Dashes interacts with the cmd_flag argument
[gitmo/MooseX-Getopt.git] / t / 010_dashes.t
CommitLineData
5f78e881 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
ceeaabeb 6use Test::More tests => 5;
5f78e881 7
8use Test::Exception;
9
10
11BEGIN {
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' );
ceeaabeb 22 has 'another_thingy' => ( is => 'ro', isa => 'Str', default => 'foo', cmd_flag => 'another_thingy', traits => [ 'Getopt' ], );
5f78e881 23}
24
25{
26 local @ARGV = (qw/--some-thingy bar/);
ceeaabeb 27 lives_and { is( App->new_with_options->some_thingy, 'bar') } 'Dash in option name';
5f78e881 28}
29
30{
ceeaabeb 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/;
5f78e881 43}