The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::Clustericious::Command;
use Test::More;
use YAML::XS qw( Load );
use File::HomeDir;
use Path::Class qw( file );

requires undef, 3;
extract_data;

run_ok('hello', 'daemon', 'foo', 'bar', 'baz')
  ->exit_is(0)
  ->tap(sub {
    my @args = @{ Load(shift->out) };
    is_deeply \@args, [ qw( 
      Clustericious::Command::daemon
      -l http://1.2.3.4:5678
      foo bar baz
    ) ], 'arguments are correct';
  });

__DATA__

@@ bin/hello
#!/usr/bin/perl

use strict;
use warnings;
use Clustericious::Commands;
$ENV{MOJO_APP} = 'Clustericious::HelloWorld';
Clustericious::Commands->start;


@@ lib/Mojolicious/Command/daemon.pm
package Mojolicious::Command::daemon;

use strict;
use warnings;
use YAML::XS qw( Dump );

sub run
{
  my($self, @args) = @_;
  print YAML::XS::Dump([ref $self, @args]);
}

1;


@@ etc/Clustericious-HelloWorld.conf
---
url: http://1.2.3.4:5678