use strict;
use warnings;
-use Test::More tests => 39;
+use Test::More tests => 63;
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
+ new
+ clone
+
+ initialize_instance_slot
+ _set_initial_slot_value
+
name
- has_accessor accessor
- has_writer writer
- has_reader reader
- has_predicate predicate
- has_init_arg init_arg
- has_default default
-
+ has_accessor accessor
+ has_writer writer
+ has_write_method get_write_method get_write_method_ref
+ has_reader reader
+ has_read_method 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
+ has_initializer initializer
+
+ slots
+ get_value
+ set_value
+ set_initial_value
+ has_value
+ clear_value
+
associated_class
- attach_to_class detach_from_class
-
- generate_accessor_method
- generate_reader_method
- generate_writer_method
- generate_predicate_method
-
+ attach_to_class
+ detach_from_class
+
+ accessor_metaclass
+
+ associated_methods
+ associate_method
+
process_accessors
install_accessors
remove_accessors
+
+ _new
);
-
+
is_deeply(
- [ sort @methods ],
[ sort $meta->get_method_list ],
- '... our method list matches');
-
+ [ 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',
+ 'builder',
+ 'init_arg',
+ 'initializer',
+ '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) {
- 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.
-}
\ No newline at end of file
+}