add number to filename of new testcase
[gitmo/MooseX-Getopt.git] / t / 107_no_auto_help.t
1 # Related information:
2 # https://rt.cpan.org/Public/Bug/Display.html?id=47865
3 # https://rt.cpan.org/Public/Bug/Display.html?id=52474
4 # https://rt.cpan.org/Public/Bug/Display.html?id=57683
5 # http://www.nntp.perl.org/group/perl.moose/2010/06/msg1767.html
6
7 # Summary: If we disable the "auto_help" option in Getopt::Long, then
8 # getoptions() will not call into pod2usage() (causing program termination)
9 # when --help is passed.
10
11
12 my $fail_on_exit = 1;
13 {
14     package Class;
15     use strict; use warnings;
16
17     use Moose;
18     with
19         'MooseX::SimpleConfig',
20         'MooseX::Getopt';
21
22     # this is a hacky way of being able to check that we made it past the
23     # $opt_parser->getoptions() call in new_with_options, because it is
24     # still going to bail out later on, on seeing the --help flag
25     has configfile => (
26         is => 'ro', isa => 'Str',
27         default => sub {
28             $fail_on_exit = 0;
29             'this_value_unimportant',
30         },
31     );
32
33     # only here to avoid an "unknown option: help" warning
34     has help => (
35         is => 'ro', isa => 'Bool',
36     );
37
38     no Moose;
39     1;
40 }
41
42 use Test::More tests => 1;
43
44 END {
45     ok(!$fail_on_exit, 'getoptions() lives');
46
47     # cancel the non-zero exit status from _getopt_full_usage()
48     exit 0;
49 }
50
51
52 @ARGV = ('--help');
53 Class->new_with_options;
54