},
# ^^^^^ CODE TAKEN FROM MRO::COMPAT ^^^^^
},
-# VVVVV CODE TAKEN FROM TEST::EXCEPTION VVVVV
- 'Test::Exception' => do {
-
- my $Tester;
-
- my $is_exception = sub {
- my $exception = shift;
- return ref $exception || $exception ne '';
- };
-
- my $exception_as_string = sub {
- my ( $prefix, $exception ) = @_;
- return "$prefix normal exit" unless $is_exception->( $exception );
- my $class = ref $exception;
- $exception = "$class ($exception)"
- if $class && "$exception" !~ m/^\Q$class/;
- chomp $exception;
- return "$prefix $exception";
- };
- my $try_as_caller = sub {
- my $coderef = shift;
- eval { $coderef->() };
- $@;
- };
-
- {
- 'throws_ok' => sub (&$;$) {
- my ( $coderef, $expecting, $description ) = @_;
- Carp::croak "throws_ok: must pass exception class/object or regex"
- unless defined $expecting;
- $description = $exception_as_string->( "threw", $expecting )
- unless defined $description;
- my $exception = $try_as_caller->($coderef);
-
- $Tester ||= Test::Builder->new;
-
- my $regex = $Tester->maybe_regex( $expecting );
- my $ok = $regex
- ? ( $exception =~ m/$regex/ )
- : eval {
- $exception->isa( ref $expecting ? ref $expecting : $expecting )
- };
- $Tester->ok( $ok, $description );
- unless ( $ok ) {
- $Tester->diag( $exception_as_string->( "expecting:", $expecting ) );
- $Tester->diag( $exception_as_string->( "found:", $exception ) );
- };
- $@ = $exception;
- return $ok;
- },
- 'lives_ok' => sub (&;$) {
- my ( $coderef, $description ) = @_;
- my $exception = $try_as_caller->( $coderef );
-
- $Tester ||= Test::Builder->new;
-
- my $ok = $Tester->ok( ! $is_exception->( $exception ), $description );
- $Tester->diag( $exception_as_string->( "died:", $exception ) ) unless $ok;
- $@ = $exception;
- return $ok;
- },
- },
- },
);
our %loaded;
#!/usr/bin/env perl
use Test::More tests => 1;
-use Mouse::Util ':test';
+use t::Exception;
throws_ok {
package Class;
use strict;
use warnings;
use Test::More tests => 10;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 3;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 16;
-use Mouse::Util ':test';
+use t::Exception;
my $lazy_run = 0;
use strict;
use warnings;
use Test::More tests => 11;
-use Mouse::Util ':test';
+use t::Exception;
my @trigger;
use strict;
use warnings;
use Test::More tests => 8;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 24;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Person;
use strict;
use warnings;
use Test::More tests => 11;
-use Mouse::Util ':test';
+use t::Exception;
require Mouse;
use lib 't/lib';
}
}
-use Mouse::Util ':test';
+use t::Exception;
my %destroyed;
use strict;
use warnings;
use Test::More tests => 47;
-use Mouse::Util ':test';
+use t::Exception;
my $builder_called = 0;
my $lazy_builder_called = 0;
use warnings;
use Test::More;
use IO::Handle;
-use Mouse::Util ':test';
+use t::Exception;
my @types = qw/Any Item Bool Undef Defined Value Num Int Str ClassName
Ref ScalarRef ArrayRef HashRef CodeRef RegexpRef GlobRef
use strict;
use warnings;
use Test::More tests => 29;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 15;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 5;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 3;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Class;
use strict;
use warnings;
use Test::More tests => 10;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Foo;
use strict;
use warnings;
use Test::More tests => 1;
-use Mouse::Util ':test';
+use t::Exception;
{
package Foo;
use strict;
use warnings;
use Test::More tests => 4;
-use Mouse::Util ':test';
+use t::Exception;
{
package FooRole;
--- /dev/null
+use strict;
+use warnings;
+use Test::More tests => 1;
+use Mouse;
+
+is $INC{'Test/Exception.pm'}, undef, "don't load Test::Exception on production environment";
use warnings;
use Test::More 'no_plan';
-use Mouse::Util ':test';
+use t::Exception;
{
package Foo;
use strict;
use warnings;
use Test::More tests => 11;
-use Mouse::Util ':test';
+use t::Exception;
lives_ok {
package Role;
use strict;
use warnings;
use Test::More tests => 11;
-use Mouse::Util ':test';
+use t::Exception;
do {
package Role;
plan skip_all => "Class::Method::Modifiers required for this test";
}
}
-use Mouse::Util ':test';
+use t::Exception;
my @calls;
my ($before, $after, $around);
use warnings;
use Test::More;
+use t::Exception;
BEGIN {
plan skip_all => "Moose required for this test" unless eval { require Moose && Moose->VERSION('0.59') };
plan tests => 27;
}
-use Mouse::Util ':test';
+use t::Exception;
{
package Foo;
--- /dev/null
+package t::Exception;
+use strict;
+use warnings;
+use base qw/Exporter/;
+
+our @EXPORT = qw/throws_ok lives_ok/;
+
+my $Tester;
+
+my $is_exception = sub {
+ my $exception = shift;
+ return ref $exception || $exception ne '';
+};
+
+my $exception_as_string = sub {
+ my ( $prefix, $exception ) = @_;
+ return "$prefix normal exit" unless $is_exception->( $exception );
+ my $class = ref $exception;
+ $exception = "$class ($exception)"
+ if $class && "$exception" !~ m/^\Q$class/;
+ chomp $exception;
+ return "$prefix $exception";
+};
+my $try_as_caller = sub {
+ my $coderef = shift;
+ eval { $coderef->() };
+ $@;
+};
+
+sub throws_ok (&$;$) {
+ my ( $coderef, $expecting, $description ) = @_;
+ Carp::croak "throws_ok: must pass exception class/object or regex"
+ unless defined $expecting;
+ $description = $exception_as_string->( "threw", $expecting )
+ unless defined $description;
+ my $exception = $try_as_caller->($coderef);
+
+ $Tester ||= Test::Builder->new;
+
+ my $regex = $Tester->maybe_regex( $expecting );
+ my $ok = $regex
+ ? ( $exception =~ m/$regex/ )
+ : eval {
+ $exception->isa( ref $expecting ? ref $expecting : $expecting )
+ };
+ $Tester->ok( $ok, $description );
+ unless ( $ok ) {
+ $Tester->diag( $exception_as_string->( "expecting:", $expecting ) );
+ $Tester->diag( $exception_as_string->( "found:", $exception ) );
+ };
+ $@ = $exception;
+ return $ok;
+}
+
+sub lives_ok (&;$) {
+ my ( $coderef, $description ) = @_;
+ my $exception = $try_as_caller->( $coderef );
+
+ $Tester ||= Test::Builder->new;
+
+ my $ok = $Tester->ok( ! $is_exception->( $exception ), $description );
+ $Tester->diag( $exception_as_string->( "died:", $exception ) ) unless $ok;
+ $@ = $exception;
+ return $ok;
+}
+
+1;