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 => 5;


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

throws_ok(
	sub
	{
		Git::Repository::Plugin::Blame::Cache->new(
			repository => undef,
		),
	},
	qr/\QThe "repository" argument is mandatory\E/,
	'The argument "repository" is mandatory.',
);

my $cache;
lives_ok(
	sub
	{
		$cache = Git::Repository::Plugin::Blame::Cache->new(
			repository => '/tmp/test/',
		),
	},
	'Instantiate a new object.',
);

my $cache2;
lives_ok(
	sub
	{
		$cache2 = Git::Repository::Plugin::Blame::Cache->new(
			repository => '/tmp/test2/',
		),
	},
	'Instantiate a new object for a different repository.',
);

isnt(
	Scalar::Util::refaddr( $cache ),
	Scalar::Util::refaddr( $cache2 ),
	'The cache is not shared across repositories.',
);