#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Exception; use Role::Tiny; my $pkg; BEGIN { $pkg = 'Catmandu::Exporter'; use_ok $pkg; } require_ok $pkg; { package T::ExporterWithoutAdd; use Moo; package T::Exporter; use Moo; with $pkg; sub add {} } throws_ok { Role::Tiny->apply_role_to_package('T::ExporterWithoutAdd', $pkg) } qr/missing add/; my $e = T::Exporter->new; ok $e->does('Catmandu::Addable'); ok $e->does('Catmandu::Counter'); can_ok $e, 'encoding'; can_ok $e, 'commit'; is $e->encoding, ':utf8'; $e->add(1); is $e->count, 1; $e->add_many([2,3,4]); is $e->count, 4; done_testing 10;