--- /dev/null
+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;