summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-05-27 23:16:11 -0500
committerJesse Luehrs <doy@tozt.net>2009-05-27 23:16:11 -0500
commit27d4e1a0e0d44c2745ab782639b0d83742dd1331 (patch)
tree8cca9b3d19032ee3c1c4434da7737d61b29aadb6
parentbb04e8cfffa8342804af050813256d48cd8cb62b (diff)
downloadmoosex-mangle-27d4e1a0e0d44c2745ab782639b0d83742dd1331.tar.gz
moosex-mangle-27d4e1a0e0d44c2745ab782639b0d83742dd1331.zip
test guard
-rw-r--r--t/012-guard.t31
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';