1#!/usr/bin/perl 2 3use strict; 4use warnings; 5use lib 't/lib'; 6use GenErrorRegex qw< badval_error >; 7 8use Test::More; 9use Test::Exception; 10 11 12{ package Foo::Bar; sub new { bless {}, __PACKAGE__; } } 13 14SKIP: 15{ 16 eval { require Moose } or skip "Moose required for testing Moose roles", 2; 17 18 require MooseRoleTest; 19 use Method::Signatures; 20 21 my $moose = WithMooseRole->new; 22 my $foobar = Foo::Bar->new; 23 24 25 func moosey (MooseRole $foo) {} 26 27 28 # positive test 29 lives_ok { moosey($moose) } 'Moose role passes okay'; 30 31 # negative test 32 throws_ok { moosey($foobar) } badval_error(undef, foo => MooseRole => $foobar, 'moosey'), 33 'Moose role fails when appropriate'; 34} 35 36 37done_testing; 38