Package com.agiletec.plugins.jpversioning.aps.system.services.resource

Source Code of com.agiletec.plugins.jpversioning.aps.system.services.resource.TestTrashedResourceManager

/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando software.
* Entando is a free software;
* You can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions  
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpversioning.aps.system.services.resource;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import com.agiletec.plugins.jpversioning.aps.ApsPluginBaseTestCase;

import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.exception.ApsSystemException;
import com.agiletec.aps.system.services.category.Category;
import com.agiletec.aps.system.services.category.ICategoryManager;
import com.agiletec.aps.system.services.group.Group;
import com.agiletec.plugins.jacms.aps.system.JacmsSystemConstants;
import com.agiletec.plugins.jacms.aps.system.services.resource.IResourceManager;
import com.agiletec.plugins.jacms.aps.system.services.resource.model.BaseResourceDataBean;
import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceDataBean;
import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceInterface;
import com.agiletec.plugins.jpversioning.aps.system.JpversioningSystemConstants;
import com.agiletec.plugins.jpversioning.aps.system.services.resource.TrashedResourceManager;
import java.io.InputStream;

/**
* @author G.Cocco
*/
public class TestTrashedResourceManager extends ApsPluginBaseTestCase {
 
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    this.init();
    }
 
  public void testSearchTrashedResourceIds() throws ApsSystemException {
    String resourceTypeCode = null;
    String text = null;
    List<String> allowedGroups = new ArrayList<String>();
    List<String> resourceIds = this._trashedResourceManager.searchTrashedResourceIds(resourceTypeCode, text, allowedGroups);
    assertNotNull(resourceIds);
    assertEquals(6, resourceIds.size());
    assertEquals("67", resourceIds.get(0));
    assertEquals("68", resourceIds.get(1));
   
    resourceTypeCode = "Image";
    text = "qq";
    allowedGroups = new ArrayList<String>();
    allowedGroups.add("customers");
    resourceIds = this._trashedResourceManager.searchTrashedResourceIds(resourceTypeCode, text, allowedGroups);
    assertNotNull(resourceIds);
    assertEquals(1, resourceIds.size());
    assertEquals("69", resourceIds.get(0));
  }
 
  public void testAdd_Trash_LoadFromTrash_RemoveFromTrash() throws Throwable {
    String mainGroup = Group.FREE_GROUP_NAME;
    String resDescrToAdd = "Versioning test 1";
    String resourceType = "Image";
    String categoryCodeToAdd = "resCat1";
    List<String> groups = new ArrayList<String>();
    groups.add(Group.FREE_GROUP_NAME);
    try {
      ResourceDataBean bean = this.getMockResource(resourceType, mainGroup, resDescrToAdd, categoryCodeToAdd);

      // add the resource
      this._resourceManager.addResource(bean);
      List<String> resources = this._resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      assertEquals(1, resources.size());
     
      ResourceInterface resource = _resourceManager.loadResource(resources.get(0));
      assertNotNull(resource);

      // move into the trash
      _resourceManager.deleteResource(resource);

      // load from Trash
      ResourceInterface resourceLoadedFromTrash = this._trashedResourceManager.loadTrashedResource(resource.getId());
      assertNotNull(resourceLoadedFromTrash);
      assertEquals(resDescrToAdd, resourceLoadedFromTrash.getDescr());
      assertEquals(mainGroup, resourceLoadedFromTrash.getMainGroup());
      assertEquals(resourceType, resourceLoadedFromTrash.getType());
     
      // del from trash
      this._trashedResourceManager.removeFromTrash(resource.getId());
    } catch (Throwable t) {
      List<String> resources = this._resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      if (null != resources && resources.size() > 0) {
        for (int i = 0; i < resources.size(); i++) {
          String id = resources.get(i);
          this._trashedResourceManager.removeFromTrash(id);
          ResourceInterface resource = this._resourceManager.loadResource(id);
          this._resourceManager.deleteResource(resource);
        }
      }
      throw t;
    }
  }
 
  public void testAdd_Trash_RestoreResource_DeleteFromArchive() throws Throwable {
    String mainGroup = Group.FREE_GROUP_NAME;
    String resDescrToAdd = "Versioning test 2";
    String resourceType = "Image";
    String categoryCodeToAdd = "resCat1";
    ResourceDataBean bean = this.getMockResource(resourceType, mainGroup, resDescrToAdd, categoryCodeToAdd);
    List<String> groups = new ArrayList<String>();
    groups.add(Group.FREE_GROUP_NAME);
    try {
      // add the resource
      this._resourceManager.addResource(bean);
      List<String> resources = this._resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      assertEquals(1, resources.size());
     
      String resourceId = resources.get(0);
      ResourceInterface resource = this._resourceManager.loadResource(resourceId);
      assertNotNull(resource);
     
      // move into the trash
      this._resourceManager.deleteResource(resource);
      resources = _resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      assertEquals(0, resources.size());
     
      // restore from Trash
      this._trashedResourceManager.restoreResource(resourceId);
      resources = this._resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      assertEquals(1, resources.size());
      resource = this._resourceManager.loadResource(resources.get(0));
      // delete from archive and from trash
      _resourceManager.deleteResource(resource);
      resources = _resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      assertEquals(0, resources.size());
      this._trashedResourceManager.removeFromTrash(resource.getId());
    } catch (Throwable t) {
      List<String> resources = this._resourceManager.searchResourcesId(resourceType, resDescrToAdd, categoryCodeToAdd, groups);
      if (null != resources && resources.size() > 0) {
        for (int i = 0; i < resources.size(); i++) {
          String id = resources.get(i);
          this._trashedResourceManager.removeFromTrash(id);
          ResourceInterface resource = this._resourceManager.loadResource(id);
          this._resourceManager.deleteResource(resource);
        }
      }
      throw t;
    }
  }
 
  private ResourceDataBean getMockResource(String resourceType, String mainGroup, String resDescrToAdd, String categoryCodeToAdd) {
    File file = new File("target/test/entando_logo.jpg");
    BaseResourceDataBean bean = new BaseResourceDataBean(file);
    bean.setDescr(resDescrToAdd);
    bean.setMainGroup(mainGroup);
    bean.setResourceType(resourceType);
    bean.setMimeType("image/jpeg");
    List<Category> categories = new ArrayList<Category>();
    ICategoryManager catManager =
      (ICategoryManager) this.getService(SystemConstants.CATEGORY_MANAGER);
    Category cat = catManager.getCategory(categoryCodeToAdd);
    categories.add(cat);
    bean.setCategories(categories);
    return bean;
    }
 
  private void init() throws Exception {
      try {
        this._resourceManager = (IResourceManager) this.getService(JacmsSystemConstants.RESOURCE_MANAGER);
        this._trashedResourceManager = (TrashedResourceManager) this.getService(JpversioningSystemConstants.TRASHED_RESOURCE_MANAGER);
      } catch (Throwable t) {
            throw new Exception(t);
        }
    }
 
  private IResourceManager _resourceManager;
  private TrashedResourceManager _trashedResourceManager;
 
}
TOP

Related Classes of com.agiletec.plugins.jpversioning.aps.system.services.resource.TestTrashedResourceManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.