use strict;
use warnings;
-use Test::More tests => 38;
+use Test::More tests => 49;
use Test::Exception;
BEGIN {
}
{
+ my $attr = Class::MOP::Attribute->new('$test');
+ is($attr->meta, Class::MOP::Attribute->meta, '... instance and class both lead to the same meta');
+}
+
+{
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_predicate predicate
+ has_clearer clearer
has_init_arg init_arg
- has_default default
+ 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
- generate_accessor_method
- generate_reader_method
- generate_writer_method
- generate_predicate_method
+ accessor_metaclass
+
+ associated_methods
+ associate_method
process_accessors
install_accessors
);
is_deeply(
- [ sort @methods ],
[ sort $meta->get_method_list ],
+ [ sort @methods ],
'... 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
- init_arg default associated_class
+ my @attributes = (
+ '$!name',
+ '$!accessor',
+ '$!reader',
+ '$!writer',
+ '$!predicate',
+ '$!clearer',
+ '$!init_arg',
+ '$!default',
+ '$!associated_class',
+ '@!associated_methods',
);
is_deeply(
- [ sort @attributes ],
[ sort $meta->get_attribute_list ],
+ [ sort @attributes ],
'... our attribute list matches');
foreach my $attribute_name (@attributes) {
# but that is getting a little excessive so I
# wont worry about it for now. Maybe if I get
# bored I will do it.
-}
\ No newline at end of file
+}