10 use Moose::Util::TypeConstraints;
12 subtype 'UCHash', as 'HashRef[Str]', where {
13 !grep {/[a-z]/} values %{$_};
16 coerce 'UCHash', from 'HashRef[Str]', via {
17 $_ = uc $_ for values %{$_};
39 default => sub { { x => 'a' } },
43 trigger => sub { @TriggerArgs = @_ },
44 clearer => 'clear_lazy',
51 $foo->hash( { x => 'A', y => 'B' } );
53 $foo->set_key( z => 'c' );
56 $foo->hash, { x => 'A', y => 'B', z => 'C' },
57 'set coerces the hash'
62 $foo->set_lazy( y => 'b' );
65 $foo->lazy, { x => 'A', y => 'B' },
66 'set coerces the hash - lazy'
71 [ $foo, { x => 'A', y => 'B' }, { x => 'A' } ],
72 'trigger receives expected arguments'