use warnings;
use strict;
use Prophet::Test tests => 9;
use File::Temp qw'tempdir';

# test coverage for Prophet::CLI::Command arg translation

use_ok('Prophet::CLI');
$ENV{'PROPHET_REPO'} =
  tempdir( CLEANUP => !$ENV{PROPHET_DEBUG} ) . '/repo-' . $$;

my $cli = Prophet::CLI->new();
can_ok( $cli, 'app_handle' );
can_ok( $cli, 'handle' );
my $cxn = $cli->handle;
isa_ok( $cxn, 'Prophet::Replica', "Got the cxn" );

use_ok('Prophet::CLI::Command');

my $context = $cli->context;

diag('Checking default arg translations');
$context->set_arg('a');
$context->set_arg('v');
my $command =
  Prophet::CLI::Command->new( handle => $cxn, context => $context );

is( $command->has_arg('all'), 1, 'translation of -a to --all correct' );
is( $command->has_arg('verbose'), 1,
    'translation of -v to --verbose correct' );

use_ok('Prophet::CLI::Command::Server');
$context->set_arg( p => '8080' );
my $server =
  Prophet::CLI::Command::Server->new( handle => $cxn, context => $context );
diag('Checking a subclass arg translation (with value)');
is( $server->context->arg('port'),
    '8080', 'translation of -p to --port correct' );
