fixing up the method protocol more, actually this is probably closer to the accessor...
[gitmo/Class-MOP.git] / t / 014_attribute_introspection.t
index 2fb3acb..30af573 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 38;
+use Test::More tests => 49;
 use Test::Exception;
 
 BEGIN {
@@ -11,27 +11,42 @@ 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
@@ -39,8 +54,8 @@ BEGIN {
         );
         
     is_deeply(
-        [ sort @methods ],
         [ sort $meta->get_method_list ],
+        [ sort @methods ],
         '... our method list matches');        
     
     foreach my $method_name (@methods) {
@@ -48,13 +63,13 @@ BEGIN {
     }
     
     my @attributes = qw(
-        name accessor reader writer predicate
-        init_arg default associated_class
+        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) {
@@ -67,4 +82,4 @@ BEGIN {
     # 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
+}