#!/usr/bin/perl # Testing of scalar-context calls to the compatibility functions use strict; BEGIN { $| = 1; $^W = 1; } use File::Spec::Functions ':ALL'; use t::lib::Test; use Test::More; BEGIN { if ( t::lib::Test->have_yamlpm ) { plan( tests => 18 ); } else { plan( skip_all => 'Requires YAML.pm' ); exit(0); } } use YAML (); use YAML::Tiny (); ##################################################################### # Sample documents my $one = <<'END_YAML'; --- - foo END_YAML my $two = <<'END_YAML'; --- - foo --- - bar END_YAML ##################################################################### # Match Listwise Behaviour SCOPE: { my $one_list_pm = [ YAML::Load( $one ) ]; my $two_list_pm = [ YAML::Load( $two ) ]; my $one_list_tiny = [ YAML::Tiny::Load( $one ) ]; my $two_list_tiny = [ YAML::Tiny::Load( $two ) ]; is_deeply( $one_list_pm, [ [ 'foo' ] ], 'one: Parsed correctly' ); is_deeply( $one_list_pm, $one_list_tiny, 'one: List context matches' ); is_deeply( $two_list_pm, [ [ 'foo' ], [ 'bar' ] ], 'two: Parsed correctly' ); is_deeply( $two_list_pm, $two_list_tiny, 'two: List context matches' ); } ##################################################################### # Match Scalar Behaviour SCOPE: { my $one_scalar_pm = YAML::Load( $one ); my $two_scalar_pm = YAML::Load( $two ); my $one_scalar_tiny = YAML::Tiny::Load( $one ); my $two_scalar_tiny = YAML::Tiny::Load( $two ); is_deeply( $one_scalar_pm, [ 'foo' ], 'one: Parsed correctly' ); is_deeply( $one_scalar_pm, $one_scalar_tiny, 'one: Scalar context matches' ); is_deeply( $two_scalar_pm, [ 'bar' ], 'two: Parsed correctly' ); is_deeply( $two_scalar_pm, $two_scalar_tiny, 'two: Scalar context matches' ); } ##################################################################### # Repeat for LoadFile my $one_file = catfile(qw{ t data one.yml }); my $two_file = catfile(qw{ t data two.yml }); ok( -f $one_file, "Found $one_file" ); ok( -f $two_file, "Found $two_file" ); SCOPE: { my $one_list_pm = [ YAML::LoadFile( $one_file ) ]; my $two_list_pm = [ YAML::LoadFile( $two_file ) ]; my $one_list_tiny = [ YAML::Tiny::LoadFile( $one_file ) ]; my $two_list_tiny = [ YAML::Tiny::LoadFile( $two_file ) ]; is_deeply( $one_list_pm, [ [ 'foo' ] ], 'one: Parsed correctly' ); is_deeply( $one_list_pm, $one_list_tiny, 'one: List context matches' ); is_deeply( $two_list_pm, [ [ 'foo' ], [ 'bar' ] ], 'two: Parsed correctly' ); is_deeply( $two_list_pm, $two_list_tiny, 'two: List context matches' ); } SCOPE: { my $one_scalar_pm = YAML::LoadFile( $one_file ); my $two_scalar_pm = YAML::LoadFile( $two_file ); my $one_scalar_tiny = YAML::Tiny::LoadFile( $one_file ); my $two_scalar_tiny = YAML::Tiny::LoadFile( $two_file ); is_deeply( $one_scalar_pm, [ 'foo' ], 'one: Parsed correctly' ); is_deeply( $one_scalar_pm, $one_scalar_tiny, 'one: Scalar context matches' ); is_deeply( $two_scalar_pm, [ 'bar' ], 'two: Parsed correctly' ); is_deeply( $two_scalar_pm, $two_scalar_tiny, 'two: Scalar context matches' ); }