sessionify duplicate. Tweak AssetClipboard test to use Moose methods.

This commit is contained in:
Colin Kuskie 2010-01-22 18:36:54 -08:00
parent de34ab3b95
commit 5b24340994
2 changed files with 16 additions and 13 deletions

View file

@ -93,25 +93,26 @@ Assets that normally autocommit their workflows (like CS Posts, and Wiki Pages)
sub duplicate { sub duplicate {
my $self = shift; my $self = shift;
my $session = $self->session;
my $options = shift; my $options = shift;
my $parent = $self->getParent; my $parent = $self->getParent;
my $newAsset my $newAsset
= $parent->addChild( $self->get, undef, $self->get("revisionDate"), { skipAutoCommitWorkflows => $options->{skipAutoCommitWorkflows} } ); = $parent->addChild( $self->get, undef, $self->get("revisionDate"), { skipAutoCommitWorkflows => $options->{skipAutoCommitWorkflows} } );
$self->session->log->error( $session->log->error(
sprintf "Unable to add child %s (%s) to %s (%s)", $self->getTitle, $self->getId, $parent->getTitle, $parent->getId sprintf "Unable to add child %s (%s) to %s (%s)", $self->getTitle, $self->getId, $parent->getTitle, $parent->getId
); );
# Duplicate metadata fields # Duplicate metadata fields
my $sth = $self->session->db->read( my $sth = $session->db->read(
"select * from metaData_values where assetId = ?", "select * from metaData_values where assetId = ?",
[$self->getId] [$self->getId]
); );
while (my $h = $sth->hashRef) { while (my $h = $sth->hashRef) {
$self->session->db->write("insert into metaData_values (fieldId, assetId, value) values (?, ?, ?)", [$h->{fieldId}, $newAsset->getId, $h->{value}]); $session->db->write("insert into metaData_values (fieldId, assetId, value) values (?, ?, ?)", [$h->{fieldId}, $newAsset->getId, $h->{value}]);
} }
# Duplicate keywords # Duplicate keywords
my $k = WebGUI::Keyword->new( $self->session ); my $k = WebGUI::Keyword->new( $session );
my $keywords = $k->getKeywordsForAsset( { my $keywords = $k->getKeywordsForAsset( {
asset => $self, asset => $self,
asArrayRef => 1, asArrayRef => 1,

View file

@ -72,12 +72,13 @@ $versionTag->commit;
sleep 2; sleep 2;
note "duplicate";
my $duplicatedSnippet = $snippet->duplicate; my $duplicatedSnippet = $snippet->duplicate;
is($duplicatedSnippet->get('title'), 'snippet', 'duplicated snippet has correct title'); is($duplicatedSnippet->title, 'snippet', 'duplicated snippet has correct title');
isnt($duplicatedSnippet->getId, $snippetAssetId, 'duplicated snippet does not have same assetId as original'); isnt($duplicatedSnippet->getId, $snippetAssetId, 'duplicated snippet does not have same assetId as original');
is( is(
$duplicatedSnippet->get("revisionDate"), $duplicatedSnippet->revisionDate,
$snippetRevisionDate, $snippetRevisionDate,
'duplicated snippet has the same revision date', 'duplicated snippet has the same revision date',
); );
@ -96,9 +97,10 @@ WebGUI::Test->tagsToRollback($newVersionTag);
# #
#################################################### ####################################################
is( $topFolder->cut, 1, 'cut: returns 1 if successful' ); note "cut";
is($topFolder->get('state'), 'clipboard', '... state set to trash on the trashed asset object'); is($topFolder->cut, 1, 'returns 1 if successful' );
is($topFolder->cloneFromDb->get('state'), 'clipboard', '... state set to trash in db on object'); is($topFolder->state, 'clipboard', '... state set to trash on the trashed asset object');
is($folder1a->cloneFromDb->get('state'), 'clipboard-limbo', '... state set to clipboard-limbo on child #1'); is($topFolder->cloneFromDb->state, 'clipboard', '... state set to trash in db on object');
is($folder1b->cloneFromDb->get('state'), 'clipboard-limbo', '... state set to clipboard-limbo on child #2'); is($folder1a->cloneFromDb->state, 'clipboard-limbo', '... state set to clipboard-limbo on child #1');
is($folder1a2->cloneFromDb->get('state'), 'clipboard-limbo', '... state set to clipboard-limbo on grandchild #1-1'); is($folder1b->cloneFromDb->state, 'clipboard-limbo', '... state set to clipboard-limbo on child #2');
is($folder1a2->cloneFromDb->state, 'clipboard-limbo', '... state set to clipboard-limbo on grandchild #1-1');