6 use Test::More tests => 11;
8 use Moose::Meta::Class;
11 use_ok('MooseX::AttributeHelpers');
32 my $options = {%defaults};
33 while (my ($k,$v) = each(%overrides)) {
36 my $classname = "MooseX::AttributeHelpers::Test::$test_index";
38 my $meta = Moose::Meta::Class->create($classname,
39 superclasses => ['Moose::Object'],
41 $meta->add_attribute(foo => $options);
44 sub trait { traits => ['MooseX::AttributeHelpers::Composite::Trait'] }
45 sub metaclass { metaclass => 'Composite' }
48 my $class = make_test_class(@_);
49 my $foo = $class->new;
53 is($foo->foo, 6, "math is correct");
58 simple_test(metaclass());
59 } '... works with metaclass';
63 } '... works with trait';
66 simple_test(metaclass(), isa => 'Num');
67 } 'dies without proper subtype';
69 my $class = make_test_class(trait());
73 is_deeply($class->meta->get_attribute('foo')->{provides}, {
81 }, 'provides is correct');
83 ok($class->can('inc_foo'), 'can increment');
84 ok($class->can('reset_foo'), 'can reset');
85 ok($class->can('mul_foo'), 'can multiply');
86 ok(!$class->can('div_foo'), 'cannot do anything else');