X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F021_attribute_errors_and_edge_cases.t;h=2974b8d352dfbf45a8a646d16f17bddc5c03e902;hb=148b469742669e1a506538200f624dcdaeeb510a;hp=1b8c5140415ac26dd4989db1ccd993fe88a22f8b;hpb=716c57656450dae12aff9302ad1c3a3d6e8138d3;p=gitmo%2FClass-MOP.git diff --git a/t/021_attribute_errors_and_edge_cases.t b/t/021_attribute_errors_and_edge_cases.t index 1b8c514..2974b8d 100644 --- a/t/021_attribute_errors_and_edge_cases.t +++ b/t/021_attribute_errors_and_edge_cases.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 20; +use Test::More tests => 23; use Test::Exception; BEGIN { @@ -11,15 +11,40 @@ BEGIN { use_ok('Class::MOP::Attribute'); } +# most values are static { - my $regexp = qr/hello (.*)/; - my $attr = Class::MOP::Attribute->new('$test' => ( - default => $regexp - )); + dies_ok { + Class::MOP::Attribute->new('$test' => ( + default => qr/hello (.*)/ + )); + } '... no refs for defaults'; + + dies_ok { + Class::MOP::Attribute->new('$test' => ( + default => [] + )); + } '... no refs for defaults'; + + dies_ok { + Class::MOP::Attribute->new('$test' => ( + default => {} + )); + } '... no refs for defaults'; + - ok($attr->has_default, '... we have a default value'); - is($attr->default, $regexp, '... and got the value we expected'); + dies_ok { + Class::MOP::Attribute->new('$test' => ( + default => \(my $var) + )); + } '... no refs for defaults'; + + dies_ok { + Class::MOP::Attribute->new('$test' => ( + default => bless {} => 'Foo' + )); + } '... no refs for defaults'; + } { # bad construtor args