The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 4;

BEGIN {
    use Config;
    use File::Which;

    my $perl = $Config{perlpath};
    my $plackup = which('plackup');
    $ENV{'UBIC_SERVICE_PLACKUP_BIN'} = "$perl $plackup";
}

system('rm -rf tfiles') and die "Can't remove tfiles: $!";
system('mkdir tfiles') and die "Can't create tfiles: $!";

use LWP::Simple;
use Ubic::Service::Plack;

my $port = 5001;

my $service = Ubic::Service::Plack->new({
    server => 'Standalone',
    port => $port,
    app => 't/bin/test.psgi',
    app_name => 'test_psgi',
    status => sub {
        my $result = get("http://localhost:$port") || '';
        if ($result eq 'ok') {
            return 'running';
        }
        else {
            return 'broken';
        }
    },
    ubic_log => 'tfiles/ubic.log',
    stdout => 'tfiles/stdout.log',
    stderr => 'tfiles/stderr.log',
    user => $ENV{LOGNAME},
    pidfile => 'tfiles/test_psgi.pid',
});

$service->start;
is($service->status, 'running', 'start works');

$service->stop;
is($service->status, 'not running', 'stop works');

$service->start;
is($service->status, 'running', 'another start works');

$service->stop;
is($service->status, 'not running', 'another stop works');