Oops. That last commit should've read "change numbers to names".
[gitmo/MooseX-Daemonize.git] / t / 02.stdout.t
CommitLineData
10769ed3 1use Test::More 'no_plan';
3c3db18c 2use Test::Builder;
3use Test::MooseX::Daemonize;
3543c999 4use MooseX::Daemonize;
3c3db18c 5
6my $Test = Test::Builder->new;
3c3db18c 7
8{
9
10 package TestOutput;
11 use Moose;
12 with qw(MooseX::Daemonize);
3543c999 13 with qw(Test::MooseX::Daemonize::Testable); # setup our test environment
14
3c3db18c 15 after start => sub {
16 my ($self) = @_;
43d819aa 17 $self->output_ok()
18 if $self->is_daemon;
3c3db18c 19 };
20
21 sub output_ok {
3543c999 22 my ($self) = @_;
23 my $count = 1;
7a4ac6b2 24 for ( 0 .. 3 ) {
3543c999 25 $Test->ok( $count++, "$count output_ok" );
26 sleep(1);
3c3db18c 27 }
3c3db18c 28 }
29 no Moose;
30}
31
32package main;
b916501e 33use strict;
34use warnings;
3c3db18c 35
380acf65 36use File::Spec::Functions;
37use File::Temp qw(tempdir);
38
39my $dir = tempdir( CLEANUP => 1 );
40
3c3db18c 41## Try to make sure we are in the test directory
3543c999 42my $app = TestOutput->new(
380acf65 43 pidbase => $dir,
44 test_output => catfile($dir, 'results'),
3543c999 45);
46daemonize_ok( $app, 'child forked okay' );
7a4ac6b2 47sleep(3); # give ourself a chance to produce some output
b916501e 48
49my $warnings = "";
50{
51 local $SIG{__WARN__} = sub { $warnings .= $_[0]; warn @_ };
52 $app->stop( no_exit => 1 );
53}
54
55is($warnings, "", "No warnings from stop");
3543c999 56
57check_test_output($app);
58unlink( $app->test_output );
7a4ac6b2 59exit;