fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / steps / init / manifest-01.t
blobb4b39bb6c441ed1b1d58a661b6b46ff26aa6343e
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # init/manifest-01.t
6 use strict;
7 use warnings;
8 use Test::More tests => 12;
9 use Carp;
10 use Cwd;
11 use File::Copy;
12 use File::Temp qw(tempdir);
13 use lib qw( lib );
14 use_ok('config::init::manifest');
15 use Parrot::Configure;
16 use Parrot::Configure::Options qw( process_options );
17 use IO::CaptureOutput qw | capture |;
19 ########## no manifest check ##########
21 my $pkg  = q{init::manifest};
22 my ($args, $step_list_ref) = process_options(
23     {
24         argv => [q{--nomanicheck}],
25         mode => q{configure},
26     }
29 my $conf = Parrot::Configure->new;
30 $conf->add_steps($pkg);
32 my $serialized = $conf->pcfreeze();
34 $conf->options->set( %{$args} );
36 my $task        = $conf->steps->[-1];
37 my $step_name   = $task->step;
39 my $step = $step_name->new();
40 ok( defined $step, "$step_name constructor returned defined value" );
41 isa_ok( $step, $step_name );
42 ok( $step->description(), "$step_name has description" );
44 ok(defined ($step->result), "result defined");
45 ok(! ($step->result), "result not yet true");
46 my $ret = $step->runstep($conf);
47 ok( defined $ret, "runstep() returned defined value" );
48 is( $step->result, q{skipped},
49     "Because of --nomanicheck, result is 'skipped'." );
51 $conf->replenish($serialized);
53 ########## mock missing files ##########
55 ($args, $step_list_ref) = process_options(
56     {
57         argv => [],
58         mode => q{configure},
59     }
61 $conf->options->set( %{$args} );
63 $task        = $conf->steps->[-1];
64 $step_name   = $task->step;
66 $step = $step_name->new();
67 ok( defined $step, "$step_name constructor returned defined value" );
68 isa_ok( $step, $step_name );
70 my $cwd = cwd();
72     my $tdir = tempdir( CLEANUP => 1 );
73     chdir $tdir or croak "Unable to change to tempdir";
74     copy( qq{$cwd/MANIFEST}, qq{$tdir/MANIFEST} )
75         or croak "Unable to copy MANIFEST";
76     {
77         my ($rv, $stdout, $stderr);
78         capture(
79             sub { $rv = $step->runstep($conf); },
80             \$stdout,
81             \$stderr,
82         );
83         is( $rv, undef, "runstep returned undef" );
84     }
85     unlink qq{$tdir/MANIFEST}
86         or croak "Unable to delete file after testing";
87     chdir $cwd or croak "Unable to change back";
90 pass("Completed all tests in $0");
92 ################### DOCUMENTATION ###################
94 =head1 NAME
96 init/manifest-01.t - test init::manifest
98 =head1 SYNOPSIS
100     % prove t/steps/init/manifest-01.t
102 =head1 DESCRIPTION
104 The files in this directory test functionality used by F<Configure.pl>.
106 The tests in this file test methods found in config::init::manifest.
108 =head1 AUTHOR
110 James E Keenan
112 =head1 SEE ALSO
114 config::init::manifest, F<Configure.pl>.
116 =cut
118 # Local Variables:
119 #   mode: cperl
120 #   cperl-indent-level: 4
121 #   fill-column: 100
122 # End:
123 # vim: expandtab shiftwidth=4: