package org.exoplatform.services.cms.documents;
import org.exoplatform.services.cms.drives.ManageDriveService;
import org.exoplatform.services.wcm.BaseWCMTestCase;
import org.exoplatform.services.wcm.core.NodetypeConstant;
import org.exoplatform.services.wcm.utils.WCMCoreUtils;
import javax.jcr.Node;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
/**
* Created by The eXo Platform SEA
* Author : eXoPlatform
* toannh@exoplatform.com
* On 9/10/15
* Unit test to check AutoVersionService methods
*/
public class TestAutoVersionService extends BaseWCMTestCase {
private AutoVersionService autoVersionService;
public void setUp() throws Exception {
super.setUp();
autoVersionService = container.getComponentInstanceOfType(AutoVersionService.class);
applySystemSession();
}
public void tearDown() throws Exception {
clear();
session.save();
session.logout();
super.tearDown();
}
/**
* @throws Exception
*/
private void clear() throws Exception {
Node rootNode = session.getRootNode();
Node documentNode = rootNode.getNode("document");
documentNode.remove();
session.save();
}
public void testAutoVersion() throws Exception{
Node document = session.getRootNode().addNode("document");
Node documentA = document.addNode("documentA", NodetypeConstant.NT_FILE);
Node jcrContent = documentA.addNode("jcr:content", "nt:resource");
jcrContent.setProperty("jcr:lastModified", new GregorianCalendar());
jcrContent.setProperty("jcr:data", "");
jcrContent.setProperty("jcr:mimeType", "text/html");
session.save();
autoVersionService.autoVersion(documentA);
long versionNumber = documentA.getVersionHistory().getAllVersions().getSize();
assertEquals("Number version is not correct", versionNumber, 1);
}
public void testGetDriveAutoVersion() throws Exception{
Node document = session.getRootNode().addNode("document");
List<String> lstSupport = autoVersionService.getDriveAutoVersion();
assertEquals("Get list supported drives is not correct", lstSupport.size(), 3);
ManageDriveService manageDriveService = WCMCoreUtils.getService(ManageDriveService.class);
List<String> lstHomePath = new ArrayList<>();
for (String drive: lstSupport){
lstHomePath.add(manageDriveService.getDriveByName(drive).getHomePath());
}
assertTrue("List supported not contant Persional drive", lstHomePath.contains(AutoVersionService.PERSONAL_DRIVE_PARRTEN));
assertTrue("List supported not contant Groups drive", lstHomePath.contains(AutoVersionService.GROUP_DRIVE_PARRTEN));
}
}