liblog-gelf-util-perl/t/04_compress.t

117 lines
2.2 KiB
Perl

use strict;
use Test::More 0.91;
use Test::Exception;
use IO::Uncompress::Gunzip qw(gunzip $GunzipError);
use IO::Uncompress::Inflate qw(inflate $InflateError) ;
use JSON::MaybeXS qw(decode_json);
use Log::GELF::Util qw(encode compress uncompress);
throws_ok{
my %msg = compress();
}
qr/0 parameters were passed.*/,
'mandatory parameter missing';
throws_ok{
compress({});
}
qr/Parameter #1.*/,
'message parameters wrong type';
throws_ok{
my %msg = compress(1,'wrong');
}
qr/compression type must be gzip \(default\) or zlib/,
'type parameters wrong';
throws_ok{
my %msg = uncompress();
}
qr/0 parameters were passed.*/,
'mandatory parameter missing';
throws_ok{
my %msg = uncompress(
{},
);
}
qr/Parameter #1.*/,
'message parameters wrong type';
lives_ok{
compress( 1, 'gzip');
}
'gzips explicit ok';
lives_ok{
compress( 1, 'zlib');
}
'zlib explicit ok';
my $msgz;
lives_ok{
$msgz = compress(
encode(
{
host => 'host',
short_message => 'message',
}
)
);
}
'gzips ok';
my $msgj;
gunzip \$msgz => \$msgj
or die "gunzip failed: $GunzipError";
my $msg = decode_json($msgj);
is($msg->{version}, '1.1', 'correct default version');
is($msg->{host}, 'host', 'correct default version');
lives_ok{
$msg = decode_json(
uncompress($msgz)
);
}
'uncompresses gzip ok';
is($msg->{version}, '1.1', 'correct default version');
is($msg->{host}, 'host', 'correct default version');
my $msgz;
lives_ok{
$msgz = compress(
encode(
{
host => 'host',
short_message => 'message',
}
),
'zlib',
);
}
'deflates ok';
my $msgj;
inflate \$msgz => \$msgj
or die "inflate failed: $InflateError";
my $msg = decode_json($msgj);
is($msg->{version}, '1.1', 'correct default version');
is($msg->{host}, 'host', 'correct default version');
lives_ok{
$msg = decode_json(
uncompress($msgz)
);
}
'uncompresses zlib ok';
is($msg->{version}, '1.1', 'correct default version');
is($msg->{host}, 'host', 'correct default version');
done_testing(19);