make role application interface consistent
[gitmo/Role-Tiny.git] / t / accessor-default.t
CommitLineData
46389f86 1use strictures 1;
2use Test::More;
3
4{
5 package Foo;
6
7 use Sub::Quote;
b1eebd55 8 use Moo;
46389f86 9
10 has one => (is => 'ro', lazy => 1, default => quote_sub q{ {} });
11 has two => (is => 'ro', lazy => 1, builder => '_build_two');
12 sub _build_two { {} }
13 has three => (is => 'ro', default => quote_sub q{ {} });
649ac264 14 has four => (is => 'ro', builder => '_build_four');
46389f86 15 sub _build_four { {} }
16}
17
18sub check {
19 my ($attr, @h) = @_;
20
21 is_deeply($h[$_], {}, "${attr}: empty hashref \$h[$_]") for 0..1;
22
23 isnt($h[0],$h[1], "${attr}: not the same hashref");
24}
25
26check one => map Foo->new->one, 1..2;
27
28check two => map Foo->new->two, 1..2;
29
649ac264 30check three => map Foo->new->{three}, 1..2;
31
32check four => map Foo->new->{four}, 1..2;
33
46389f86 34done_testing;