6 use Test::More tests => 65;
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');
19 ok($attr->has_init_arg, '... $attr does have an init_arg');
20 is($attr->init_arg, '$foo', '... $attr init_arg is the name');
22 ok(!$attr->has_accessor, '... $attr does not have an accessor');
23 ok(!$attr->has_reader, '... $attr does not have an reader');
24 ok(!$attr->has_writer, '... $attr does not have an writer');
25 ok(!$attr->has_default, '... $attr does not have an default');
29 my $attr = Class::MOP::Attribute->new('$foo', (
33 isa_ok($attr, 'Class::MOP::Attribute');
35 is($attr->name, '$foo', '... $attr->name == $foo');
37 ok($attr->has_init_arg, '... $attr does have an init_arg');
38 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
39 ok($attr->has_default, '... $attr does have an default');
40 is($attr->default, 'BAR', '... $attr->default == BAR');
42 ok(!$attr->has_accessor, '... $attr does not have an accessor');
43 ok(!$attr->has_reader, '... $attr does not have an reader');
44 ok(!$attr->has_writer, '... $attr does not have an writer');
48 my $attr = Class::MOP::Attribute->new('$foo', (
53 isa_ok($attr, 'Class::MOP::Attribute');
55 is($attr->name, '$foo', '... $attr->name == $foo');
57 ok($attr->has_init_arg, '... $attr does have an init_arg');
58 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
59 ok($attr->has_default, '... $attr does have an default');
60 is($attr->default, 'BAR', '... $attr->default == BAR');
62 ok($attr->has_accessor, '... $attr does have an accessor');
63 is($attr->accessor, 'foo', '... $attr->accessor == foo');
65 ok(!$attr->has_reader, '... $attr does not have an reader');
66 ok(!$attr->has_writer, '... $attr does not have an writer');
70 my $attr = Class::MOP::Attribute->new('$foo', (
76 isa_ok($attr, 'Class::MOP::Attribute');
78 is($attr->name, '$foo', '... $attr->name == $foo');
80 ok($attr->has_init_arg, '... $attr does have an init_arg');
81 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
82 ok($attr->has_default, '... $attr does have an default');
83 is($attr->default, 'BAR', '... $attr->default == BAR');
85 ok($attr->has_reader, '... $attr does have an reader');
86 is($attr->reader, 'get_foo', '... $attr->reader == get_foo');
87 ok($attr->has_writer, '... $attr does have an writer');
88 is($attr->writer, 'set_foo', '... $attr->writer == set_foo');
90 ok(!$attr->has_accessor, '... $attr does not have an accessor');
94 Class::MOP::Attribute->new('$foo', (
98 } '... cannot create accessors with reader/writers';
101 Class::MOP::Attribute->new('$foo', (
105 } '... cannot create accessors with reader/writers';
108 Class::MOP::Attribute->new('$foo', (
113 } '... cannot create accessors with reader/writers';
116 Class::MOP::Attribute->new();
117 } '... no name argument';
120 Class::MOP::Attribute->new('');
121 } '... bad name argument';
124 Class::MOP::Attribute->new(0);
125 } '... bad name argument';
128 Class::MOP::Attribute->install_accessors();
129 } '... bad install_accessors argument';
132 Class::MOP::Attribute->install_accessors(bless {} => 'Fail');
133 } '... bad install_accessors argument';
136 Class::MOP::Attribute->remove_accessors();
137 } '... bad remove_accessors argument';
140 Class::MOP::Attribute->remove_accessors(bless {} => 'Fail');
141 } '... bad remove_accessors argument';
145 my $meta = Class::MOP::Attribute->meta();
146 isa_ok($meta, 'Class::MOP::Class');
148 foreach my $method_name (qw(
151 has_accessor accessor
154 has_init_arg init_arg
159 ok($meta->has_method($method_name), '... Class::MOP::Attribute->has_method(' . $method_name . ')');