diff --git a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java index 2804567a6..a39c0d254 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java +++ b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java @@ -18,6 +18,8 @@ */ package org.librecms.assets; +import org.librecms.contentsection.Asset; + import java.io.Serializable; import java.util.Arrays; import java.util.Objects; diff --git a/ccm-cms/src/main/java/org/librecms/assets/Bookmark.java b/ccm-cms/src/main/java/org/librecms/assets/Bookmark.java index 7113db48c..5cec78538 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/Bookmark.java +++ b/ccm-cms/src/main/java/org/librecms/assets/Bookmark.java @@ -18,9 +18,12 @@ */ package org.librecms.assets; +import org.librecms.contentsection.Asset; + import java.io.Serializable; import java.net.URL; import java.util.Objects; + import javax.persistence.AssociationOverride; import javax.persistence.Column; import javax.persistence.Embedded; @@ -28,6 +31,7 @@ import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.Table; + import org.hibernate.envers.Audited; import org.hibernate.validator.constraints.NotEmpty; import org.libreccm.l10n.LocalizedString; diff --git a/ccm-cms/src/main/java/org/librecms/assets/LegalMetadata.java b/ccm-cms/src/main/java/org/librecms/assets/LegalMetadata.java index 296f8bb20..4f3c9447b 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/LegalMetadata.java +++ b/ccm-cms/src/main/java/org/librecms/assets/LegalMetadata.java @@ -18,6 +18,7 @@ */ package org.librecms.assets; +import org.librecms.contentsection.Asset; import org.hibernate.envers.Audited; import org.libreccm.l10n.LocalizedString; diff --git a/ccm-cms/src/main/java/org/librecms/assets/RelatedLink.java b/ccm-cms/src/main/java/org/librecms/assets/RelatedLink.java index 8158a26d4..b379dc73b 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/RelatedLink.java +++ b/ccm-cms/src/main/java/org/librecms/assets/RelatedLink.java @@ -18,6 +18,7 @@ */ package org.librecms.assets; +import org.librecms.contentsection.Asset; import org.hibernate.envers.Audited; import org.librecms.contentsection.ContentItem; diff --git a/ccm-cms/src/main/java/org/librecms/assets/SideNote.java b/ccm-cms/src/main/java/org/librecms/assets/SideNote.java index 7e6e338d7..96e09cfab 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/SideNote.java +++ b/ccm-cms/src/main/java/org/librecms/assets/SideNote.java @@ -18,6 +18,7 @@ */ package org.librecms.assets; +import org.librecms.contentsection.Asset; import org.hibernate.envers.Audited; import org.libreccm.l10n.LocalizedString; diff --git a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentListManager.java b/ccm-cms/src/main/java/org/librecms/attachments/AttachmentListManager.java deleted file mode 100644 index ad0fac7df..000000000 --- a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentListManager.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 2016 LibreCCM Foundation. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - */ -package org.librecms.attachments; - -import org.libreccm.security.PermissionChecker; -import org.librecms.contentsection.ContentItem; -import org.librecms.contentsection.ContentItemManager; -import org.librecms.contentsection.privileges.ItemPrivileges; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.persistence.Entity; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.transaction.Transactional; - -/** - * Provides methods for managing the {@link AttachmentList}s of an - * {@link ContentItem}. - * - * @author Jens Pelzetter - */ -@RequestScoped -public class AttachmentListManager { - - @Inject - private ContentItemManager itemManager; - - @Inject - private PermissionChecker permissionChecker; - - @Inject - private EntityManager entityManager; - - /** - * Retrieves the names of all {@link AttachmentList}s of an - * {@link ContentItem}. - * - * @param item The item from the which the names are retrieved. - * - * @return A list containing the names all the attachment lists of the item, - * in the order of the attachment lists. - */ - @Transactional(Transactional.TxType.REQUIRED) - public List getAttachmentListNames(final ContentItem item) { - if (item == null) { - throw new IllegalArgumentException( - "Can't get AttachmentList(s) from null."); - } - - //We have to distinguish between live and draft versions, therefore - //we can't use the CDI interceptor here. - if (itemManager.isLive(item)) { - permissionChecker.checkPermission(ItemPrivileges.VIEW_PUBLISHED, - item); - } else { - permissionChecker.checkPermission(ItemPrivileges.PREVIEW, item); - } - - final List lists = item.getAttachments(); - final List names = lists.stream() - .map(list -> list.getName()) - .collect(Collectors.toList()); - - Collections.sort(names); - - return names; - } - - /** - * Retrieves all {@link AttachmentList}s of a {@link ContentItem} with a - * specific name. - * - * @param item The item from which the lists are retrieved. - * @param name The name of the lists to retrieve. - * - * @return A list of the attachment lists with the specified name. If no - * attachment list of the {@code item} does match the provided - * {@code name} an empty list is returned. - */ - public List getAttachmentList( - final ContentItem item, - final String name) { - - if (item == null) { - throw new IllegalArgumentException( - "Can't get attachments lists from null."); - } - - if (name == null || name.trim().isEmpty()) { - throw new IllegalArgumentException( - "An AttachmentList can't have an empty name."); - } - - //We have to distinguish between live and draft versions, therefore - //we can't use the CDI interceptor here. - if (itemManager.isLive(item)) { - permissionChecker.checkPermission(ItemPrivileges.VIEW_PUBLISHED, - item); - } else { - permissionChecker.checkPermission(ItemPrivileges.PREVIEW, item); - } - - final TypedQuery query = entityManager.createNamedQuery( - "AttachmentList.findForItemAndName", AttachmentList.class); - query.setParameter("name", name); - query.setParameter("item", item); - - return query.getResultList(); - } - - /** - * Adds a new {@link AttachmentList} to an {@link ContentItem}. The list is - * put after the existing attachment lists. - * - * @param item The item to which the list is added. - * @param name The name of the new attachment list. - * - * @return The new attachment list. - */ - public AttachmentList createAttachmentList(final ContentItem item, - final String name) { - - final List lists = item.getAttachments(); - Collections.sort(lists, - (list1, list2) -> Long.compare(list1.getOrder(), - list2.getOrder())); - - final long lastOrder = lists.get(lists.size() - 1).getOrder(); - - final AttachmentList newList = new AttachmentList(); - newList.setItem(item); - newList.setName(name); - newList.setOrder(lastOrder + 1); - -// item.addAttachmentList(newList); - } - - /** - * Adds a new {@link AttachmentList} an {@link ContentItem}. The list is put - * after the specified position. - * - * @param item The item to which the list is added. - * @param name The name of the new attachment list. - * @param after The position after which the new attachment list is added. - * If the provided value is larger than the number of existing - * attachment lists the list is added after the last one. - * - * @return The new attachment list. - */ - public AttachmentList createAttachmentList(final ContentItem item, - final String name, - final long after) { - throw new UnsupportedOperationException("Not implemented yet"); - } - - /** - * Removes an {@link AttachentList} from the owning item. All non shared - * assets assigned to the {@code attachmentList} are deleted. - * - * @param attachmentList The attachment list to remove. - */ - public void removeAttachmentList(final AttachmentList attachmentList) { - throw new UnsupportedOperationException("Not implemented yet"); - } - - /** - * Moves an attachment list one position up. - * - * @param attachmentList The list to move. - */ - public void moveUp(final AttachmentList attachmentList) { - throw new UnsupportedOperationException("Not implemented yet"); - } - - /** - * Moves an attachment list one position down. - * - * @param attachmentList The list to move. - */ - public void moveDown(final AttachmentList attachmentList) { - throw new UnsupportedOperationException("Not implemented yet"); - } - - /** - * Moves an attachment list to a specific position. The attachment list with - * the provided index is moved one position down. If the position is larger - * than the number of attachment lists the list is moved to the last - * position. - * - * @param attachmentList The list to move. - * @param position The position to which the list is moved. - */ - public void moveTo(final AttachmentList attachmentList, - final long position) { - throw new UnsupportedOperationException("Not implemented yet"); - } - -} diff --git a/ccm-cms/src/main/java/org/librecms/assets/Asset.java b/ccm-cms/src/main/java/org/librecms/contentsection/Asset.java similarity index 93% rename from ccm-cms/src/main/java/org/librecms/assets/Asset.java rename to ccm-cms/src/main/java/org/librecms/contentsection/Asset.java index 8b47f6e5f..d2f74e6cb 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/Asset.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/Asset.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; import org.hibernate.envers.Audited; import org.libreccm.categorization.Categorization; @@ -24,7 +24,6 @@ import org.libreccm.core.CcmObject; import org.libreccm.l10n.LocalizedString; import org.libreccm.security.InheritsPermissions; import org.librecms.CmsConstants; -import org.librecms.attachments.ItemAttachment; import java.util.ArrayList; import java.util.Collections; @@ -155,6 +154,7 @@ public class Asset extends CcmObject implements InheritsPermissions { public Asset() { title = new LocalizedString(); + itemAttachments = new ArrayList<>(); } public LocalizedString getTitle() { @@ -173,6 +173,24 @@ public class Asset extends CcmObject implements InheritsPermissions { } } + protected void setItemAttachments( + final List> itemAttachments) { + + if (itemAttachments == null) { + this.itemAttachments = new ArrayList<>(); + } else { + this.itemAttachments = itemAttachments; + } + } + + protected void addItemAttachment(final ItemAttachment itemAttachment) { + itemAttachments.add(itemAttachment); + } + + protected void removeItemAttachment(final ItemAttachment itemAttachment) { + itemAttachments.remove(itemAttachment); + } + @Override public Optional getParent() { // For sharable assets the parent is the folder in the asset is stored diff --git a/ccm-cms/src/main/java/org/librecms/assets/AssetInUseException.java b/ccm-cms/src/main/java/org/librecms/contentsection/AssetInUseException.java similarity index 98% rename from ccm-cms/src/main/java/org/librecms/assets/AssetInUseException.java rename to ccm-cms/src/main/java/org/librecms/contentsection/AssetInUseException.java index 37e2a9f35..7726ed357 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AssetInUseException.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AssetInUseException.java @@ -17,7 +17,7 @@ * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; /** * diff --git a/ccm-cms/src/main/java/org/librecms/assets/AssetManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java similarity index 98% rename from ccm-cms/src/main/java/org/librecms/assets/AssetManager.java rename to ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java index a61d61e31..29b3035a6 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AssetManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; import com.arsdigita.util.UncheckedWrapperException; @@ -40,18 +40,12 @@ import org.libreccm.core.CoreConstants; import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; import org.librecms.CmsConstants; -import org.librecms.attachments.AttachmentList; -import org.librecms.contentsection.ContentSection; -import org.librecms.contentsection.Folder; -import org.librecms.contentsection.FolderManager; -import org.librecms.contentsection.FolderRepository; import org.librecms.contentsection.privileges.AssetPrivileges; import java.util.Objects; import org.libreccm.categorization.ObjectNotAssignedToCategoryException; import org.libreccm.l10n.LocalizedString; -import org.librecms.contentsection.FolderType; import java.beans.BeanInfo; import java.beans.IntrospectionException; diff --git a/ccm-cms/src/main/java/org/librecms/assets/AssetRepository.java b/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java similarity index 99% rename from ccm-cms/src/main/java/org/librecms/assets/AssetRepository.java rename to ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java index e5294c654..4ec102abc 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AssetRepository.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; import com.arsdigita.util.UncheckedWrapperException; @@ -27,8 +27,6 @@ import org.libreccm.categorization.ObjectNotAssignedToCategoryException; import org.libreccm.core.CcmObjectRepository; import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; -import org.librecms.CmsConstants; -import org.librecms.contentsection.Folder; import org.librecms.contentsection.privileges.AssetPrivileges; import java.util.List; diff --git a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentList.java similarity index 99% rename from ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java rename to ccm-cms/src/main/java/org/librecms/contentsection/AttachmentList.java index 8816aeef6..ec2d5cbf4 100644 --- a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentList.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.attachments; +package org.librecms.contentsection; import org.hibernate.envers.Audited; import org.libreccm.core.Identifiable; @@ -157,7 +157,7 @@ public class AttachmentList implements Comparable, return item; } - public void setItem(final ContentItem item) { + protected void setItem(final ContentItem item) { this.item = item; } diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java new file mode 100644 index 000000000..87f7bc1f7 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java @@ -0,0 +1,386 @@ +/* + * Copyright (C) 2016 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.librecms.contentsection; + +import org.libreccm.security.AuthorizationRequired; +import org.libreccm.security.PermissionChecker; +import org.libreccm.security.RequiresPrivilege; +import org.librecms.contentsection.privileges.ItemPrivileges; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.TypedQuery; +import javax.transaction.Transactional; + +/** + * Provides methods for managing the {@link AttachmentList}s of an + * {@link ContentItem}. + * + * @author Jens Pelzetter + */ +@RequestScoped +public class AttachmentListManager { + + @Inject + private ContentItemRepository itemRepo; + + @Inject + private ContentItemManager itemManager; + + @Inject + private AssetManager assetManager; + + @Inject + private PermissionChecker permissionChecker; + + @Inject + private EntityManager entityManager; + + /** + * Helper method to normalise the order columns for an list of + * {@link AttachmentList}s. After this method has been applied the values of + * the order attribute/column are the same as the position index in the + * list. + * + * @param lists The list of attachment lists to normalise. + */ + private void normalizeOrder(final List lists) { + for (int i = 0; i < lists.size(); i++) { + lists.get(i).setOrder(i); + entityManager.merge(lists.get(i)); + } + } + + /** + * Retrieves the names of all {@link AttachmentList}s of an + * {@link ContentItem}. + * + * @param item The item from the which the names are retrieved. + * + * @return A list containing the names all the attachment lists of the item, + * in the order of the attachment lists. + */ + @Transactional(Transactional.TxType.REQUIRED) + public List getAttachmentListNames(final ContentItem item) { + if (item == null) { + throw new IllegalArgumentException( + "Can't get AttachmentList(s) from null."); + } + + //We have to distinguish between live and draft versions, therefore + //we can't use the CDI interceptor here. + if (itemManager.isLive(item)) { + permissionChecker.checkPermission(ItemPrivileges.VIEW_PUBLISHED, + item); + } else { + permissionChecker.checkPermission(ItemPrivileges.PREVIEW, item); + } + + final List lists = item.getAttachments(); + final List names = lists.stream() + .map(list -> list.getName()) + .collect(Collectors.toList()); + + Collections.sort(names); + + return names; + } + + /** + * Retrieves all {@link AttachmentList}s of a {@link ContentItem} with a + * specific name. + * + * @param item The item from which the lists are retrieved. + * @param name The name of the lists to retrieve. + * + * @return A list of the attachment lists with the specified name. If no + * attachment list of the {@code item} does match the provided + * {@code name} an empty list is returned. + */ + @Transactional(Transactional.TxType.REQUIRED) + public List getAttachmentList( + final ContentItem item, + final String name) { + + if (item == null) { + throw new IllegalArgumentException( + "Can't get attachments lists from null."); + } + + if (name == null || name.trim().isEmpty()) { + throw new IllegalArgumentException( + "An AttachmentList can't have an empty name."); + } + + //We have to distinguish between live and draft versions, therefore + //we can't use the CDI interceptor here. + if (itemManager.isLive(item)) { + permissionChecker.checkPermission(ItemPrivileges.VIEW_PUBLISHED, + item); + } else { + permissionChecker.checkPermission(ItemPrivileges.PREVIEW, item); + } + + final TypedQuery query = entityManager.createNamedQuery( + "AttachmentList.findForItemAndName", AttachmentList.class); + query.setParameter("name", name); + query.setParameter("item", item); + + return query.getResultList(); + } + + /** + * Adds a new {@link AttachmentList} to an {@link ContentItem}. The list is + * put after the existing attachment lists. + * + * @param item The item to which the list is added. + * @param name The name of the new attachment list. + * + * @return The new attachment list. + */ + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public AttachmentList createAttachmentList( + @RequiresPrivilege(ItemPrivileges.EDIT) + final ContentItem item, + final String name) { + + if (item == null) { + throw new IllegalArgumentException( + "Can't add an attachment list to null."); + } + + if (name == null || name.trim().isEmpty()) { + throw new IllegalArgumentException( + "The name of an attachment list can't be null or empty."); + } + + final ContentItem draft = itemManager.getDraftVersion(item, + item.getClass()); + + final List lists = draft.getAttachments(); + final long lastOrder = lists.get(lists.size() - 1).getOrder(); + + final AttachmentList list = new AttachmentList(); + list.setItem(draft); + list.setName(name); + list.setUuid(UUID.randomUUID().toString()); + list.setOrder(lastOrder + 1); + + draft.addAttachmentList(list); + + entityManager.persist(list); + itemRepo.save(draft); + + normalizeOrder(lists); + + return list; + } + + /** + * Adds a new {@link AttachmentList} an {@link ContentItem}. The list is put + * after the specified position. + * + * @param item The item to which the list is added. + * @param name The name of the new attachment list. + * @param position The position at which the new attachment list is added. + * If the provided value is larger than the number of + * existing attachment lists the list is added after the + * last one. + * + * @return The new attachment list. + */ + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public AttachmentList createAttachmentList( + @RequiresPrivilege(ItemPrivileges.EDIT) + final ContentItem item, + final String name, + final long position) { + + if (item == null) { + throw new IllegalArgumentException( + "Can't add an attachment list to null."); + } + + if (name == null || name.trim().isEmpty()) { + throw new IllegalArgumentException( + "The name of an attachment list can't be null or empty."); + } + + final ContentItem draft = itemManager.getDraftVersion(item, + item.getClass()); + + final List lists = draft.getAttachments(); + final long listPos; + if (position < 0) { + listPos = 0; + } else if (position >= lists.size()) { + return createAttachmentList(draft, name); + } else { + listPos = position; + } + + normalizeOrder(lists); + + final AttachmentList list = new AttachmentList(); + list.setItem(draft); + list.setName(name); + list.setUuid(UUID.randomUUID().toString()); + list.setOrder(listPos); + + for (long i = listPos; i < lists.size(); i++) { + lists.get((int) i).setOrder(i + 1); + entityManager.merge(lists.get((int) i)); + } + + draft.addAttachmentList(list); + + entityManager.persist(list); + itemRepo.save(draft); + + return list; + } + + /** + * Removes an {@link AttachentList} from the owning item. All non shared + * assets assigned to the {@code attachmentList} are deleted. + * + * @param attachmentList The attachment list to remove. + */ + @Transactional(Transactional.TxType.REQUIRED) + @AuthorizationRequired + public void removeAttachmentList( + @RequiresPrivilege(ItemPrivileges.EDIT) + final AttachmentList attachmentList) { + + if (attachmentList == null) { + throw new IllegalArgumentException("Can't delete null."); + } + + final ContentItem item = attachmentList.getItem(); + + for (ItemAttachment attachment : attachmentList.getAttachments()) { + if (!assetManager.isShared(attachment.getAsset())) { + entityManager.remove(attachment.getAsset()); + } + } + + for (ItemAttachment attachment : attachmentList.getAttachments()) { + entityManager.remove(attachment); + } + + entityManager.remove(attachmentList); + } + + /** + * Moves an attachment list one position up. If the list is already one the + * last position does nothing. + * + * @param attachmentList The list to move. + */ + @Transactional + @AuthorizationRequired + public void moveUp( + @RequiresPrivilege(ItemPrivileges.EDIT) + final AttachmentList attachmentList) { + + if (attachmentList == null) { + throw new IllegalArgumentException("Can't move null."); + } + + final List lists = attachmentList.getItem() + .getAttachments(); + + final Optional list1 = lists.stream() + .filter(list -> list.getOrder() == attachmentList.getOrder()) + .findFirst(); + final Optional list2 = lists.stream() + .filter(list -> list.getOrder() >= attachmentList.getOrder() + 1) + .findFirst(); + + if (!list2.isPresent()) { + return; + } + + final long order1 = list1.get().getOrder(); + final long order2 = list2.get().getOrder(); + + list1.get().setOrder(order2); + list2.get().setOrder(order1); + + entityManager.merge(list1.get()); + entityManager.merge(list2.get()); + } + + /** + * Moves an attachment list one position down. + * + * @param attachmentList The list to move. + */ + @Transactional(Transactional.TxType.REQUIRED) + public void moveDown( + @RequiresPrivilege(ItemPrivileges.EDIT) + final AttachmentList attachmentList) { + + if (attachmentList == null) { + throw new IllegalArgumentException("Can't move null."); + } + + final List lists = attachmentList.getItem() + .getAttachments(); + + final Optional list1 = lists.stream() + .filter(list -> list.getOrder() == attachmentList.getOrder()) + .findFirst(); + final List lower = lists.stream() + .filter(list -> list.getOrder() <= attachmentList.getOrder() - 1) + .collect(Collectors.toList()); + Collections.sort(lower); + + final Optional list2; + if (lower.isEmpty()) { + list2 = Optional.empty(); + } else { + list2 = Optional.of(lower.get(lower.size() - 1)); + } + + if (!list2.isPresent()) { + return; + } + + final long order1 = list1.get().getOrder(); + final long order2 = list2.get().getOrder(); + + list1.get().setOrder(order2); + list2.get().setOrder(order1); + + entityManager.merge(list1.get()); + entityManager.merge(list2.get()); + } + + +} diff --git a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentsConfig.java b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentsConfig.java similarity index 98% rename from ccm-cms/src/main/java/org/librecms/attachments/AttachmentsConfig.java rename to ccm-cms/src/main/java/org/librecms/contentsection/AttachmentsConfig.java index 7549d25ae..00333a416 100644 --- a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentsConfig.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentsConfig.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.attachments; +package org.librecms.contentsection; import org.libreccm.configuration.Configuration; import org.libreccm.configuration.Setting; diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java index 6dc54c975..7050f3447 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java @@ -26,7 +26,6 @@ import org.libreccm.l10n.LocalizedString; import org.libreccm.security.InheritsPermissions; import org.libreccm.workflow.Workflow; import org.librecms.CmsConstants; -import org.librecms.attachments.AttachmentList; import org.librecms.lifecycle.Lifecycle; import java.io.Serializable; @@ -67,33 +66,38 @@ import static org.librecms.CmsConstants.*; @NamedQueries({ @NamedQuery( name = "ContentItem.findByType", - query = "SELECT i FROM ContentItem i WHERE TYPE(i) = :type"), + query = "SELECT i FROM ContentItem i WHERE TYPE(i) = :type") + , @NamedQuery( name = "ContentItem.findByFolder", query = "SELECT i FROM ContentItem i " + "JOIN i.categories c " + "WHERE c.category = :folder " - + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "'"), + + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "'") + , @NamedQuery( name = "ContentItem.countItemsInFolder", query = "SELECT count(i) FROM ContentItem i " + "JOIN i.categories c " + "WHERE c.category = :folder " - + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "'"), + + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "'") + , @NamedQuery( name = "ContentItem.countByNameInFolder", query = "SELECT COUNT(i) FROM ContentItem i " + "JOIN i.categories c " + "WHERE c.category = :folder " + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' " - + "AND i.displayName = :name"), + + "AND i.displayName = :name") + , @NamedQuery( name = "ContentItem.filterByFolderAndName", query = "SELECT i FROM ContentItem i " + "JOIN i.categories c " + "WHERE c.category = :folder " + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' " - + "AND LOWER(i.displayName) LIKE CONCAT(LOWER(:name), '%')"), + + "AND LOWER(i.displayName) LIKE CONCAT(LOWER(:name), '%')") + , @NamedQuery( name = "ContentItem.countFilterByFolderAndName", query = "SELECT COUNT(i) FROM ContentItem i " @@ -101,18 +105,21 @@ import static org.librecms.CmsConstants.*; + "WHERE c.category = :folder " + "AND c.type = '" + CATEGORIZATION_TYPE_FOLDER + "' " + "AND LOWER(i.displayName) LIKE CONCAT(LOWER(:name), '%')" - ), + ) + , @NamedQuery( name = "ContentItem.hasLiveVersion", query = "SELECT (CASE WHEN COUNT(i) > 0 THEN true ELSE false END) " + "FROM ContentItem i " + "WHERE i.itemUuid = :uuid " - + "AND i.version = org.librecms.contentsection.ContentItemVersion.LIVE"), + + "AND i.version = org.librecms.contentsection.ContentItemVersion.LIVE") + , @NamedQuery( name = "ContentItem.findDraftVersion", query = "SELECT i FROM ContentItem i " + "WHERE i.itemUuid = :uuid " - + "AND i.version = org.librecms.contentsection.ContentItemVersion.DRAFT"), + + "AND i.version = org.librecms.contentsection.ContentItemVersion.DRAFT") + , @NamedQuery( name = "ContentItem.findLiveVersion", query = "SELECT i FROM ContentItem i " @@ -296,17 +303,22 @@ public class ContentItem extends CcmObject implements Serializable, } public List getAttachments() { + Collections.sort(attachments); return Collections.unmodifiableList(attachments); } protected void setAttachments(final List attachments) { - this.attachments = attachments; + if (attachments == null) { + this.attachments = new ArrayList<>(); + } else { + this.attachments = attachments; + } } - + protected void addAttachmentList(final AttachmentList attachmentList) { attachments.add(attachmentList); } - + protected void removeAttachmentList(final AttachmentList attachmentList) { attachments.remove(attachmentList); } @@ -331,8 +343,8 @@ public class ContentItem extends CcmObject implements Serializable, public Optional getParent() { final List result = getCategories().stream().filter( categorization -> CmsConstants.CATEGORIZATION_TYPE_FOLDER. - equals( - categorization.getType())) + equals( + categorization.getType())) .collect(Collectors.toList()); if (result.isEmpty()) { diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java index 6bbf6817d..37bdb613b 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItemManager.java @@ -46,7 +46,9 @@ import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; import org.libreccm.workflow.Workflow; import org.libreccm.workflow.WorkflowManager; + import static org.librecms.CmsConstants.*; + import org.librecms.contentsection.privileges.ItemPrivileges; import org.librecms.lifecycle.Lifecycle; import org.librecms.lifecycle.LifecycleManager; @@ -1155,5 +1157,5 @@ public class ContentItemManager { return Optional.empty(); } } - + } diff --git a/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachment.java similarity index 98% rename from ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java rename to ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachment.java index 3b19263a2..dab03e730 100644 --- a/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachment.java @@ -16,11 +16,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.attachments; +package org.librecms.contentsection; import org.hibernate.envers.Audited; import org.libreccm.core.Identifiable; -import org.librecms.assets.Asset; import java.io.Serializable; import java.util.Objects; diff --git a/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachmentManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java similarity index 98% rename from ccm-cms/src/main/java/org/librecms/attachments/ItemAttachmentManager.java rename to ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java index 93cf683a4..20a65986a 100644 --- a/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachmentManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java @@ -16,9 +16,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.attachments; +package org.librecms.contentsection; -import org.librecms.assets.Asset; import javax.enterprise.context.RequestScoped; diff --git a/ccm-cms/src/test/java/org/librecms/assets/DatasetsTest.java b/ccm-cms/src/test/java/org/librecms/assets/DatasetsTest.java deleted file mode 100644 index 2321d49b5..000000000 --- a/ccm-cms/src/test/java/org/librecms/assets/DatasetsTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2016 LibreCCM Foundation. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - */ -package org.librecms.assets; - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.experimental.categories.Category; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.libreccm.tests.categories.UnitTest; -import org.libreccm.testutils.DatasetType; -import org.libreccm.testutils.DatasetsVerifier; - -import java.util.Arrays; -import java.util.Collection; - -/** - * Verify the datasets for the tests in {@code org.librecms.assets}. - * - * @author Jens Pelzetter - */ -@RunWith(Parameterized.class) -@Category(UnitTest.class) -public class DatasetsTest extends DatasetsVerifier { - - @Parameterized.Parameters(name = "Dataset {0}") - public static Collection data() { - return Arrays.asList(new String[]{ - "/datasets/org/librecms/assets/AssetRepositoryTest/data.xml", - "/datasets/org/librecms/assets/AssetRepositoryTest/after-delete.xml", - - "/datasets/org/librecms/assets/AssetManagerTest/data.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-clean-orphaned.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-contentsection.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-folder.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-same-folder.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-share.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml", - "/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-folder.xml", - }); - } - - public DatasetsTest(final String datasetPath) { - super(datasetPath); - } - - @Override - public DatasetType getDatasetType() { - return DatasetType.FLAT_XML; - } - - @Override - public String[] getSchemas() { - return new String[]{"ccm_core", "ccm_cms"}; - } - - @Override - public String[] getDdlFiles() { - return new String[]{"/datasets/create_ccm_cms_schema.sql"}; - } - - @BeforeClass - public static void setUpClass() { - } - - @AfterClass - public static void tearDownClass() { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - -} diff --git a/ccm-cms/src/test/java/org/librecms/attachments/DatasetsTest.java b/ccm-cms/src/test/java/org/librecms/attachments/DatasetsTest.java deleted file mode 100644 index e3a16a662..000000000 --- a/ccm-cms/src/test/java/org/librecms/attachments/DatasetsTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2016 LibreCCM Foundation. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - */ -package org.librecms.attachments; - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.experimental.categories.Category; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.libreccm.tests.categories.UnitTest; -import org.libreccm.testutils.DatasetType; -import org.libreccm.testutils.DatasetsVerifier; - -import java.util.Arrays; -import java.util.Collection; - -/** - * Verify the datasets for the tests in {@code org.librecms.attachments}. - * - * @author Jens Pelzetter - */ -@RunWith(Parameterized.class) -@Category(UnitTest.class) -public class DatasetsTest extends DatasetsVerifier { - - @Parameterized.Parameters(name = "Dataset {0}") - public static Collection data() { - return Arrays.asList(new String[]{ - "/datasets/org/librecms/attachments/AttachmentListManagerTest/data.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-after-last.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-with-negative-position.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-down.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-first.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-last.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-up.xml", - "/datasets/org/librecms/attachments/AttachmentListManagerTest/after-remove.xml" - }); - } - - public DatasetsTest(final String datasetPath) { - super(datasetPath); - } - - @Override - public DatasetType getDatasetType() { - return DatasetType.FLAT_XML; - } - - @Override - public String[] getSchemas() { - return new String[]{"ccm_core", "ccm_cms"}; - } - - @Override - public String[] getDdlFiles() { - return new String[]{"/datasets/create_ccm_cms_schema.sql"}; - } - - @BeforeClass - public static void setUpClass() { - } - - @AfterClass - public static void tearDownClass() { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - -} diff --git a/ccm-cms/src/test/java/org/librecms/assets/EqualsAndHashCodeTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java similarity index 93% rename from ccm-cms/src/test/java/org/librecms/assets/EqualsAndHashCodeTest.java rename to ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java index 60160dfbc..b1892e7ae 100644 --- a/ccm-cms/src/test/java/org/librecms/assets/EqualsAndHashCodeTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AssetEqualsAndHashCodeTest.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -27,20 +27,20 @@ import org.libreccm.security.Role; import org.libreccm.security.User; import org.libreccm.tests.categories.UnitTest; import org.libreccm.testutils.EqualsVerifier; -import org.librecms.attachments.ItemAttachment; -import org.librecms.contentsection.ContentItem; import java.util.Arrays; import java.util.Collection; import java.util.UUID; /** - * + * Verifies that the {@code equals} and {@code hashCode} methods of the {@link Asset} + * class are working properly. + * * @author Jens Pelzetter */ @RunWith(Parameterized.class) @org.junit.experimental.categories.Category(UnitTest.class) -public class EqualsAndHashCodeTest extends EqualsVerifier { +public class AssetEqualsAndHashCodeTest extends EqualsVerifier { @Parameterized.Parameters(name = "{0}") public static Collection> data() { @@ -49,7 +49,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { }); } - public EqualsAndHashCodeTest(final Class clazz) { + public AssetEqualsAndHashCodeTest(final Class clazz) { super(clazz); } diff --git a/ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java similarity index 87% rename from ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java rename to ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java index 8d0dc6bf5..f6f5f3bf9 100644 --- a/ccm-cms/src/test/java/org/librecms/assets/AssetManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AssetManagerTest.java @@ -16,7 +16,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; + import java.util.List; import java.util.Optional; @@ -44,20 +45,16 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.libreccm.security.Shiro; import org.libreccm.tests.categories.IntegrationTest; -import org.librecms.attachments.AttachmentList; -import org.librecms.contentsection.ContentItem; -import org.librecms.contentsection.ContentItemRepository; -import org.librecms.contentsection.FolderRepository; import javax.inject.Inject; -import org.librecms.contentsection.Folder; - import java.util.Locale; import javax.activation.MimeType; import javax.activation.MimeTypeParseException; +import org.librecms.assets.File; + import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -142,8 +139,9 @@ public class AssetManagerTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.assets.BinaryAsset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class @@ -194,9 +192,9 @@ public class AssetManagerTest { */ @Test @InSequence(100) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/after-share.xml", + value = "datasets/org/librecms/contentsection/AssetManagerTest/after-share.xml", excludeColumns = {"asset_id", "categorization_id", "id", @@ -230,8 +228,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(110) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void shareAssetNull() { final Folder folder = folderRepo.findById(-420L); @@ -250,8 +248,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(120) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void shareAssetFolderIsNull() throws MimeTypeParseException { final File file = new File(); @@ -270,8 +268,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(130) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void shareAlreadySharedAsset() { final Folder folder = folderRepo.findById(-420L); @@ -289,9 +287,9 @@ public class AssetManagerTest { */ @Test @InSequence(300) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/" + value = "datasets/org/librecms/contentsection/AssetManagerTest/" + "after-clean-orphaned.xml", excludeColumns = {"timestamp", "object_order"}) public void cleanOrphanedAssets() { @@ -305,9 +303,9 @@ public class AssetManagerTest { */ @Test @InSequence(400) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/" + value = "datasets/org/librecms/contentsection/AssetManagerTest/" + "after-move-to-other-folder.xml", excludeColumns = {"categorization_id", "object_id", @@ -330,9 +328,9 @@ public class AssetManagerTest { */ @Test @InSequence(410) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/" + value = "datasets/org/librecms/contentsection/AssetManagerTest/" + "after-move-to-other-contentsection.xml", excludeColumns = {"categorization_id", "object_id", @@ -356,8 +354,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(420) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetNull() { final Asset asset = null; @@ -376,8 +374,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(430) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetTargetFolderIsNull() { final Asset asset = assetRepo.findById(-900L); @@ -396,8 +394,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(430) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveAssetTargetFolderIsNotAssetFolder() { final Asset asset = assetRepo.findById(-900L); @@ -415,9 +413,9 @@ public class AssetManagerTest { */ @Test @InSequence(500) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/" + value = "datasets/org/librecms/contentsection/AssetManagerTest/" + "after-copy-to-other-folder.xml", excludeColumns = {"object_id", "uuid", @@ -443,9 +441,9 @@ public class AssetManagerTest { */ @Test @InSequence(510) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/" + value = "datasets/org/librecms/contentsection/AssetManagerTest/" + "after-copy-to-same-folder.xml", excludeColumns = {"object_id", "uuid", @@ -473,9 +471,9 @@ public class AssetManagerTest { */ @Test @InSequence(520) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetManagerTest/" + value = "datasets/org/librecms/contentsection/AssetManagerTest/" + "after-copy-to-other-contentsection.xml", excludeColumns = {"object_id", "uuid", @@ -503,8 +501,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(530) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void copyAssetNull() { final Asset asset = null; @@ -523,8 +521,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(540) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void copyAssetTargetFolderIsNull() { final Asset asset = assetRepo.findById(-1100L); @@ -543,8 +541,8 @@ public class AssetManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(550) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") @ShouldThrowException(IllegalArgumentException.class) public void copyAssetTargetFolderIsNotAssetFolder() { final Asset asset = assetRepo.findById(-1100L); @@ -563,8 +561,8 @@ public class AssetManagerTest { */ @Test @InSequence(600) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyIsAssetInUse() { final Asset header = assetRepo.findById(-700L); final Asset phb = assetRepo.findById(-800L); @@ -592,8 +590,8 @@ public class AssetManagerTest { */ @Test @InSequence(700) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetPathWithoutContentSection() { final Asset header = assetRepo.findById(-700L); final Asset phb = assetRepo.findById(-800L); @@ -626,8 +624,8 @@ public class AssetManagerTest { */ @Test @InSequence(800) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetPathWithContentSection() { final Asset header = assetRepo.findById(-700L); final Asset phb = assetRepo.findById(-800L); @@ -660,8 +658,8 @@ public class AssetManagerTest { */ @Test @InSequence(900) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetFolder() { final Asset header = assetRepo.findById(-700L); final Asset phb = assetRepo.findById(-800L); @@ -713,8 +711,8 @@ public class AssetManagerTest { */ @Test @InSequence(1000) - @UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml") + @UsingDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") + @ShouldMatchDataSet("datasets/org/librecms/contentsection/AssetManagerTest/data.xml") public void verifyGetAssetFolders() { final Asset header = assetRepo.findById(-700L); final Asset phb = assetRepo.findById(-800L); diff --git a/ccm-cms/src/test/java/org/librecms/assets/AssetRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java similarity index 86% rename from ccm-cms/src/test/java/org/librecms/assets/AssetRepositoryTest.java rename to ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java index 0d4cac5f7..15e6d1036 100644 --- a/ccm-cms/src/test/java/org/librecms/assets/AssetRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AssetRepositoryTest.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.assets; +package org.librecms.contentsection; import static org.libreccm.testutils.DependenciesHelpers.*; @@ -41,15 +41,17 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.libreccm.security.Shiro; import org.libreccm.tests.categories.IntegrationTest; -import org.librecms.contentsection.ContentItem; -import org.librecms.contentsection.Folder; -import org.librecms.contentsection.FolderRepository; +import org.librecms.assets.BinaryAsset; import java.util.List; import java.util.Optional; import javax.inject.Inject; +import org.librecms.assets.File; +import org.librecms.assets.Image; +import org.librecms.assets.VideoAsset; + import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -97,7 +99,7 @@ public class AssetRepositoryTest { public static WebArchive createDeployment() { return ShrinkWrap .create(WebArchive.class, - "LibreCCM-org.librecms.assets.AssetRepositoryTest.war") + "LibreCCM-org.librecms.contentsection.AssetRepositoryTest.war") .addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()) .addPackage(org.libreccm.categorization.Categorization.class .getPackage()) @@ -131,8 +133,9 @@ public class AssetRepositoryTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.assets.BinaryAsset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class @@ -181,9 +184,10 @@ public class AssetRepositoryTest { */ @Test @InSequence(100) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/assets/AssetRepositoryTest/" + value = "datasets/org/librecms/contentsection/AssetRepositoryTest/" + "after-delete.xml", excludeColumns = {"timestamp", "object_order"} ) @@ -202,9 +206,11 @@ public class AssetRepositoryTest { */ @Test(expected = AssetInUseException.class) @InSequence(110) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") - @ShouldMatchDataSet("datasets/org/librecms/assets/AssetRepositoryTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") + @ShouldMatchDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/" + + "data.xml") @ShouldThrowException(AssetInUseException.class) public void deleteUsedAsset() { final Asset asset = assetRepo.findById(-700L); @@ -220,7 +226,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(200) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void findAssetByUuid() { final Optional header = assetRepo.findByUuid( "4635589f-b87a-46d9-979e-6af14af063e5"); @@ -232,15 +239,25 @@ public class AssetRepositoryTest { "5211bf56-c20b-40b3-8ef8-0c7d35325fda"); assertThat(header.isPresent(), is(true)); - assertThat(phb.isPresent(), is(true)); - assertThat(datasheet.isPresent(), is(true)); - assertThat(none.isPresent(), is(false)); - + assertThat(header.get(), is(instanceOf(Asset.class))); + assertThat(header.get(), is(instanceOf(BinaryAsset.class))); + assertThat(header.get(), is(instanceOf(Image.class))); assertThat(header.get().getDisplayName(), is(equalTo("header.png"))); + + assertThat(phb.isPresent(), is(true)); + assertThat(phb.get(), is(instanceOf(Asset.class))); + assertThat(phb.get(), is(instanceOf(BinaryAsset.class))); + assertThat(phb.get(), is(instanceOf(Image.class))); assertThat(phb.get().getDisplayName(), is(equalTo("the-phb.png"))); + + assertThat(datasheet.isPresent(), is(true)); + assertThat(datasheet.get(), is(instanceOf(Asset.class))); + assertThat(datasheet.get(), is(instanceOf(BinaryAsset.class))); + assertThat(datasheet.get(), is(instanceOf(File.class))); assertThat(datasheet.get().getDisplayName(), is(equalTo( "product1-datasheet.pdf"))); + assertThat(none.isPresent(), is(false)); } /** @@ -249,7 +266,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(210) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void findAssetByUuidAndType() { final Optional asset = assetRepo.findByUuidAndType( "4635589f-b87a-46d9-979e-6af14af063e5", Image.class); @@ -268,7 +286,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(300) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void findAssetByType() { final List images = assetRepo.findByType(Image.class); final List files = assetRepo.findByType(File.class); @@ -295,7 +314,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(400) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void findAssetsByFolder() { final Folder media = folderRepo.findById(-400L); final Folder data = folderRepo.findById(-500L); @@ -314,7 +334,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(410) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countAssetsInFolder() { final Folder media = folderRepo.findById(-400L); final Folder data = folderRepo.findById(-500L); @@ -329,7 +350,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(500) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void filterAssetByFolderAndName() { final Folder media = folderRepo.findById(-400L); @@ -351,7 +373,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(510) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countFilterAssetByFolderAndName() { final Folder media = folderRepo.findById(-400L); @@ -368,7 +391,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(600) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void filterAssetsByFolderAndType() { final Folder media = folderRepo.findById(-400L); @@ -400,7 +424,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(610) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countFilterAssetsByFolderAndType() { final Folder media = folderRepo.findById(-400L); @@ -419,7 +444,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(600) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void filterAssetsByFolderAndTypeAndName() { final Folder media = folderRepo.findById(-400L); @@ -440,7 +466,8 @@ public class AssetRepositoryTest { */ @Test @InSequence(610) - @UsingDataSet("datasets/org/librecms/assets/AssetRepositoryTest/data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml") public void countFilterAssetsByFolderAndTypeAndName() { final Folder media = folderRepo.findById(-400L); diff --git a/ccm-cms/src/test/java/org/librecms/attachments/AttachmentListManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java similarity index 67% rename from ccm-cms/src/test/java/org/librecms/attachments/AttachmentListManagerTest.java rename to ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java index e3227e8fd..9593497ca 100644 --- a/ccm-cms/src/test/java/org/librecms/attachments/AttachmentListManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentListManagerTest.java @@ -16,7 +16,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.attachments; +package org.librecms.contentsection; + +import org.librecms.contentsection.AttachmentList; +import org.librecms.contentsection.AttachmentListManager; import static org.libreccm.testutils.DependenciesHelpers.*; @@ -42,7 +45,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.libreccm.security.Shiro; import org.libreccm.tests.categories.IntegrationTest; -import org.librecms.assets.Asset; +import org.librecms.contentsection.Asset; import org.librecms.contentsection.ContentItem; import org.librecms.contentsection.ContentItemRepository; @@ -132,9 +135,8 @@ public class AttachmentListManagerTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class - .getPackage()) + .addPackage(org.librecms.assets.BinaryAsset.class.getPackage()) + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class .getPackage()) @@ -183,8 +185,9 @@ public class AttachmentListManagerTest { */ @Test @InSequence(100) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") public void getAttachmentListNames() { shiro.getSystemUser().execute(() -> { final Optional article1 = itemRepo.findById(-510); @@ -201,8 +204,8 @@ public class AttachmentListManagerTest { assertThat(names1, is(not(nullValue()))); assertThat(names1.size(), is(3)); assertThat(names1.get(0), is("list1")); - assertThat(names1.get(1), is("list2")); - assertThat(names1.get(2), is("list3")); + assertThat(names1.get(1), is("list1")); + assertThat(names1.get(2), is("list2")); assertThat(names2, is(not(nullValue()))); assertThat(names2.size(), is(2)); @@ -218,8 +221,9 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(110) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void getAttachmentListNamesFromNull() { final ContentItem item = null; @@ -237,8 +241,9 @@ public class AttachmentListManagerTest { */ @Test @InSequence(200) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") public void getAttachmentList() { final Subject systemUser = shiro.getSystemUser(); @@ -284,8 +289,9 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(210) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void getAttachmentListFromItemNull() { final Subject systemUser = shiro.getSystemUser(); @@ -303,8 +309,9 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(220) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void getAttachmentListNameIsNull() { final Subject systemUser = shiro.getSystemUser(); @@ -325,8 +332,9 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(230) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void getAttachmentListWithEmptyName() { final Subject systemUser = shiro.getSystemUser(); @@ -347,12 +355,15 @@ public class AttachmentListManagerTest { */ @Test @InSequence(300) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - value = "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-create.xml", + value + = "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "after-create.xml", excludeColumns = {"timestamp", + "object_id", "list_id", "uuid"}) public void createAttachmentList() { @@ -370,14 +381,17 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(310) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void createAttachmentListForItemNull() { - fail("Not implemented yet"); + final ContentItem item = null; + + listManager.createAttachmentList(item, "newList"); } /** @@ -388,13 +402,17 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(320) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") public void createAttachmentListNameIsNull() { - fail("Not implemented yet"); + final Optional item = itemRepo.findById(-520); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), null); } /** @@ -405,13 +423,17 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(330) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") public void createAttachmentListNameIsEmpty() { - fail("Not implemented yet"); + final Optional item = itemRepo.findById(-520); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), " "); } /** @@ -421,13 +443,21 @@ public class AttachmentListManagerTest { */ @Test @InSequence(400) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-create.xml") - public void createAttachmentListAfterPosition() { - fail("Not implemented yet"); + value = "datasets/org/librecms/contentsection/" + + "AttachmentListManagerTest/after-create-with-position.xml", + excludeColumns = {"timestamp", + "object_id", + "list_id", + "uuid"}) + public void createAttachmentListWithPosition() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), "newList", 1); } /** @@ -439,13 +469,22 @@ public class AttachmentListManagerTest { */ @Test @InSequence(410) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-create-with-negative-position.xml") - public void createAttachmentListNegativePosition() { - fail("Not implemented yet"); + value = "datasets/org/librecms/contentsection/" + + "AttachmentListManagerTest/" + + "after-create-with-negative-position.xml", + excludeColumns = {"timestamp", + "object_id", + "list_id", + "uuid"}) + public void createAttachmentListWithNegativePosition() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), "newList", -3); } /** @@ -458,13 +497,22 @@ public class AttachmentListManagerTest { */ @Test @InSequence(420) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-create-after-last.xml") - public void createAttachmentListAfterLastPosition() { - fail("Not implemented yet"); + value = "datasets/org/librecms/contentsection/" + + "AttachmentListManagerTest/" + + "after-create-after-last.xml", + excludeColumns = {"timestamp", + "object_id", + "list_id", + "uuid"}) + public void createAttachmentListWithPositionAfterLast() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), "newList", 10); } /** @@ -475,14 +523,17 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(430) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) - public void createAttachmentListAfterPositionForItemNull() { - fail("Not implemented yet"); + public void createAttachmentListWithPositionForItemNull() { + final ContentItem item = null; + + listManager.createAttachmentList(item, "newList", 10); } /** @@ -493,14 +544,18 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(440) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) - public void createAttachmentListAfterPositionNameIsNull() { - fail("Not implemented yet"); + public void createAttachmentListWithPositionNameIsNull() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), null, 10); } /** @@ -511,14 +566,18 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(450) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) - public void createAttachmentListAfterPositionNameIsEmpty() { - fail("Not implemented yet"); + public void createAttachmentListWithPositionNameIsEmpty() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + + listManager.createAttachmentList(item.get(), " ", 10); } /** @@ -529,13 +588,19 @@ public class AttachmentListManagerTest { */ @Test @InSequence(500) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-remove.xml") + value = "datasets/org/librecms/contentsection/" + + "AttachmentListManagerTest/after-remove.xml", + excludeColumns = {"timestamp"}) public void removeAttachmentList() { - fail("Not implemented yet"); + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + final AttachmentList list = item.get().getAttachments().get(0); + + listManager.removeAttachmentList(list); } /** @@ -545,29 +610,59 @@ public class AttachmentListManagerTest { */ @Test(expected = IllegalArgumentException.class) @InSequence(510) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void removeAttachmentListNull() { - fail("Not implemented yet"); + final AttachmentList list = null; + + listManager.removeAttachmentList(list); + } /** - * Tries to move an {@link AttachmentList} up one position up using + * Tries to move an {@link AttachmentList} up one position up (+1) using * {@link AttachmentListManager#moveUp(org.librecms.attachments.AttachmentList)}. */ @Test @InSequence(600) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-move-up.xml") + value = "datasets/org/librecms/contentsection/" + + "AttachmentListManagerTest/after-move-up.xml", + excludeColumns = {"timestamp"}) public void moveUp() { - fail("Not implemented yet"); + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + final AttachmentList list = item.get().getAttachments().get(0); + + listManager.moveUp(list); + } + + /** + * Tries to move the item of the last position up and verifies that this + * that cause any changes. + */ + @Test + @InSequence(610) + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") + @ShouldMatchDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") + public void moveUpLast() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + final AttachmentList list = item.get().getAttachments().get(2); + + listManager.moveUp(list); } /** @@ -576,15 +671,18 @@ public class AttachmentListManagerTest { * throws an {@link IllegalArgumentException} if called for {@code null}. */ @Test(expected = IllegalArgumentException.class) - @InSequence(510) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @InSequence(620) + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveUpListNull() { - fail("Not implemented yet"); + final AttachmentList list = null; + + listManager.moveUp(list); } /** @@ -592,14 +690,40 @@ public class AttachmentListManagerTest { * {@link AttachmentListManager#moveUp(org.librecms.attachments.AttachmentList)}. */ @Test - @InSequence(600) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @InSequence(700) + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-move-down.xml") + value = "datasets/org/librecms/contentsection/" + + "AttachmentListManagerTest/after-move-down.xml", + excludeColumns = {"timestamp"}) public void moveDown() { - fail("Not implemented yet"); + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + final AttachmentList list = item.get().getAttachments().get(2); + + listManager.moveDown(list); + } + + /** + * Tries to move the item of the last position up and verifies that this + * that cause any changes. + */ + @Test + @InSequence(710) + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") + @ShouldMatchDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") + public void moveDownFirst() { + final Optional item = itemRepo.findById(-510); + assertThat(item.isPresent(), is(true)); + final AttachmentList list = item.get().getAttachments().get(0); + + listManager.moveDown(list); } /** @@ -608,80 +732,19 @@ public class AttachmentListManagerTest { * throws an {@link IllegalArgumentException} if called for {@code null}. */ @Test(expected = IllegalArgumentException.class) - @InSequence(510) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") + @InSequence(720) + @UsingDataSet( + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + + "data.xml") @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" + "datasets/org/librecms/contentsection/AttachmentListManagerTest/" + "data.xml") @ShouldThrowException(IllegalArgumentException.class) public void moveDownListNull() { - fail("Not implemented yet"); + final AttachmentList list = null; + + listManager.moveDown(list); } - /** - * Tries to move an {@link AttachmentList} to an specific position using - * {@link AttachmentListManager#moveTo(org.librecms.attachments.AttachmentList, long)}. - */ - @Test - @InSequence(600) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") - @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-move-to.xml") - public void moveTo() { - fail("Not implemented yet"); - } - - /** - * Tries to move an {@link AttachmentList} to the first position using - * {@link AttachmentListManager#moveTo(org.librecms.attachments.AttachmentList, long)} - * with a negative value for {@code position}. - */ - @Test - @InSequence(600) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") - @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-move-to-first.xml") - public void moveToNegativePosition() { - fail("Not implemented yet"); - } - - /** - * Tries to move an {@link AttachmentList} to the last position using - * {@link AttachmentListManager#moveTo(org.librecms.attachments.AttachmentList, long)} - * with a value larger than the number of attachment lists. - */ - @Test - @InSequence(600) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") - @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "after-move-to-last.xml") - public void moveToLargerThanLast() { - fail("Not implemented yet"); - } - - /** - * Verifies that - * {@link AttachmentListManager#moveTo(org.librecms.attachments.AttachmentList, long)} - * throws an {@link IllegalArgumentException} if called with {@code null} - * for the attachment list to move. - */ - @Test(expected = IllegalArgumentException.class) - @InSequence(510) - @UsingDataSet("datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") - @ShouldMatchDataSet( - "datasets/org/librecms/attachments/AttachmentListManagerTest/" - + "data.xml") - @ShouldThrowException(IllegalArgumentException.class) - public void moveToListNull() { - fail("Not implemented yet"); - } } diff --git a/ccm-cms/src/test/java/org/librecms/attachments/EqualsAndHashCodeTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java similarity index 91% rename from ccm-cms/src/test/java/org/librecms/attachments/EqualsAndHashCodeTest.java rename to ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java index 9acca6d18..bc3a39279 100644 --- a/ccm-cms/src/test/java/org/librecms/attachments/EqualsAndHashCodeTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/AttachmentsEqualsAndHashCodeTest.java @@ -16,7 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ -package org.librecms.attachments; +package org.librecms.contentsection; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -25,21 +25,20 @@ import org.libreccm.security.Group; import org.libreccm.security.Role; import org.libreccm.tests.categories.UnitTest; import org.libreccm.testutils.EqualsVerifier; -import org.librecms.assets.Asset; -import org.librecms.contentsection.ContentItem; -import org.librecms.contentsection.ContentSection; import java.util.Arrays; import java.util.Collection; import java.util.UUID; /** - * + * Verifies the {@code equals} and {@code hashCode} methods of the classes + * {@link AttachmentsConfig}, {@link AttachmentList} and {@link ItemAttachment}. + * * @author Jens Pelzetter */ @RunWith(Parameterized.class) @org.junit.experimental.categories.Category(UnitTest.class) -public class EqualsAndHashCodeTest extends EqualsVerifier { +public class AttachmentsEqualsAndHashCodeTest extends EqualsVerifier { @Parameterized.Parameters(name = "{0}") public static Collection> data() { @@ -50,7 +49,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { }); } - public EqualsAndHashCodeTest(final Class clazz) { + public AttachmentsEqualsAndHashCodeTest(final Class clazz) { super(clazz); } diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java index 087e28422..0f78f61e5 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemL10NManagerTest.java @@ -127,8 +127,8 @@ public class ContentItemL10NManagerTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java index cace7cd79..3a1674292 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemManagerTest.java @@ -151,8 +151,8 @@ public class ContentItemManagerTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java index edb8211a1..192de924b 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentItemRepositoryTest.java @@ -127,8 +127,8 @@ public class ContentItemRepositoryTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java index f58098de1..f383434de 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentSectionManagerTest.java @@ -162,8 +162,8 @@ public class ContentSectionManagerTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(ContentSection.class.getPackage()) diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java index 9041e7f89..8a63587b2 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/ContentTypeRepositoryTest.java @@ -130,8 +130,8 @@ public class ContentTypeRepositoryTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(org.librecms.contentsection.ContentSection.class diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/DatasetsTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/DatasetsTest.java index 2a683fd12..0320d0cea 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/DatasetsTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/DatasetsTest.java @@ -43,6 +43,30 @@ public class DatasetsTest extends DatasetsVerifier { @Parameterized.Parameters(name = "Dataset {0}") public static Collection data() { return Arrays.asList(new String[]{ + "/datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml", + "/datasets/org/librecms/contentsection/AssetRepositoryTest/after-delete.xml", + + "/datasets/org/librecms/contentsection/AssetManagerTest/data.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-clean-orphaned.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-other-contentsection.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-other-folder.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-same-folder.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-share.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-move-to-other-contentsection.xml", + "/datasets/org/librecms/contentsection/AssetManagerTest/after-move-to-other-folder.xml", + + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/data.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-after-last.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-negative-position.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-position.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-move-down.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-move-to-first.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-move-to-last.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-move-to.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-move-up.xml", + "/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-remove.xml", + "/datasets/org/librecms/contentsection/ContentSectionManagerTest/data.xml", "/datasets/org/librecms/contentsection/ContentSectionManagerTest/after-add-contenttype.xml", "/datasets/org/librecms/contentsection/ContentSectionManagerTest/after-remove-contenttype.xml", diff --git a/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java b/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java index f20f8f1ee..fc09ba826 100644 --- a/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java +++ b/ccm-cms/src/test/java/org/librecms/contentsection/FolderManagerTest.java @@ -122,8 +122,8 @@ public class FolderManagerTest { .addPackage(com.arsdigita.util.Lockable.class.getPackage()) .addPackage(com.arsdigita.web.BaseServlet.class.getPackage()) .addPackage(org.librecms.Cms.class.getPackage()) - .addPackage(org.librecms.assets.Asset.class.getPackage()) - .addPackage(org.librecms.attachments.AttachmentList.class + .addPackage(org.librecms.contentsection.Asset.class.getPackage()) + .addPackage(org.librecms.contentsection.AttachmentList.class .getPackage()) .addPackage(org.librecms.lifecycle.Lifecycle.class.getPackage()) .addPackage(ContentSection.class.getPackage()) diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-last.xml b/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-last.xml deleted file mode 100644 index d174d5026..000000000 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-last.xml +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to.xml b/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to.xml deleted file mode 100644 index d174d5026..000000000 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to.xml +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-clean-orphaned.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-clean-orphaned.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-clean-orphaned.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-clean-orphaned.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-contentsection.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-other-contentsection.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-contentsection.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-other-contentsection.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-folder.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-other-folder.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-folder.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-other-folder.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-same-folder.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-same-folder.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-same-folder.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-copy-to-same-folder.xml 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/contentsection/AssetManagerTest/after-move-to-other-contentsection.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-move-to-other-contentsection.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-folder.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-move-to-other-folder.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-folder.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-move-to-other-folder.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-share.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-share.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/after-share.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/after-share.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/data.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/data.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetManagerTest/data.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetManagerTest/data.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetRepositoryTest/after-delete.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetRepositoryTest/after-delete.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetRepositoryTest/after-delete.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetRepositoryTest/after-delete.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetRepositoryTest/data.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml similarity index 100% rename from ccm-cms/src/test/resources/datasets/org/librecms/assets/AssetRepositoryTest/data.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AssetRepositoryTest/data.xml diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-after-last.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-after-last.xml similarity index 90% rename from ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-after-last.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-after-last.xml index d174d5026..c7de336b4 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-after-last.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-after-last.xml @@ -3,6 +3,8 @@ + + + - - - + uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" + item_id="-520" /> - + + + uuid="57850f9c-e191-4f6f-9537-d5c2d2f118ec" + item_id="-510" /> + + + + + diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-with-negative-position.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-negative-position.xml similarity index 94% rename from ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-with-negative-position.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-negative-position.xml index d174d5026..4b45aa812 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create-with-negative-position.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-negative-position.xml @@ -3,6 +3,8 @@ + + @@ -363,37 +369,49 @@ list_order="1" uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" item_id="-520" /> + - - - + uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" + item_id="-520" /> - + + uuid="57850f9c-e191-4f6f-9537-d5c2d2f118ec" + item_id="-510" /> + + + diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-first.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-position.xml similarity index 93% rename from ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-first.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-position.xml index d174d5026..51a7d55ac 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-move-to-first.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create-with-position.xml @@ -3,6 +3,8 @@ + + @@ -363,37 +369,57 @@ list_order="1" uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" item_id="-520" /> + - - - + uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" + item_id="-520" /> - + + uuid="57850f9c-e191-4f6f-9537-d5c2d2f118ec" + item_id="-510" /> + + + + diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create.xml similarity index 95% rename from ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create.xml index cbbc3ba3d..ae1bf914d 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/after-create.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/after-create.xml @@ -3,7 +3,7 @@ - + - + + + - - - + + + item_id="-510" /> + + + @@ -367,19 +369,21 @@ + item_id="-510" /> + + + - - + + + + - - + + + @@ -185,12 +203,6 @@ - - @@ -212,18 +224,30 @@ locale="en" /> + + - - + + + - - + + + @@ -338,18 +367,13 @@ category_index="false" type="folder" /> - @@ -364,52 +388,41 @@ uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" item_id="-520" /> - - - + uuid="a6841869-6ebd-4a14-9c52-627cfc880f4e" + item_id="-520" /> - + + uuid="57850f9c-e191-4f6f-9537-d5c2d2f118ec" + item_id="-510" /> + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/data.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/data.xml similarity index 99% rename from ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/data.xml rename to ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/data.xml index 09622fe0b..757b94843 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/attachments/AttachmentListManagerTest/data.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/AttachmentListManagerTest/data.xml @@ -213,17 +213,17 @@