diff options
Diffstat (limited to 't/dump-blessed.t')
-rw-r--r-- | t/dump-blessed.t | 46 |
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 |