The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;
use Test::More;

# making sure BUILDARGS doesn't fuck up object's method as well

{
    package Object;
    use Moo;
    with 'MooseX::Role::Loggable';
    has hello => ( is => 'ro' );
    sub BUILDARGS {
        my $class = shift;
        my %args  = @_;
        $args{'hello'} = 'What up!';
        return {%args};
    }
}

my $object = Object->new();
isa_ok( $object, 'Object' );
cmp_ok( $object->does('MooseX::Role::Loggable'), '==', 1, 'Role applied' );
can_ok( $object, 'hello' );
can_ok( $object, 'debug', 'log', 'log_debug' );
is( $object->hello, 'What up!', 'BUILDARGS not overwritten' );

done_testing;