#!perl
my
$t
= Pinto::Tester->new;
$t
->populate(
'AUTHOR/Dist-1 = PkgA~1; PkgB~1'
);
$t
->populate(
'AUTHOR/Dist-2 = PkgB~2; PkgC~2'
);
subtest
'detailed diff'
=>
sub
{
local
$ENV
{PINTO_DIFF_STYLE} =
$PINTO_DIFF_STYLE_DETAILED
;
my
$fmt
=
'%a/%D/%P/%y'
;
my
$right
=
$t
->get_stack->head;
my
$left
= (
$right
->parents )[0];
my
$expect_adds
= [
'AUTHOR/Dist-2/PkgB~2/-'
,
'AUTHOR/Dist-2/PkgC~2/-'
];
my
$expect_dels
= [
'AUTHOR/Dist-1/PkgA~1/-'
,
'AUTHOR/Dist-1/PkgB~1/-'
];
my
$diff
= Pinto::Difference->new(
left
=>
$left
,
right
=>
$right
);
my
@adds
=
map
{
$_
->to_string(
$fmt
) }
$diff
->additions;
my
@dels
=
map
{
$_
->to_string(
$fmt
) }
$diff
->deletions;
is_deeply \
@adds
,
$expect_adds
,
'Got expected additions'
;
is_deeply \
@dels
,
$expect_dels
,
'Got expected deletions'
;
(
$right
,
$left
) = (
$left
,
$right
);
(
$expect_adds
,
$expect_dels
) = (
$expect_dels
,
$expect_adds
);
$diff
= Pinto::Difference->new(
left
=>
$left
,
right
=>
$right
);
@adds
=
map
{
$_
->to_string(
$fmt
) }
$diff
->additions;
@dels
=
map
{
$_
->to_string(
$fmt
) }
$diff
->deletions;
is_deeply \
@adds
,
$expect_adds
,
'Got expected additions'
;
is_deeply \
@dels
,
$expect_dels
,
'Got expected deletions'
;
};
subtest
'concise diff'
=>
sub
{
local
$ENV
{PINTO_DIFF_STYLE} =
$PINTO_DIFF_STYLE_CONCISE
;
my
$fmt
=
'%a/%f'
;
my
$right
=
$t
->get_stack->head;
my
$left
= (
$right
->parents )[0];
my
$expect_adds
= [
'AUTHOR/Dist-2.tar.gz'
];
my
$expect_dels
= [
'AUTHOR/Dist-1.tar.gz'
];
my
$diff
= Pinto::Difference->new(
left
=>
$left
,
right
=>
$right
);
my
@adds
=
map
{
$_
->to_string(
$fmt
) }
$diff
->additions;
my
@dels
=
map
{
$_
->to_string(
$fmt
) }
$diff
->deletions;
is_deeply \
@adds
,
$expect_adds
,
'Got expected additions'
;
is_deeply \
@dels
,
$expect_dels
,
'Got expected deletions'
;
(
$right
,
$left
) = (
$left
,
$right
);
(
$expect_adds
,
$expect_dels
) = (
$expect_dels
,
$expect_adds
);
$diff
= Pinto::Difference->new(
left
=>
$left
,
right
=>
$right
);
@adds
=
map
{
$_
->to_string(
$fmt
) }
$diff
->additions;
@dels
=
map
{
$_
->to_string(
$fmt
) }
$diff
->deletions;
is_deeply \
@adds
,
$expect_adds
,
'Got expected additions'
;
is_deeply \
@dels
,
$expect_dels
,
'Got expected deletions'
;
};
done_testing;