summaryrefslogtreecommitdiff
path: root/t/roles/overloading_remove_attributes_bug.t
blob: 15f6cc94452aab64ac1d3115e5533f1cc07b44bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use strict;
use warnings;

use Test::More 0.88;
use Test::Warnings;

use lib 't/lib';

use OverloadingTests;

{
    package MyRole;
    use Moose::Role;

    has foo => ( is => 'ro' );

    # Note ordering here. If metaclass reinitialization nukes attributes, this
    # breaks.
    with 'Overloading::RoleWithOverloads';
}

{
    package MyClass;
    use Moose;

    with 'MyRole';
}

my $object = MyClass->new( foo => 21, message => 'foo' );

OverloadingTests::test_overloading_for_object( $object, 'MyClass object' );

is( $object->foo(), 21,
    'foo attribute in MyClass is still present (from MyRole)' );

done_testing();