11 use Moose::Util::TypeConstraints;
13 subtype 'UCHash', as 'HashRef[Str]', where {
14 !grep {/[a-z]/} values %{$_};
17 coerce 'UCHash', from 'HashRef[Str]', via {
18 $_ = uc $_ for values %{$_};
40 default => sub { { x => 'a' } },
44 trigger => sub { @TriggerArgs = @_ },
45 clearer => 'clear_lazy',
52 $foo->hash( { x => 'A', y => 'B' } );
54 $foo->set_key( z => 'c' );
57 $foo->hash, { x => 'A', y => 'B', z => 'C' },
58 'set coerces the hash'
63 $foo->set_lazy( y => 'b' );
66 $foo->lazy, { x => 'A', y => 'B' },
67 'set coerces the hash - lazy'
72 [ $foo, { x => 'A', y => 'B' }, { x => 'A' } ],
73 'trigger receives expected arguments'