1use strict; 2use warnings; 3 4my $stage = 1; 5 6package GumboJumboObject; 7use vars qw(@ISA); 8use Test::More; 9 10use strict; 11use warnings; 12 13@ISA = qw(Prima::Object); 14 15sub init 16{ 17 my $self = shift; 18 ok( $self, "init") if $stage == 1; 19 my %profile = @_; 20 %profile = $self-> SUPER::init( %profile); 21 croak("test!") if $stage == 2; 22 return %profile; 23} 24 25 26sub setup 27{ 28 main::set_flag(); 29 $_[0]-> SUPER::setup; 30} 31 32sub done 33{ 34 my $self = $_[0]; 35 $self-> SUPER::done; 36 pass("done" ); 37} 38 39package main; 40use strict; 41use warnings; 42 43use Prima::sys::Test qw(noX11); 44use Test::More tests => 8; 45 46reset_flag(); 47my $o = GumboJumboObject-> create; 48ok( $o, "create result" ); 49ok( $o-> alive, "alive" ); 50ok( set_flag, "method override" ); 51$o-> destroy; 52ok( !$o-> alive, "destroy"); 53$stage++; 54undef $o; 55eval { $o = GumboJumboObject-> create; }; 56ok( !defined $o, "croak during init" ); 57