use strict;
use warnings;
-use Test::More tests => 49;
+use Test::More tests => 56;
use Test::Exception;
BEGIN {
- use_ok('Class::MOP');
+ use_ok('Class::MOP');
}
{
{
my $meta = Class::MOP::Attribute->meta();
isa_ok($meta, 'Class::MOP::Class');
-
+
my @methods = qw(
meta
new clone
-
+
initialize_instance_slot
-
+
name
has_accessor accessor
- has_writer writer
- has_reader reader
+ has_writer writer get_write_method get_write_method_ref
+ has_reader reader get_read_method get_read_method_ref
has_predicate predicate
has_clearer clearer
+ has_builder builder
has_init_arg init_arg
has_default default is_default_a_coderef
-
+
slots
get_value
set_value
has_value
clear_value
-
+
associated_class
- attach_to_class detach_from_class
-
+ attach_to_class detach_from_class
+
accessor_metaclass
-
+
associated_methods
associate_method
-
+
process_accessors
install_accessors
remove_accessors
);
-
+
is_deeply(
[ sort $meta->get_method_list ],
[ sort @methods ],
- '... our method list matches');
-
+ '... our method list matches');
+
foreach my $method_name (@methods) {
ok($meta->has_method($method_name), '... Class::MOP::Attribute->has_method(' . $method_name . ')');
}
-
- my @attributes = qw(
- name accessor reader writer predicate clearer
- init_arg default associated_class associated_methods
- );
+
+ my @attributes = (
+ '$!name',
+ '$!accessor',
+ '$!reader',
+ '$!writer',
+ '$!predicate',
+ '$!clearer',
+ '$!builder',
+ '$!init_arg',
+ '$!default',
+ '$!associated_class',
+ '@!associated_methods',
+ );
is_deeply(
[ sort $meta->get_attribute_list ],
[ sort @attributes ],
'... our attribute list matches');
-
+
foreach my $attribute_name (@attributes) {
- ok($meta->has_attribute($attribute_name), '... Class::MOP::Attribute->has_attribute(' . $attribute_name . ')');
+ ok($meta->has_attribute($attribute_name), '... Class::MOP::Attribute->has_attribute(' . $attribute_name . ')');
}
-
- # We could add some tests here to make sure that
- # the attribute have the appropriate
- # accessor/reader/writer/predicate combinations,
- # but that is getting a little excessive so I
- # wont worry about it for now. Maybe if I get
+
+ # We could add some tests here to make sure that
+ # the attribute have the appropriate
+ # accessor/reader/writer/predicate combinations,
+ # but that is getting a little excessive so I
+ # wont worry about it for now. Maybe if I get
# bored I will do it.
}