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