6 use Test::More tests => 64;
11 use_ok('Class::MOP::Attribute');
15 my $attr = Class::MOP::Attribute->new('$foo');
16 isa_ok($attr, 'Class::MOP::Attribute');
18 is($attr->name, '$foo', '... $attr->name == $foo');
20 ok(!$attr->has_accessor, '... $attr does not have an accessor');
21 ok(!$attr->has_reader, '... $attr does not have an reader');
22 ok(!$attr->has_writer, '... $attr does not have an writer');
23 ok(!$attr->has_init_arg, '... $attr does not have an init_arg');
24 ok(!$attr->has_default, '... $attr does not have an default');
28 my $attr = Class::MOP::Attribute->new('$foo', (
32 isa_ok($attr, 'Class::MOP::Attribute');
34 is($attr->name, '$foo', '... $attr->name == $foo');
36 ok($attr->has_init_arg, '... $attr does have an init_arg');
37 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
38 ok($attr->has_default, '... $attr does have an default');
39 is($attr->default, 'BAR', '... $attr->default == BAR');
41 ok(!$attr->has_accessor, '... $attr does not have an accessor');
42 ok(!$attr->has_reader, '... $attr does not have an reader');
43 ok(!$attr->has_writer, '... $attr does not have an writer');
47 my $attr = Class::MOP::Attribute->new('$foo', (
52 isa_ok($attr, 'Class::MOP::Attribute');
54 is($attr->name, '$foo', '... $attr->name == $foo');
56 ok($attr->has_init_arg, '... $attr does have an init_arg');
57 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
58 ok($attr->has_default, '... $attr does have an default');
59 is($attr->default, 'BAR', '... $attr->default == BAR');
61 ok($attr->has_accessor, '... $attr does have an accessor');
62 is($attr->accessor, 'foo', '... $attr->accessor == foo');
64 ok(!$attr->has_reader, '... $attr does not have an reader');
65 ok(!$attr->has_writer, '... $attr does not have an writer');
69 my $attr = Class::MOP::Attribute->new('$foo', (
75 isa_ok($attr, 'Class::MOP::Attribute');
77 is($attr->name, '$foo', '... $attr->name == $foo');
79 ok($attr->has_init_arg, '... $attr does have an init_arg');
80 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
81 ok($attr->has_default, '... $attr does have an default');
82 is($attr->default, 'BAR', '... $attr->default == BAR');
84 ok($attr->has_reader, '... $attr does have an reader');
85 is($attr->reader, 'get_foo', '... $attr->reader == get_foo');
86 ok($attr->has_writer, '... $attr does have an writer');
87 is($attr->writer, 'set_foo', '... $attr->writer == set_foo');
89 ok(!$attr->has_accessor, '... $attr does not have an accessor');
93 Class::MOP::Attribute->new('$foo', (
97 } '... cannot create accessors with reader/writers';
100 Class::MOP::Attribute->new('$foo', (
104 } '... cannot create accessors with reader/writers';
107 Class::MOP::Attribute->new('$foo', (
112 } '... cannot create accessors with reader/writers';
115 Class::MOP::Attribute->new();
116 } '... no name argument';
119 Class::MOP::Attribute->new('');
120 } '... bad name argument';
123 Class::MOP::Attribute->new(0);
124 } '... bad name argument';
127 Class::MOP::Attribute->install_accessors();
128 } '... bad install_accessors argument';
131 Class::MOP::Attribute->install_accessors(bless {} => 'Fail');
132 } '... bad install_accessors argument';
135 Class::MOP::Attribute->remove_accessors();
136 } '... bad remove_accessors argument';
139 Class::MOP::Attribute->remove_accessors(bless {} => 'Fail');
140 } '... bad remove_accessors argument';
144 my $meta = Class::MOP::Attribute->meta();
145 isa_ok($meta, 'Class::MOP::Class');
147 foreach my $method_name (qw(
150 has_accessor accessor
153 has_init_arg init_arg
158 ok($meta->has_method($method_name), '... Class::MOP::Attribute->has_method(' . $method_name . ')');