-#!/usr/bin/env perl
-
use strict;
use warnings;
-use Test::More tests => 37;
-use Test::Exception;
-use File::Spec;
-
-use Test::Requires {
- 'MooseX::ConfigFromFile' => 0.01, # skip all if not installed
-};
+use Test::Requires { 'MooseX::ConfigFromFile' => '0.06' }; # skip all if not installed
+use Test::More tests => 38;
+use Test::Fatal;
+use Path::Tiny;
+use Test::NoWarnings 1.04 ':early';
{
package App;
optional_from_config => 'from_config_2',
);
- my $cpath = File::Spec->canonpath('/notused/default');
+ my $cpath = Path::Tiny::path('/notused/default');
if ( $file ne $cpath ) {
$config{config_from_override} = 1;
}
extends 'App';
has '+configfile' => (
- default => File::Spec->canonpath('/notused/default'),
+ default => Path::Tiny::path('/notused/default')->stringify,
);
}
extends 'App';
has '+configfile' => (
- default => sub { return File::Spec->canonpath('/notused/default') },
+ default => sub { return Path::Tiny::path('/notused/default') },
);
}
{
local @ARGV = qw( --required_from_argv 1 );
- throws_ok { App->new_with_options } qr/Required option missing: required_from_config/;
+ like exception { App->new_with_options },
+ ($Getopt::Long::Descriptive::VERSION >= 0.091
+ ? qr/Mandatory parameter 'required_from_config' missing/
+ : qr/Required option missing: required_from_config/);
{
my $app = App::DefaultConfigFile->new_with_options;
ok( !$app->config_from_override,
'... config_from_override false as expected' );
- is( $app->configfile, File::Spec->canonpath('/notused/default'),
+ is( $app->configfile, path('/notused/default'),
'... configfile is /notused/default as expected' );
}
-}
-
-# No config specified
-{
- local @ARGV = qw( --required_from_argv 1 );
{
my $app = App::DefaultConfigFileCodeRef->new_with_options;
ok( !$app->config_from_override,
'... config_from_override false as expected' );
- is( $app->configfile, File::Spec->canonpath('/notused/default'),
+ is( $app->configfile, path('/notused/default'),
'... configfile is /notused/default as expected' );
}
}
ok( $app->config_from_override,
'... config_from_override true as expected' );
- is( $app->configfile, File::Spec->canonpath('/notused'),
+ is( $app->configfile, path('/notused'),
'... configfile is /notused as expected' );
}
{
ok( $app->config_from_override,
'... config_from_override true as expected' );
- is( $app->configfile, File::Spec->canonpath('/notused'),
+ is( $app->configfile, path('/notused'),
'... configfile is /notused as expected' );
}
}
# Required arg not supplied from cmdline
{
local @ARGV = qw( --configfile /notused );
- throws_ok { App->new_with_options } qr/Required option missing: required_from_argv/;
+ like exception { App->new_with_options },
+ ($Getopt::Long::Descriptive::VERSION >= 0.091
+ ? qr/Mandatory parameter 'required_from_argv' missing/
+ : qr/Required option missing: required_from_argv/);
}
# Config file value overriden from cmdline
# With DerivedApp, the Getopt role was applied at a different level
# than the ConfigFromFile role
{
- lives_ok { DerivedApp::Getopt->new_with_options } 'Can create DerivedApp';
+ ok ! exception { DerivedApp::Getopt->new_with_options }, 'Can create DerivedApp';
}
sub app_ok {