6 use Test::More no_plan => 1;
10 use_ok('Class::MOP::Attribute');
14 my $attr = Class::MOP::Attribute->new('$foo');
15 isa_ok($attr, 'Class::MOP::Attribute');
17 is($attr->name, '$foo', '... $attr->name == $foo');
19 ok(!$attr->has_accessor, '... $attr does not have an accessor');
20 ok(!$attr->has_reader, '... $attr does not have an reader');
21 ok(!$attr->has_writer, '... $attr does not have an writer');
22 ok(!$attr->has_init_arg, '... $attr does not have an init_arg');
23 ok(!$attr->has_default, '... $attr does not have an default');
27 my $attr = Class::MOP::Attribute->new('$foo', (
31 isa_ok($attr, 'Class::MOP::Attribute');
33 is($attr->name, '$foo', '... $attr->name == $foo');
35 ok($attr->has_init_arg, '... $attr does have an init_arg');
36 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
37 ok($attr->has_default, '... $attr does have an default');
38 is($attr->default, 'BAR', '... $attr->default == BAR');
40 ok(!$attr->has_accessor, '... $attr does not have an accessor');
41 ok(!$attr->has_reader, '... $attr does not have an reader');
42 ok(!$attr->has_writer, '... $attr does not have an writer');
46 my $attr = Class::MOP::Attribute->new('$foo', (
51 isa_ok($attr, 'Class::MOP::Attribute');
53 is($attr->name, '$foo', '... $attr->name == $foo');
55 ok($attr->has_init_arg, '... $attr does have an init_arg');
56 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
57 ok($attr->has_default, '... $attr does have an default');
58 is($attr->default, 'BAR', '... $attr->default == BAR');
60 ok($attr->has_accessor, '... $attr does have an accessor');
61 is($attr->accessor, 'foo', '... $attr->accessor == foo');
63 ok(!$attr->has_reader, '... $attr does not have an reader');
64 ok(!$attr->has_writer, '... $attr does not have an writer');
68 my $attr = Class::MOP::Attribute->new('$foo', (
74 isa_ok($attr, 'Class::MOP::Attribute');
76 is($attr->name, '$foo', '... $attr->name == $foo');
78 ok($attr->has_init_arg, '... $attr does have an init_arg');
79 is($attr->init_arg, '-foo', '... $attr->init_arg == -foo');
80 ok($attr->has_default, '... $attr does have an default');
81 is($attr->default, 'BAR', '... $attr->default == BAR');
83 ok($attr->has_reader, '... $attr does have an reader');
84 is($attr->reader, 'get_foo', '... $attr->reader == get_foo');
85 ok($attr->has_writer, '... $attr does have an writer');
86 is($attr->writer, 'set_foo', '... $attr->writer == set_foo');
88 ok(!$attr->has_accessor, '... $attr does not have an accessor');
92 Class::MOP::Attribute->new('$foo', (
96 } '... cannot create accessors with reader/writers';
99 Class::MOP::Attribute->new('$foo', (
103 } '... cannot create accessors with reader/writers';
106 Class::MOP::Attribute->new('$foo', (
111 } '... cannot create accessors with reader/writers';
114 Class::MOP::Attribute->new();
115 } '... no name argument';
118 Class::MOP::Attribute->new('');
119 } '... bad name argument';
122 Class::MOP::Attribute->new(0);
123 } '... bad name argument';
126 Class::MOP::Attribute->install_accessors();
127 } '... bad install_accessors argument';
130 Class::MOP::Attribute->install_accessors(bless {} => 'Fail');
131 } '... bad install_accessors argument';
134 Class::MOP::Attribute->remove_accessors();
135 } '... bad remove_accessors argument';
138 Class::MOP::Attribute->remove_accessors(bless {} => 'Fail');
139 } '... bad remove_accessors argument';
143 my $meta = Class::MOP::Attribute->meta();
144 isa_ok($meta, 'Class::MOP::Class');
146 foreach my $method_name (qw(
149 has_accessor accessor
152 has_init_arg init_arg
157 ok($meta->has_method($method_name), '... Class::MOP::Attribute->has_method(' . $method_name . ')');