Net-Amazon-S3

 view release on metacpan or  search on metacpan

t/test-helper-common.pl  view on Meta::CPAN


use strict;
use warnings;
use utf8;

use Test::Deep      v0.111 qw[ !cmp_deeply !bool !code ];
use Test::More      import => [qw[ !ok !is !is_deeply ]];
use Test::Warnings  qw[ :no_end_test had_no_warnings ];

use Safe::Isa qw[];
use Ref::Util qw[];

sub __expand_lazy_param {
	my ($param) = @_;

	return $param->()
		if Ref::Util::is_plain_coderef ($param);

	return $param;
}

sub ok {
	my ($title, %params) = @_;

	local $Test::Builder::Level = $Test::Builder::Level + 1;

	return if exists $params{if} && ! __expand_lazy_param ($params{if});

	Test::More::ok
		__expand_lazy_param ($params{got}),
		__expand_lazy_param ($title),
		;
}

sub it {
	my ($title, %params) = @_;

	local $Test::Builder::Level = $Test::Builder::Level + 1;

	return if exists $params{if} && ! __expand_lazy_param ($params{if});

	Test::Deep::cmp_deeply
		__expand_lazy_param ($params{got}),
		__expand_lazy_param ($params{expect}),
		__expand_lazy_param ($title),
		;
}

sub is {
	my ($title, %params) = @_;

	local $Test::Builder::Level = $Test::Builder::Level + 1;

	return if exists $params{if} && ! __expand_lazy_param ($params{if});

	Test::More::is
		__expand_lazy_param ($params{got}),
		__expand_lazy_param ($params{expect}),
		__expand_lazy_param ($title),
		;
}

sub cmp_deeply {
	goto \⁢
}

sub bool {
	my ($param) = @_;

	return $param if $param->$Safe::Isa::_isa ('Test::Deep::Cmp');

	return Test::Deep::bool ($param);
}

sub code (&) {
	goto \& Test::Deep::code;
}

sub expect_coderef {
	return code {
		return Ref::Util::is_plain_coderef ($_[0])
			? (1)
			: (0, "Expect CODEREF")
	};
}

1;



( run in 0.911 second using v1.01-cache-2.11-cpan-39bf76dae61 )