# Test the constructor
use Test::More;
use Test::Trap;
use Test::Exception;
eval "use CLI::Startup";
plan skip_all => "Can't load CLI::Startup" if $@;
my $app;
# init() with basic option
{
lives_ok { $app = CLI::Startup->new } "Default app object";
lives_ok { $app->set_optspec({ foo => 'bar' }), $app->init } "with options";
ok defined($app->get_optspec), "optspec is defined";
}
# init() with no options fails
{
lives_ok { $app = CLI::Startup->new } "No-argument constructor";
ok !defined($app->get_optspec), "No optspecs yet";
throws_ok { $app->init } qr/without defining/, "init() with no options";
}
# Setting usage string in initializer
{
lives_ok { $app = CLI::Startup->new({ usage => "usage", options => undef }) }
"Constructor with usage but no options";
ok $app->get_usage eq 'usage', "Usage set correctly";
}
# Setting default args in initializer
{
lives_ok { $app = CLI::Startup->new({ options => undef, default_settings => { a => 1 }}) }
"Constructor with default settings";
is_deeply $app->get_default_settings, { a => 1 }, "Settings are correct";
}
done_testing();