From 15c245b06a6373e76838cdce49876dfc344c8dd3 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Fri, 13 Apr 2007 17:27:51 +0000 Subject: [PATCH] AssetLineage tests, and place holders for AssetLineage --- lib/WebGUI/AssetLineage.pm | 4 +-- t/Asset/AssetLineage.t | 69 +++++++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 3 deletions(-) diff --git a/lib/WebGUI/AssetLineage.pm b/lib/WebGUI/AssetLineage.pm index f842d2adf..f47a1b363 100644 --- a/lib/WebGUI/AssetLineage.pm +++ b/lib/WebGUI/AssetLineage.pm @@ -211,7 +211,7 @@ sub getFirstChild { my $assetLineage = $self->session->stow->get("assetLineage"); my $lineage = $assetLineage->{firstChild}{$self->getId}; unless ($lineage) { - ($lineage) = $self->session->db->quickArray("select min(asset.lineage) from asset,assetData where asset.parentId=".$self->session->db->quote($self->getId)." and asset.assetId=assetData.assetId and asset.state='published'"); + ($lineage) = $self->session->db->quickArray("select min(asset.lineage) from asset,assetData where asset.parentId=? and asset.assetId=assetData.assetId and asset.state='published'",[$self->getId]); unless ($self->session->config->get("disableCache")) { $assetLineage->{firstChild}{$self->getId} = $lineage; $self->session->stow->set("assetLineage", $assetLineage); @@ -237,7 +237,7 @@ sub getLastChild { my $assetLineage = $self->session->stow->get("assetLineage"); my $lineage = $assetLineage->{lastChild}{$self->getId}; unless ($lineage) { - ($lineage) = $self->session->db->quickArray("select max(asset.lineage) from asset,assetData where asset.parentId=".$self->session->db->quote($self->getId)." and asset.assetId=assetData.assetId and asset.state='published'"); + ($lineage) = $self->session->db->quickArray("select max(asset.lineage) from asset,assetData where asset.parentId=? and asset.assetId=assetData.assetId and asset.state='published'",[$self->getId]); $assetLineage->{lastChild}{$self->getId} = $lineage; $self->session->stow->set("assetLineage", $assetLineage); } diff --git a/t/Asset/AssetLineage.t b/t/Asset/AssetLineage.t index 91652bf04..b1848c537 100644 --- a/t/Asset/AssetLineage.t +++ b/t/Asset/AssetLineage.t @@ -16,7 +16,8 @@ use WebGUI::Test; use WebGUI::Session; use WebGUI::Asset; -use Test::More tests => 2; # increment this value for each test you create +use Test::More tests => 9; # increment this value for each test you create +use Test::Deep; # Test the methods in WebGUI::AssetLineage @@ -27,4 +28,70 @@ my $asset = WebGUI::Asset->getImportNode($session); is($asset->formatRank(76), "000076", "formatRank()"); is($asset->getLineageLength(), (length($asset->get("lineage")) / 6), "getLineageLength()"); +my $versionTag = WebGUI::VersionTag->getWorking($session); +$versionTag->set({name=>"AssetLineage Test"}); +my $root = WebGUI::Asset->getRoot($session); +my $folder = $root->addChild({ + url => 'testFolder', + title => 'folder', + menuTitle => 'folderMenuTitle', + className => 'WebGUI::Asset::Wobject::Folder', + isPackage => 1, +}); + +my @snippets = (); +foreach my $snipNum (0..6) { + push @snippets, + $folder->addChild( { + className => "WebGUI::Asset::Snippet", + groupIdView => 7, + groupIdEdit => 3, + title => "Snippet $snipNum", + menuTitle => $snipNum, + }); +} +$versionTag->commit; + +my @snipIds = map { $_->getId } @snippets; +my $lineageIds = $folder->getLineage(['descendants']); + +cmp_bag(\@snipIds, $lineageIds, 'default order returned by getLineage is lineage order'); + +#################################################### +# +# getFirstChild +# +#################################################### + +is($snippets[0]->getId, $folder->getFirstChild->getId, 'getFirstChild'); + +#################################################### +# +# getLastChild +# +#################################################### + +is($snippets[-1]->getId, $folder->getLastChild->getId, 'getLastChild'); + +#################################################### +# +# getChildCount +# +#################################################### + +is(scalar @snippets, $folder->getChildCount, 'getChildCount'); + +#################################################### +# +# hasChildren +# +#################################################### + +ok($folder->hasChildren, 'test folder has children'); +ok($root->hasChildren, 'root node has children'); +ok(!$snippets[0]->hasChildren, 'test snippet has no children'); + +END { + $versionTag->rollback; +}