11 more AssetLineage tests for various rank methods.

Have setParent update self's parentId for persistent code.
This commit is contained in:
Colin Kuskie 2007-04-14 00:50:35 +00:00
parent e894ed29ae
commit c9e2a8b9f3
2 changed files with 45 additions and 3 deletions

View file

@ -497,7 +497,7 @@ Returns a 6 digit number with leading zeros of the next rank a child will get.
sub getNextChildRank {
my $self = shift;
my ($lineage) = $self->session->db->quickArray("select max(lineage) from asset where parentId=".$self->session->db->quote($self->getId));
my ($lineage) = $self->session->db->quickArray("select max(lineage) from asset where parentId=?",[$self->getId]);
my $rank;
if (defined $lineage) {
$rank = $self->getRank($lineage);
@ -674,7 +674,8 @@ sub setParent {
$self->cascadeLineage($lineage);
$self->session->db->commit;
$self->updateHistory("moved to parent ".$newParent->getId);
$self->{_properties}{lineage} = $lineage;
$self->{_properties}{lineage} = $lineage;
$self->{_properties}{parentId} = $newParent->getId;
$self->purgeCache;
$self->{_parent} = $newParent;
return 1;

View file

@ -16,7 +16,7 @@ use WebGUI::Test;
use WebGUI::Session;
use WebGUI::Asset;
use Test::More tests => 22; # increment this value for each test you create
use Test::More tests => 33; # increment this value for each test you create
use Test::Deep;
# Test the methods in WebGUI::AssetLineage
@ -161,6 +161,47 @@ ok($snippet2->setParent($folder), 'setParent: successfully set');
is($snippet2->getParent->getId, $folder->getId, 'setParent successfully set parent');
is($folder->getChildCount, 8, 'setParent: folder now has 8 children');
##Return snippet2 to folder2
ok($snippet2->setParent($folder2), 'setParent: return snippet to original folder');
is($folder2->getChildCount, 1, 'setParent: folder2 now haw 1 child');
is($folder->getChildCount, 7, 'setParent: folder again has 7 children');
####################################################
#
# getRank
#
####################################################
is($root->getRank, '1', "getRank: root's rank");
is($snippets[0]->getRank, '1', "getRank: snippet[0]");
is($snippets[1]->getRank, '2', "getRank: snippet[1]");
is($root->getRank('100001'), '100001', "getRank: arbitrary lineage");
####################################################
#
# getNextChildRank
#
####################################################
is($folder->getNextChildRank, '000008', "getNextChildRank: folder with 8 snippets");
is($folder2->getNextChildRank, '000002', "getNextChildRank: empty folder");
####################################################
#
# swapRank
#
####################################################
is($snippets[0]->swapRank($snippets[1]->get('lineage')), 1, 'swapRank: self and adjacent');
@snipIds[0,1] = @snipIds[1,0];
$lineageIds = $folder->getLineage(['descendants']);
cmp_bag(
\@snipIds,
$lineageIds,
'swapRank: swapped first and second snippets'
);
END {
$versionTag->rollback;
}