Include method name in immutable methods (fixes #49680)
[gitmo/Class-MOP.git] / t / 061_instance_inline.t
index 3e8c89f..0141945 100644 (file)
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
-use Test::More tests => 16;
+use Test::More tests => 8;
 use Test::Exception;
 
-BEGIN {
-    use_ok('Class::MOP::Instance');    
-}
+use Class::MOP::Instance;
 
 my $C = 'Class::MOP::Instance';
 
 {
     my $instance  = '$self';
-    my $slot_name = '"foo"';
+    my $slot_name = 'foo';
     my $value     = '$value';
+    my $class     = '$class';
 
-    is($C->inline_get_slot_value($instance, $slot_name), 
-      '$self->{"foo"}',
+    is($C->inline_create_instance($class),
+      'bless {} => $class',
+      '... got the right code for create_instance');
+    is($C->inline_get_slot_value($instance, $slot_name),
+      q[$self->{"foo"}],
       '... got the right code for get_slot_value');
-  
-    is($C->inline_set_slot_value($instance, $slot_name, $value), 
-      '$self->{"foo"} = $value',
-      '... got the right code for set_slot_value');  
 
-    is($C->inline_initialize_slot($instance, $slot_name), 
-      '$self->{"foo"} = undef',
+    is($C->inline_set_slot_value($instance, $slot_name, $value),
+      q[$self->{"foo"} = $value],
+      '... got the right code for set_slot_value');
+
+    is($C->inline_initialize_slot($instance, $slot_name),
+      '',
       '... got the right code for initialize_slot');
-  
-    is($C->inline_is_slot_initialized($instance, $slot_name), 
-      'exists $self->{"foo"} ? 1 : 0',
-      '... got the right code for get_slot_value');  
-  
-    is($C->inline_weaken_slot_value($instance, $slot_name), 
-      'Scalar::Util::weaken( $self->{"foo"} )',
-      '... got the right code for weaken_slot_value');  
-  
-    is($C->inline_strengthen_slot_value($instance, $slot_name), 
-      '$self->{"foo"} = $self->{"foo"}',
-      '... got the right code for strengthen_slot_value');  
-} 
-  
-{
-    my $instance  = '$_[0]';
-    my $slot_name = '$attr_name';
-    my $value     = '[]';
 
-    is($C->inline_get_slot_value($instance, $slot_name), 
-      '$_[0]->{$attr_name}',
+    is($C->inline_is_slot_initialized($instance, $slot_name),
+      q[exists $self->{"foo"}],
       '... got the right code for get_slot_value');
-  
-    is($C->inline_set_slot_value($instance, $slot_name, $value), 
-      '$_[0]->{$attr_name} = []',
-      '... got the right code for set_slot_value');  
-  
-    is($C->inline_initialize_slot($instance, $slot_name), 
-      '$_[0]->{$attr_name} = undef',
-      '... got the right code for initialize_slot');  
-  
-    is($C->inline_is_slot_initialized($instance, $slot_name), 
-      'exists $_[0]->{$attr_name} ? 1 : 0',
-      '... got the right code for get_slot_value');  
-  
-    is($C->inline_weaken_slot_value($instance, $slot_name), 
-      'Scalar::Util::weaken( $_[0]->{$attr_name} )',
-      '... got the right code for weaken_slot_value');  
-  
-    is($C->inline_strengthen_slot_value($instance, $slot_name), 
-      '$_[0]->{$attr_name} = $_[0]->{$attr_name}',
-      '... got the right code for strengthen_slot_value');  
-}  
-  
-my $accessor_string = "sub {\n"
-. $C->inline_set_slot_value('$_[0]', '$attr_name', '$_[1]')
-. " if scalar \@_ == 2;\n"
-. $C->inline_get_slot_value('$_[0]', '$attr_name')
-. ";\n}";
 
-is($accessor_string, 
-   q|sub {
-$_[0]->{$attr_name} = $_[1] if scalar @_ == 2;
-$_[0]->{$attr_name};
-}|, 
-    '... got the right code string for accessor');
+    is($C->inline_weaken_slot_value($instance, $slot_name),
+      q[Scalar::Util::weaken( $self->{"foo"} )],
+      '... got the right code for weaken_slot_value');
 
-my $reader_string = "sub {\n"
-. $C->inline_get_slot_value('$_[0]', '$attr_name')
-. ";\n}";
+    is($C->inline_strengthen_slot_value($instance, $slot_name),
+      q[$self->{"foo"} = $self->{"foo"}],
+      '... got the right code for strengthen_slot_value');
+    is($C->inline_rebless_instance_structure($instance, $class),
+      q[bless $self => $class],
+      '... got the right code for rebless_instance_structure');
+}
 
-is($reader_string, 
-   q|sub {
-$_[0]->{$attr_name};
-}|, 
-    '... got the right code string for reader');
-    
-my $writer_string = "sub {\n"
-. $C->inline_set_slot_value('$_[0]', '$attr_name', '$_[1]')
-. ";\n}";
 
-is($writer_string, 
-   q|sub {
-$_[0]->{$attr_name} = $_[1];
-}|, 
-    '... got the right code string for writer');    
-  
-  
\ No newline at end of file