Boxer

 view release on metacpan or  search on metacpan

t/serialize.t  view on Meta::CPAN

#!/usr/bin/perl

use v5.14;
use utf8;

use Test::More;
use Test::Fatal;
use Test::File::Contents;
use Path::Tiny;
use Log::Any::Test;
use Log::Any qw($log);

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

use_ok('Boxer::Part::Reclass');
use_ok('Boxer::World::Reclass');
use_ok('Boxer::Task::Classify');
use_ok('Boxer::Task::Serialize');

my $classifier = new_ok(
	'Boxer::Task::Classify' => [
		datadir => path('examples'),
	]
);

my $world = $classifier->run;

subtest 'in preseed and script formats' => sub {
	my $outdir = Path::Tiny->tempdir;
	note("Temporary output directory is $outdir");

	my $serializer = new_ok(
		'Boxer::Task::Serialize' => [
			world   => $world,
			skeldir => path('share')->child('skel'),
			outdir  => $outdir,
			node    => 'parl-greens',
			format  => [qw{preseed script}],
		],
	);
	ok $serializer->run;
	file_contents_like $outdir->child('preseed.cfg'),
		qr/\nd-i pkgsel\/include string acpi-support /,
		'preseed.cfg includes install of acpi-support';
	file_contents_like $outdir->child('preseed.cfg'),
		qr/\nd-i pkgsel\/include string .*\n.* cups-/,
		'preseed.cfg includes avoidance of cups';
	file_contents_like $outdir->child('preseed.cfg'),
		qr/\nd-i preseed\/late_command string .*\\\n suite=\S+\\\n chroot \/target apt-mark auto \\\n  acpi-support-base/,
		'preseed.cfg includes auto-marking of acpi-support-base';
	file_contents_like $outdir->child('preseed.cfg'),
		qr{\n _setvar /target/etc/default/acpi-support },
		'preseed.cfg preserves "/target" prefix in paths';
	file_contents_like $outdir->child('script.sh'),
		qr/\napt install acpi-support /,
		'script.sh includes install of acpi-support';
	file_contents_like $outdir->child('script.sh'),
		qr/\napt install .*\n.* cups-/,
		'script.sh includes avoidance of cups';
	file_contents_like $outdir->child('script.sh'),
		qr/\nsuite=\S+\n\napt-mark auto \\\n  acpi-support-base/,
		'script.sh includes auto-marking of acpi-support-base';
	file_contents_like $outdir->child('script.sh'),
		qr{\n _setvar /etc/default/acpi-support },
		'script.sh strips "/target" prefix from paths';
	$log->contains_ok( qr/^Resolving classdir /, 'classdir logged' );



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