From 37203117e94500b3c88b052222608554032aa7fa Mon Sep 17 00:00:00 2001 From: jensp Date: Thu, 27 Oct 2016 17:49:51 +0000 Subject: [PATCH] CCM NG/ccm-cms: AssetManager#move now passes all tests git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4412 8810af33-2d31-482b-a856-94f89814c4df --- .../org/librecms/assets/AssetManager.java | 9 +++ .../org/librecms/assets/AssetManagerTest.java | 33 ++++++++-- .../after-move-to-other-contentsection.xml | 60 ++++++++++++++++--- 3 files changed, 88 insertions(+), 14 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/assets/AssetManager.java b/ccm-cms/src/main/java/org/librecms/assets/AssetManager.java index 67c8a3a5b..817315ea8 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AssetManager.java +++ b/ccm-cms/src/main/java/org/librecms/assets/AssetManager.java @@ -19,6 +19,7 @@ package org.librecms.assets; import com.arsdigita.util.UncheckedWrapperException; + import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -47,7 +48,9 @@ import org.librecms.contentsection.FolderRepository; import org.librecms.contentsection.privileges.AssetPrivileges; import java.util.Objects; + import org.libreccm.categorization.ObjectNotAssignedToCategoryException; +import org.librecms.contentsection.FolderType; import static org.librecms.CmsConstants.*; @@ -171,6 +174,12 @@ public class AssetManager { throw new IllegalArgumentException("No target folder specified."); } + if (targetFolder.getType() != FolderType.ASSETS_FOLDER) { + throw new IllegalArgumentException(String.format( + "The provided target folder %s is not an asset folder.", + Objects.toString(targetFolder))); + } + final Optional currentFolder = getAssetFolder(asset); if (currentFolder.isPresent()) { diff --git a/ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java b/ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java index db9e72543..cbc01c48b 100644 --- a/ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java @@ -331,15 +331,24 @@ public class AssetManagerTest { * section using * {@link AssetManager#copy(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}. */ + @Test @InSequence(410) @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") @ShouldMatchDataSet( value = "datasets/org/librecms/assets/AssetManagerTest/" + "after-move-to-other-contentsection.xml", - excludeColumns = {"object_id", + excludeColumns = {"categorization_id", + "object_id", + "object_order", "uuid"}) public void moveAssetToFolderInOtherContentSection() { - fail(); + final Asset asset = assetRepo.findById(-900L); + assertThat(asset, is(not(nullValue()))); + + final Folder folder = folderRepo.findById(-1600L); + assertThat(folder, is(not(nullValue()))); + + assetManager.move(asset, folder); } /** @@ -354,7 +363,10 @@ public class AssetManagerTest { @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetNull() { - fail(); + final Folder folder = folderRepo.findById(-410L); + assertThat(folder, is(not(nullValue()))); + + assetManager.move(null, folder); } /** @@ -369,7 +381,10 @@ public class AssetManagerTest { @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetTargetFolderIsNull() { - fail(); + final Asset asset = assetRepo.findById(-900L); + assertThat(asset, is(not(nullValue()))); + + assetManager.move(asset, null); } /** @@ -383,8 +398,14 @@ public class AssetManagerTest { @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) - public void moveAssetTargetFolderNotAssetFolder() { - fail(); + public void moveAssetTargetFolderIsNotAssetFolder() { + final Asset asset = assetRepo.findById(-900L); + assertThat(asset, is(not(nullValue()))); + + final Folder folder = folderRepo.findById(-200L); + assertThat(folder, is(not(nullValue()))); + + assetManager.move(asset, folder); } /** diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml b/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml index ffc0a3b5a..511558279 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml @@ -23,6 +23,12 @@ + + @@ -111,13 +117,31 @@ category_order="1"/> + + + + @@ -196,6 +228,10 @@ type="ASSETS_FOLDER" /> + + + + + data_size="0" /> + -