Blame t/state_results.t

Packit a6a12c
#!/usr/bin/perl -w
Packit a6a12c
Packit a6a12c
BEGIN {
Packit a6a12c
    unshift @INC, 't/lib';
Packit a6a12c
}
Packit a6a12c
Packit a6a12c
use strict;
Packit a6a12c
use warnings;
Packit a6a12c
use Test::More tests => 25;
Packit a6a12c
use App::Prove::State;
Packit a6a12c
Packit a6a12c
my $test_suite_data = test_suite_data();
Packit a6a12c
Packit a6a12c
#
Packit a6a12c
# Test test suite results
Packit a6a12c
#
Packit a6a12c
Packit a6a12c
can_ok 'App::Prove::State::Result', 'new';
Packit a6a12c
isa_ok my $result = App::Prove::State::Result->new($test_suite_data),
Packit a6a12c
  'App::Prove::State::Result', '... and the object it returns';
Packit a6a12c
Packit a6a12c
ok $result, 'state_version';
Packit a6a12c
ok defined $result->state_version, '... and it should be defined';
Packit a6a12c
Packit a6a12c
can_ok $result, 'generation';
Packit a6a12c
is $result->generation, $test_suite_data->{generation},
Packit a6a12c
  '... and it should return the correct generation';
Packit a6a12c
Packit a6a12c
can_ok $result, 'num_tests';
Packit a6a12c
is $result->num_tests, scalar keys %{ $test_suite_data->{tests} },
Packit a6a12c
  '... and it should return the number of tests run';
Packit a6a12c
Packit a6a12c
can_ok $result, 'raw';
Packit a6a12c
is_deeply $result->raw, $test_suite_data,
Packit a6a12c
  '... and it should return the raw, unblessed data';
Packit a6a12c
Packit a6a12c
#
Packit a6a12c
# Check individual tests.
Packit a6a12c
#
Packit a6a12c
Packit a6a12c
can_ok $result, 'tests';
Packit a6a12c
Packit a6a12c
can_ok $result, 'test';
Packit a6a12c
eval { $result->test };
Packit a6a12c
my $error = $@;
Packit a6a12c
like $error, qr/^\Qtest() requires a test name/,
Packit a6a12c
  '... and it should croak() if a test name is not supplied';
Packit a6a12c
Packit a6a12c
my $name = 't/compat/failure.t';
Packit a6a12c
ok my $test = $result->test('t/compat/failure.t'),
Packit a6a12c
  'result() should succeed if the test name is found';
Packit a6a12c
isa_ok $test, 'App::Prove::State::Result::Test',
Packit a6a12c
  '... and the object it returns';
Packit a6a12c
Packit a6a12c
can_ok $test, 'name';
Packit a6a12c
is $test->name, $name, '... and it should return the test name';
Packit a6a12c
Packit a6a12c
can_ok $test, 'last_pass_time';
Packit a6a12c
like $test->last_pass_time, qr/^\d+\.\d+$/,
Packit a6a12c
  '... and it should return a numeric value';
Packit a6a12c
Packit a6a12c
can_ok $test, 'last_fail_time';
Packit a6a12c
ok !defined $test->last_fail_time,
Packit a6a12c
  '... and it should return undef if the test has never failed';
Packit a6a12c
Packit a6a12c
can_ok $result, 'remove';
Packit a6a12c
ok $result->remove($name), '... and calling it should succeed';
Packit a6a12c
Packit a6a12c
ok $test = $result->test($name),
Packit a6a12c
  '... and fetching the removed test should suceed';
Packit a6a12c
ok !defined $test->last_pass_time, '... and it should have clean values';
Packit a6a12c
Packit a6a12c
sub test_suite_data {
Packit a6a12c
    return {
Packit a6a12c
        'version'    => App::Prove::State::Result->state_version,
Packit a6a12c
        'generation' => '51',
Packit a6a12c
        'tests'      => {
Packit a6a12c
            't/compat/failure.t' => {
Packit a6a12c
                'last_result'    => '0',
Packit a6a12c
                'last_run_time'  => '1196371471.57738',
Packit a6a12c
                'last_pass_time' => '1196371471.57738',
Packit a6a12c
                'total_passes'   => '48',
Packit a6a12c
                'seq'            => '1549',
Packit a6a12c
                'gen'            => '51',
Packit a6a12c
                'elapsed'        => 0.1230,
Packit a6a12c
                'last_todo'      => '1',
Packit a6a12c
                'mtime'          => 1196285623,
Packit a6a12c
            },
Packit a6a12c
            't/yamlish-writer.t' => {
Packit a6a12c
                'last_result'    => '0',
Packit a6a12c
                'last_run_time'  => '1196371480.5761',
Packit a6a12c
                'last_pass_time' => '1196371480.5761',
Packit a6a12c
                'last_fail_time' => '1196368609',
Packit a6a12c
                'total_passes'   => '41',
Packit a6a12c
                'seq'            => '1578',
Packit a6a12c
                'gen'            => '49',
Packit a6a12c
                'elapsed'        => 12.2983,
Packit a6a12c
                'last_todo'      => '0',
Packit a6a12c
                'mtime'          => 1196285400,
Packit a6a12c
            },
Packit a6a12c
            't/compat/env.t' => {
Packit a6a12c
                'last_result'    => '0',
Packit a6a12c
                'last_run_time'  => '1196371471.42967',
Packit a6a12c
                'last_pass_time' => '1196371471.42967',
Packit a6a12c
                'last_fail_time' => '1196368608',
Packit a6a12c
                'total_passes'   => '48',
Packit a6a12c
                'seq'            => '1548',
Packit a6a12c
                'gen'            => '52',
Packit a6a12c
                'elapsed'        => 3.1290,
Packit a6a12c
                'last_todo'      => '0',
Packit a6a12c
                'mtime'          => 1196285739,
Packit a6a12c
            },
Packit a6a12c
            't/compat/version.t' => {
Packit a6a12c
                'last_result'    => '2',
Packit a6a12c
                'last_run_time'  => '1196371472.96476',
Packit a6a12c
                'last_pass_time' => '1196371472.96476',
Packit a6a12c
                'last_fail_time' => '1196368609',
Packit a6a12c
                'total_passes'   => '47',
Packit a6a12c
                'seq'            => '1555',
Packit a6a12c
                'gen'            => '51',
Packit a6a12c
                'elapsed'        => 0.2363,
Packit a6a12c
                'last_todo'      => '4',
Packit a6a12c
                'mtime'          => 1196285239,
Packit a6a12c
            },
Packit a6a12c
            't/compat/inc_taint.t' => {
Packit a6a12c
                'last_result'    => '3',
Packit a6a12c
                'last_run_time'  => '1196371471.89682',
Packit a6a12c
                'last_pass_time' => '1196371471.89682',
Packit a6a12c
                'total_passes'   => '47',
Packit a6a12c
                'seq'            => '1551',
Packit a6a12c
                'gen'            => '51',
Packit a6a12c
                'elapsed'        => 1.6938,
Packit a6a12c
                'last_todo'      => '0',
Packit a6a12c
                'mtime'          => 1196185639,
Packit a6a12c
            },
Packit a6a12c
            't/source.t' => {
Packit a6a12c
                'last_result'    => '0',
Packit a6a12c
                'last_run_time'  => '1196371479.72508',
Packit a6a12c
                'last_pass_time' => '1196371479.72508',
Packit a6a12c
                'total_passes'   => '41',
Packit a6a12c
                'seq'            => '1570',
Packit a6a12c
                'gen'            => '51',
Packit a6a12c
                'elapsed'        => 0.0143,
Packit a6a12c
                'last_todo'      => '0',
Packit a6a12c
                'mtime'          => 1186285639,
Packit a6a12c
            },
Packit a6a12c
        }
Packit a6a12c
    };
Packit a6a12c
}