Boxer

 view release on metacpan or  search on metacpan

t/05_world-reclass.t  view on Meta::CPAN

#!/usr/bin/perl

use v5.14;
use utf8;

use Test::More;
use Test::Fatal;
use Test::Deep qw(:v1);
use Path::Tiny;
use Log::Any::Test;
use Log::Any qw($log);

use strictures 2;
no warnings "experimental::signatures";

use_ok('Boxer::World::Reclass');

my $world = new_ok(
	'Boxer::World::Reclass' => [
		suite => 'buster',
		data  => path('examples'),
	]
);
cmp_deeply $world, all(
	obj_isa('Boxer::World::Reclass'),
	methods(
		parts => all(
			arraylength(3),
			array_each( obj_isa('Boxer::Part::Reclass') ),
		),
		[ 'get_part', 'lxp5' ] => obj_isa('Boxer::Part::Reclass'),
		[ 'get_part', 'foo' ]  => undef,
	),
	listmethods(
		list_parts => bag(qw( lxp5 parl-greens zsh )),
	),
	noclass(
		{   data             => obj_isa('Path::Tiny'),
			classdir         => obj_isa('Path::Tiny'),
			nodedir          => obj_isa('Path::Tiny'),
			parts            => ignore(),
			suite            => 'buster',
			_logger          => ignore(),
			_logger_category => ignore(),
		}
	)
	),
	'world contains expected methods and data';
$log->category_contains_ok(
	'Boxer::World::Reclass',
	qr/^Part "foo" does not exist\.$/, 'failure logged'
);
$log->empty_ok("no more logs");

subtest 'from explicit classdir' => sub {
	my $world = new_ok(
		'Boxer::World::Reclass' => [
			suite    => 'buster',
			data     => path('examples'),
			classdir => path('examples/classes'),
		]
	);
	cmp_deeply $world, obj_isa('Boxer::World::Reclass'),
		'world contains expected methods and data';
	$log->empty_ok("no more logs");
};



( run in 1.028 second using v1.01-cache-2.11-cpan-54e63673c56 )