~ubuntu-branches/ubuntu/trusty/libtest-roo-perl/trusty-proposed

« back to all changes in this revision

Viewing changes to t/exceptions.t

  • Committer: Package Import Robot
  • Author(s): gregor herrmann
  • Date: 2014-01-14 19:25:11 UTC
  • Revision ID: package-import@ubuntu.com-20140114192511-9ycl4dc1zgamfnek
Tags: upstream-1.002
ImportĀ upstreamĀ versionĀ 1.002

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
use 5.008001;
 
2
use Test::More 0.96;
 
3
use Capture::Tiny qw/capture/;
 
4
 
 
5
use lib 't/lib';
 
6
 
 
7
my @cases = (
 
8
    {
 
9
        label  => "missing role",
 
10
        file   => "t/bin/role-not-found.pl",
 
11
        expect => qr/Can't \S+ RoleNotFoundAnywhere\.pm in \@INC/,
 
12
    },
 
13
    {
 
14
        label  => "requires not satisfied",
 
15
        file   => "t/bin/unsatisfied.pl",
 
16
        expect => qr/Can't apply RequiresFixture to main/,
 
17
    },
 
18
    {
 
19
        label  => "Test::Roo loads strictures",
 
20
        file   => "t/bin/not-strict.pl",
 
21
        expect => qr/requires explicit package name/,
 
22
    },
 
23
    {
 
24
        label   => "skip_all respected",
 
25
        file    => "t/bin/skip-all.pl",
 
26
        expect  => qr/We just want to skip/,
 
27
        exit_ok => 1,
 
28
        stdout  => 1,
 
29
    },
 
30
    {
 
31
        label   => "skip_all respected in role",
 
32
        file    => "t/bin/skip-in-role.pl",
 
33
        expect  => qr/We just want to skip/,
 
34
        exit_ok => 1,
 
35
        stdout  => 1,
 
36
    },
 
37
);
 
38
 
 
39
for my $c (@cases) {
 
40
    my ( $output, $error, $rc ) = capture { system( $^X, $c->{file} ) };
 
41
    subtest $c->{label} => sub {
 
42
        if ( $c->{exit_ok} ) {
 
43
            ok( !$rc, "exit ok" );
 
44
        }
 
45
        else {
 
46
            ok( $rc, "nonzero exit" );
 
47
        }
 
48
        like( $c->{stdout} ? $output : $error, $c->{expect}, "exception text" );
 
49
    };
 
50
}
 
51
 
 
52
done_testing;
 
53
#
 
54
# This file is part of Test-Roo
 
55
#
 
56
# This software is Copyright (c) 2013 by David Golden.
 
57
#
 
58
# This is free software, licensed under:
 
59
#
 
60
#   The Apache License, Version 2.0, January 2004
 
61
#
 
62
# vim: ts=4 sts=4 sw=4 et: