tests for handles
Arthur Axel 'fREW' Schmidt [Fri, 12 Nov 2010 01:37:50 +0000 (19:37 -0600)]
t/accessor-handles.t [new file with mode: 0644]

diff --git a/t/accessor-handles.t b/t/accessor-handles.t
new file mode 100644 (file)
index 0000000..aee5958
--- /dev/null
@@ -0,0 +1,52 @@
+use strictures 1;
+use Test::More;
+
+{
+  package Robot;
+
+  use Moo::Role;
+
+  requires 'smash';
+
+}
+
+{
+  package Foo;
+
+  use Moo;
+
+  with 'Robot';
+
+  sub one {1}
+  sub two {2}
+  sub smash {'smash'}
+  sub yum {$_[1]}
+}
+
+{
+  package Bar;
+
+  use Moo;
+
+  has foo => ( is => 'ro', handles => [ qw(one two) ] );
+  has foo2 => ( is => 'ro', handles => { un => 'one' } );
+  has foo3 => ( is => 'ro', handles => 'Robot' );
+  has foo4 => ( is => 'ro', handles => {
+     eat_curry => [ yum => 'Curry!' ],
+  });
+}
+
+my $bar = Bar->new(
+  foo => Foo->new, foo2 => Foo->new, foo3 => Foo->new, foo4 => Foo->new
+);
+
+is $bar->one, 1, 'handles works';
+is $bar->two, 2, 'handles works for more than one method';
+
+is $bar->un, 1, 'handles works for aliasing a method';
+
+is $bar->smash, 'smash', 'handles works for a role';
+
+is $bar->eat_curry, 'Curry!', 'handles works for currying';
+
+done_testing;