summaryrefslogtreecommitdiff
path: root/t/cmop/instance_inline.t
diff options
context:
space:
mode:
Diffstat (limited to 't/cmop/instance_inline.t')
-rw-r--r--t/cmop/instance_inline.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/t/cmop/instance_inline.t b/t/cmop/instance_inline.t
new file mode 100644
index 0000000..07f2162
--- /dev/null
+++ b/t/cmop/instance_inline.t
@@ -0,0 +1,46 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Class::MOP::Instance;
+
+my $C = 'Class::MOP::Instance';
+
+{
+ my $instance = '$self';
+ my $slot_name = 'foo';
+ my $value = '$value';
+ my $class = '$class';
+
+ 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),
+ 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),
+ q[exists $self->{"foo"}],
+ '... got the right code for get_slot_value');
+
+ is($C->inline_weaken_slot_value($instance, $slot_name),
+ q[Scalar::Util::weaken( $self->{"foo"} )],
+ '... got the right code for weaken_slot_value');
+
+ 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');
+}
+
+done_testing;