diff options
author | Jesse Luehrs <doy@tozt.net> | 2009-05-27 23:16:11 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2009-05-27 23:16:11 -0500 |
commit | 27d4e1a0e0d44c2745ab782639b0d83742dd1331 (patch) | |
tree | 8cca9b3d19032ee3c1c4434da7737d61b29aadb6 | |
parent | bb04e8cfffa8342804af050813256d48cd8cb62b (diff) | |
download | moosex-mangle-27d4e1a0e0d44c2745ab782639b0d83742dd1331.tar.gz moosex-mangle-27d4e1a0e0d44c2745ab782639b0d83742dd1331.zip |
test guard
-rw-r--r-- | t/012-guard.t | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/t/012-guard.t b/t/012-guard.t new file mode 100644 index 0000000..841be55 --- /dev/null +++ b/t/012-guard.t @@ -0,0 +1,31 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More tests => 2; +use Test::Exception; + +package Foo; +use Moose; + +sub foo { + my $self = shift; + my ($arg) = shift; + die 'arg must be positive' if $arg < 0; + return $arg; +} + +package Foo::Sub; +use Moose; +use MooseX::Mangle; +extends 'Foo'; + +guard foo => sub { + my $self = shift; + my ($arg) = @_; + return $arg >= 0; +}; + +package main; +my $foosub = Foo::Sub->new; +is($foosub->foo(2), 2, 'foo is called if guard succeeds'); +lives_and { is($foosub->foo(-2), undef) } 'foo returns undef on guard failure'; |