Data-Header-Fields

 view release on metacpan or  search on metacpan

t/01_Data-Header-Fields.t  view on Meta::CPAN

#!/usr/bin/perl

use strict;
use warnings;

use Test::More 'no_plan';
#use Test::More tests => 10;
use Test::Deep;
use Test::Differences;
use Test::Exception;

use FindBin qw($Bin);
use lib "$Bin/lib";

BEGIN {
	use_ok ( 'Data::Header::Fields' ) or exit;
}

exit main();

sub main {
	my $header1 = "t:123\nt2:321\n 123\nt3:999\n";
	my $lines = Data::Header::Fields->decode($header1);

	my @lines_expect = (
		(bless { key => 't', value => Data::Header::Fields::Value->new('value' => "123\n",), parent => 'Data::Header::Fields', original_line => "t:123\n"}, 'Data::Header::Fields::Line'),
		(bless { key => 't2', value => Data::Header::Fields::Value->new('value' => "321\n 123\n"), parent => 'Data::Header::Fields', original_line => "t2:321\n 123\n"}, 'Data::Header::Fields::Line'),
		(bless { key => 't3', value => Data::Header::Fields::Value->new('value' => "999\n"), parent => 'Data::Header::Fields', original_line => "t3:999\n"}, 'Data::Header::Fields::Line'),
	);
	@lines_expect = map { $_->value->parent($_) } @lines_expect;

	cmp_deeply(
		$lines,
		\@lines_expect,
		'decode()',
	);
	eq_or_diff(Data::Header::Fields->encode($lines), $header1, 'encode()');

	cmp_deeply(
		{
			map {
				my ($key, $value) = ($_->key, $_->value);
				chomp $value;
				($key => $value.'');
			} @{$lines}
		},
		{
			't'  => "123",
			't2' => "321 123",
			't3' => "999",
		},
		'decode()',
	);

	cmp_ok(
		Data::Header::Fields->new->decode($header1),
		'eq',
		$header1,
		'overloaded stringify',
	);

	cmp_deeply(
		[ Data::Header::Fields->keys($lines) ],
		[ 't', 't2', 't3'],
		'keys()',
	);
	
	my $header2 = "t1:a123\nt2:b321\n 123\nt3:c999\n";
	my $dhf = Data::Header::Fields->new()->decode(\$header2);



( run in 1.546 second using v1.01-cache-2.11-cpan-df04353d9ac )