Include method name in immutable methods (fixes #49680)
[gitmo/Class-MOP.git] / t / 061_instance_inline.t
1 use strict;
2 use warnings;
3
4 use Test::More tests => 8;
5 use Test::Exception;
6
7 use Class::MOP::Instance;
8
9 my $C = 'Class::MOP::Instance';
10
11 {
12     my $instance  = '$self';
13     my $slot_name = 'foo';
14     my $value     = '$value';
15     my $class     = '$class';
16
17     is($C->inline_create_instance($class),
18       'bless {} => $class',
19       '... got the right code for create_instance');
20     is($C->inline_get_slot_value($instance, $slot_name),
21       q[$self->{"foo"}],
22       '... got the right code for get_slot_value');
23
24     is($C->inline_set_slot_value($instance, $slot_name, $value),
25       q[$self->{"foo"} = $value],
26       '... got the right code for set_slot_value');
27
28     is($C->inline_initialize_slot($instance, $slot_name),
29       '',
30       '... got the right code for initialize_slot');
31
32     is($C->inline_is_slot_initialized($instance, $slot_name),
33       q[exists $self->{"foo"}],
34       '... got the right code for get_slot_value');
35
36     is($C->inline_weaken_slot_value($instance, $slot_name),
37       q[Scalar::Util::weaken( $self->{"foo"} )],
38       '... got the right code for weaken_slot_value');
39
40     is($C->inline_strengthen_slot_value($instance, $slot_name),
41       q[$self->{"foo"} = $self->{"foo"}],
42       '... got the right code for strengthen_slot_value');
43     is($C->inline_rebless_instance_structure($instance, $class),
44       q[bless $self => $class],
45       '... got the right code for rebless_instance_structure');
46 }
47
48