#!perl
subtest
'rename master stack'
=>
sub
{
my
$t
= Pinto::Tester->new;
my
$archive
= make_dist_archive(
'Dist-1=PkgA~1'
);
$t
->run_ok(
Add
=> {
archives
=>
$archive
,
author
=>
'JOHN'
,
recurse
=> 0 } );
$t
->registration_ok(
'JOHN/Dist-1/PkgA~1/master'
);
$t
->run_ok(
Rename
=> {
stack
=>
'master'
,
to_stack
=>
'dev'
} );
$t
->registration_ok(
'JOHN/Dist-1/PkgA~1/dev'
);
throws_ok {
$t
->pinto->repo->get_stack(
'master'
) }
qr/does not exist/
;
$t
->stack_is_default_ok(
'dev'
,
'after renaming stack'
);
$t
->path_not_exists_ok( [
qw(stacks master)
] );
$t
->path_exists_ok( [
qw(stacks dev modules 02packages.details.txt.gz)
] );
$t
->path_exists_ok( [
qw(stacks dev modules 03modlist.data.gz)
] );
$t
->path_exists_ok( [
qw(stacks dev authors 01mailrc.txt.gz)
] );
};
subtest
'compare stacks'
=>
sub
{
my
$t
= Pinto::Tester->new;
$t
->path_exists_ok( [
qw(stacks master)
] );
my
$master
=
$t
->get_stack(
'master'
);
$t
->run_ok(
Rename
=> {
stack
=>
'master'
,
to_stack
=>
'MASTER'
} );
my
$MASTER
=
$t
->get_stack(
'master'
);
$t
->path_exists_ok( [
qw(stacks MASTER)
] );
is(
$master
->id,
$MASTER
->id,
'Stacks are the same'
)
};
subtest
'rename non-existant stack'
=>
sub
{
my
$t
= Pinto::Tester->new;
$t
->run_throws_ok(
Rename
=> {
stack
=>
'bogus'
,
to_stack
=>
'whatever'
},
qr/does not exist/
,
'Cannot rename non-existant stack'
);
$t
->run_ok(
New
=> {
stack
=>
'existing'
} );
$t
->run_throws_ok(
Rename
=> {
stack
=>
'master'
,
to_stack
=>
'existing'
},
qr/already exists/
,
'Cannot rename to stack that already exists'
);
$t
->run_throws_ok(
Rename
=> {
stack
=>
'existing'
,
to_stack
=>
'existing'
},
qr/already exists/
,
'Cannot rename to stack to itself'
);
};
done_testing;