Some test style cleanup
[gitmo/Moose.git] / t / 100_bugs / 012_DEMOLISH_eats_mini.t
CommitLineData
3a0c064a 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
7ff56534 6use Test::More tests => 4;
3a0c064a 7use Test::Exception;
8
7ff56534 9
3a0c064a 10{
11 package Foo;
12 use Moose;
13
14 has 'bar' => (
15 is => 'ro',
16 required => 1,
17 );
18
19 # Defining this causes the FIRST call to Baz->new w/o param to fail,
20 # if no call to ANY Moose::Object->new was done before.
21 sub DEMOLISH {
22 my ( $self ) = @_;
d03bd989 23 # ... Moose (kinda) eats exceptions in DESTROY/DEMOLISH";
3a0c064a 24 }
25}
26
ca0e380d 27{
28 my $obj = eval { Foo->new; };
38812e01 29 like( $@, qr/is required/, "... Foo plain" );
30 is( $obj, undef, "... the object is undef" );
ca0e380d 31}
32
33{
34 package Bar;
d03bd989 35
ca0e380d 36 sub new { die "Bar died"; }
37
38 sub DESTROY {
39 die "Vanilla Perl eats exceptions in DESTROY too";
40 }
41}
42
43{
44 my $obj = eval { Bar->new; };
38812e01 45 like( $@, qr/Bar died/, "... Bar plain" );
46 is( $obj, undef, "... the object is undef" );
ca0e380d 47}