4 use Scalar::Util 'blessed', 'reftype';
12 This checks that the initializer is used to set the initial value.
20 Foo->meta->add_attribute('bar' =>
24 my ($self, $value, $callback, $attr) = @_;
26 ::isa_ok($attr, 'Class::MOP::Attribute');
27 ::is($attr->name, 'bar', '... the attribute is our own');
29 $callback->($value * 2);
34 can_ok('Foo', 'get_bar');
35 can_ok('Foo', 'set_bar');
37 my $foo = Foo->meta->new_object(bar => 10);
38 is($foo->get_bar, 20, "... initial argument was doubled as expected");
42 is($foo->get_bar, 30, "... and setter works correctly");
46 my $bar = Foo->meta->get_attribute('bar');
47 isa_ok($bar, 'Class::MOP::Attribute');
49 ok($bar->has_initializer, '... bar has an initializer');
50 is(reftype $bar->initializer, 'CODE', '... the initializer is a CODE ref');