/* * * 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.versioning; import java.util.List; import javax.sql.DataSource; import com.agiletec.plugins.jpversioning.aps.ApsPluginBaseTestCase; import com.agiletec.plugins.jpversioning.util.JpversioningTestHelper; import com.agiletec.aps.util.DateConverter; import com.agiletec.plugins.jacms.aps.system.services.content.model.Content; import com.agiletec.plugins.jpversioning.aps.system.JpversioningSystemConstants; import com.agiletec.plugins.jpversioning.aps.system.services.versioning.ContentVersion; import com.agiletec.plugins.jpversioning.aps.system.services.versioning.IVersioningManager; import com.agiletec.plugins.jpversioning.aps.system.services.versioning.VersioningManager; /** * @author G.Cocco */ public class TestVersioningManager extends ApsPluginBaseTestCase { @Override protected void setUp() throws Exception { super.setUp(); this.init(); this._helper.initContentVersions(); } @Override protected void tearDown() throws Exception { this._helper.cleanContentVersions(); super.tearDown(); } public void testGetVersions() throws Throwable { List<Long> versions = this._versioningManager.getVersions("CNG12"); assertNull(versions); versions = this._versioningManager.getVersions("ART1"); this.checkVersionIds(new long[] { 1, 2, 3 }, versions); } public void testGetLastVersions() throws Throwable { List<Long> versions = this._versioningManager.getLastVersions("CNG", null); assertTrue(versions.isEmpty()); versions = this._versioningManager.getLastVersions("ART", null); this.checkVersionIds(new long[] { 3 }, versions); } public void testGetVersion() throws Throwable { ContentVersion contentVersion = this._versioningManager.getVersion(10000); assertNull(contentVersion); long id = 1; contentVersion = this._versioningManager.getVersion(id); assertEquals(id, contentVersion.getId()); assertEquals("ART1", contentVersion.getContentId()); assertEquals("ART", contentVersion.getContentType()); assertEquals("Articolo", contentVersion.getDescr()); assertEquals(Content.STATUS_DRAFT, contentVersion.getStatus()); assertNotNull(contentVersion.getXml()); assertEquals("13/02/2005", DateConverter.getFormattedDate(contentVersion.getVersionDate(), "dd/MM/yyyy")); assertEquals("0.0", contentVersion.getVersion()); assertEquals(0, contentVersion.getOnlineVersion()); assertTrue(contentVersion.isApproved()); assertEquals("admin", contentVersion.getUsername()); } public void testGetLastVersion() throws Throwable { ContentVersion contentVersion = this._versioningManager.getLastVersion("CNG12"); assertNull(contentVersion); contentVersion = this._versioningManager.getLastVersion("ART1"); assertEquals(3, contentVersion.getId()); assertEquals("ART1", contentVersion.getContentId()); assertEquals("ART", contentVersion.getContentType()); assertEquals("Articolo 3", contentVersion.getDescr()); assertEquals(Content.STATUS_READY, contentVersion.getStatus()); assertNotNull(contentVersion.getXml()); assertEquals("15/02/2005", DateConverter.getFormattedDate(contentVersion.getVersionDate(), "dd/MM/yyyy")); assertEquals("1.0", contentVersion.getVersion()); assertEquals(1, contentVersion.getOnlineVersion()); assertTrue(contentVersion.isApproved()); assertEquals("mainEditor", contentVersion.getUsername()); } public void testSaveGetDeleteVersion() throws Throwable { ((VersioningManager) this._versioningManager).saveContentVersion("ART102"); ContentVersion contentVersion = this._versioningManager.getLastVersion("ART102"); assertEquals(4, contentVersion.getId()); assertEquals("ART102", contentVersion.getContentId()); assertEquals("ART", contentVersion.getContentType()); assertEquals("Contenuto 2 Customers", contentVersion.getDescr()); assertEquals(Content.STATUS_DRAFT, contentVersion.getStatus()); assertNotNull(contentVersion.getXml()); assertEquals("15/12/2007", DateConverter.getFormattedDate(contentVersion.getVersionDate(), "dd/MM/yyyy")); assertEquals("1.0", contentVersion.getVersion()); assertEquals(1, contentVersion.getOnlineVersion()); assertTrue(contentVersion.isApproved()); assertEquals("admin", contentVersion.getUsername()); this._versioningManager.deleteVersion(contentVersion.getId()); assertNull(this._versioningManager.getLastVersion("ART102")); } public void deleteWorkVersions() throws Throwable { List<Long> versions = this._versioningManager.getVersions("ART1"); this.checkVersionIds(new long[] { 1, 2, 3 }, versions); this._versioningManager.deleteWorkVersions("ART1", 0); versions = this._versioningManager.getVersions("ART1"); this.checkVersionIds(new long[] { 1, 3 }, versions); } private void checkVersionIds(long[] expected, List<Long> received) { assertEquals(expected.length, received.size()); for (long current : expected) { if (!received.contains(new Long(current))) { fail("Expected " + current + " - Not found"); } } } private void init() throws Exception { this._versioningManager = (IVersioningManager) this.getService(JpversioningSystemConstants.VERSIONING_MANAGER); DataSource dataSource = (DataSource) this.getApplicationContext().getBean("portDataSource"); this._helper = new JpversioningTestHelper(dataSource, this.getApplicationContext()); } private IVersioningManager _versioningManager; private JpversioningTestHelper _helper; }