summaryrefslogtreecommitdiff
path: root/t/dump-blessed.t
diff options
context:
space:
mode:
Diffstat (limited to 't/dump-blessed.t')
-rw-r--r--t/dump-blessed.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/t/dump-blessed.t b/t/dump-blessed.t
new file mode 100644
index 0000000..a2217b3
--- /dev/null
+++ b/t/dump-blessed.t
@@ -0,0 +1,46 @@
+use strict;
+use lib -e 't' ? 't' : 'test';
+use TestYAML tests => 2;
+
+package Foo::Bar;
+
+use TestYAMLBase;
+
+our @ISA = 'TestYAMLBase';
+
+sub yaml_dump {
+ my $self = shift;
+ my $node = YAML::Node->new({
+ two => $self->{two} - 1,
+ one => $self->{one} + 1,
+ }, 'perl/Foo::Bar');
+ YAML::Node::ynode($node)->keys(['two', 'one']);
+ return $node;
+}
+
+sub yaml_load {
+ my $class = shift;
+ my $node = shift;
+ my $self = $class->new;
+ $self->{one} = ($node->{one} - 1);
+ $self->{two} = ($node->{two} + 1);
+ return $self;
+}
+
+package main;
+
+no_diff;
+run_roundtrip_nyn;
+
+__END__
+
+=== Object class handles marshalling
++++ perl
+my $fb = Foo::Bar->new();
+$fb->{one} = 5;
+$fb->{two} = 3;
+$fb;
++++ yaml
+--- !perl/Foo::Bar
+two: 2
+one: 6