The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -T

use strict;
use warnings;

use Git::Repository::Plugin::Blame::Cache;
use Test::Exception;
use Test::FailWarnings -allow_deps => 1;
use Test::More tests => 6;


can_ok(
	'Git::Repository::Plugin::Blame::Cache',
	'set_blame_lines',
);

ok(
	defined(
		my $cache = Git::Repository::Plugin::Blame::Cache->new(
			repository => '/tmp/test',
		)
	),
	'Instantiated Git::Repository::Plugin::Blame::Cache object.',
);

throws_ok(
	sub
	{
		$cache->set_blame_lines(
			blame_lines => [],
		);
	},
	qr/\QThe "file" argument is mandatory\E/,
	'The argument "file" is required.',
);

throws_ok(
	sub
	{
		$cache->set_blame_lines(
			file => 'test',
		);
	},
	qr/\QThe "blame_lines" argument is mandatory\E/,
	'The argument "blame_lines" is required.',
);

throws_ok(
	sub
	{
		$cache->set_blame_lines(
			file        => 'test',
			blame_lines => '',
		);
	},
	qr/\QThe "blame_lines" argument must be an arrayref\E/,
	'The argument "blame_lines" must be an arrayref.',
);

lives_ok(
	sub
	{
		$cache->set_blame_lines(
			file        => 'test',
			blame_lines => [],
		);
	},
	'Store blame lines.',
);