Author: glandais Date: 2008-02-12 19:55:54 +0000 (Tue, 12 Feb 2008) New Revision: 876 Added: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java Removed: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalReplace.java Log: Test business rules Deleted: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalReplace.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalReplace.java 2008-02-12 19:55:26 UTC (rev 875) +++ trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalReplace.java 2008-02-12 19:55:54 UTC (rev 876) @@ -1,119 +0,0 @@ -/* -* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program 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 General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* ##% */ -package fr.cemagref.simexplorer.is.service; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; - -import junit.framework.TestCase; -import fr.cemagref.simexplorer.is.attachment.Attachment; -import fr.cemagref.simexplorer.is.entities.data.Component; -import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; -import fr.cemagref.simexplorer.is.entities.data.ExplorationData; -import fr.cemagref.simexplorer.is.entities.data.Library; -import fr.cemagref.simexplorer.is.entities.metadata.MetaData; -import fr.cemagref.simexplorer.is.factories.BaseEntityFactory; -import fr.cemagref.simexplorer.is.factories.MetaDataFactory; -import fr.cemagref.simexplorer.is.factories.XmlConstants; -import fr.cemagref.simexplorer.is.service.ElementGenerator.RandomStream; - -public class StorageServiceLocalReplace extends TestCase { - - /** The storage service. */ - private StorageService storageService; - - /** The element generator. */ - private ElementGenerator elementGenerator; - - /** The r. */ - private Random r = new Random(); - - /* (non-Javadoc) - * @see junit.framework.TestCase#setUp() - */ - @Override - protected void setUp() throws Exception { - super.setUp(); - elementGenerator = new ElementGenerator(); - - storageService = new StorageServiceClient(); - } - - private MetaData saveEa(ExplorationApplication ea) throws Exception { - Map<Attachment, SimExplorerServiceStream> attachments = new HashMap<Attachment, SimExplorerServiceStream>(); - - List<Attachment> attachmentsKeys = new ArrayList<Attachment>(); - - attachmentsKeys.addAll(ea.getMetaData().getAttachments()); - Set<Component> components = ea.getComponents(); - for (Component component : components) { - attachmentsKeys.addAll(component.getMetaData().getAttachments()); - Set<Library> libraries = component.getLibraries(); - for (Library library : libraries) { - attachmentsKeys.addAll(library.getMetaData().getAttachments()); - } - } - Set<ExplorationData> explorations = ea.getExplorations(); - for (ExplorationData explorationData : explorations) { - attachmentsKeys.addAll(explorationData.getMetaData() - .getAttachments()); - } - - for (Attachment attachment : attachmentsKeys) { - RandomStream randomStream = elementGenerator.generateTextStream(); - attachment.setDataHash(randomStream.getMd5()); - SimExplorerServiceStream stream = new SimExplorerServiceStream( - randomStream.getStream()); - attachments.put(attachment, stream); - } - - SimExplorerServiceStream xmlStream = new SimExplorerServiceStream( - BaseEntityFactory.getFactory(ExplorationApplication.class) - .saveElement(XmlConstants.VALUE_METADATA_TYPE_EA, ea)); - - return storageService.saveElement(null, xmlStream, attachments); - } - - public void testReplace() throws Exception { - ExplorationApplication ea; - MetaData mde; - InputStream stream; - - MetaDataFactory<MetaData> mdeFactory = MetaDataFactory - .getFactory(MetaData.class); - - ea = elementGenerator.generateRandomEA(); - mde = saveEa(ea); - stream = storageService.retrieveElementXML(null, mde.getUuid(), mde - .getVersion().toString()); - System.out.println(mdeFactory.computeHash(stream)); - - ea.getMetaData().setVersion( - ea.getMetaData().getVersion().incVersion(0).toString()); - - mde = saveEa(ea); - stream = storageService.retrieveElementXML(null, mde.getUuid(), mde - .getVersion().toString()); - System.out.println(mdeFactory.computeHash(stream)); - } -} Copied: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java (from rev 873, trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalReplace.java) =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java (rev 0) +++ trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java 2008-02-12 19:55:54 UTC (rev 876) @@ -0,0 +1,183 @@ +/* +* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program 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 General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.service; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; + +import junit.framework.TestCase; +import fr.cemagref.simexplorer.is.attachment.Attachment; +import fr.cemagref.simexplorer.is.entities.data.Code; +import fr.cemagref.simexplorer.is.entities.data.Component; +import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; +import fr.cemagref.simexplorer.is.entities.data.ExplorationData; +import fr.cemagref.simexplorer.is.entities.data.Library; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; +import fr.cemagref.simexplorer.is.factories.BaseEntityFactory; +import fr.cemagref.simexplorer.is.factories.MetaDataFactory; +import fr.cemagref.simexplorer.is.factories.XmlConstants; +import fr.cemagref.simexplorer.is.service.ElementGenerator.RandomStream; + +public class StorageServiceLocalVersions extends TestCase { + + /** The storage service. */ + private StorageService storageService; + + /** The element generator. */ + private ElementGenerator elementGenerator; + + /** The r. */ + private Random r = new Random(); + + private Map<Attachment, SimExplorerServiceStream> attachments; + + /* (non-Javadoc) + * @see junit.framework.TestCase#setUp() + */ + @Override + protected void setUp() throws Exception { + super.setUp(); + elementGenerator = new ElementGenerator(); + + storageService = new StorageServiceClient(); + } + + private MetaData saveEa(ExplorationApplication ea, + boolean computeAttachments) throws Exception { + + if (computeAttachments) { + attachments = new HashMap<Attachment, SimExplorerServiceStream>(); + + List<Attachment> attachmentsKeys = new ArrayList<Attachment>(); + + attachmentsKeys.addAll(ea.getMetaData().getAttachments()); + Set<Component> components = ea.getComponents(); + for (Component component : components) { + attachmentsKeys + .addAll(component.getMetaData().getAttachments()); + Set<Library> libraries = component.getLibraries(); + for (Library library : libraries) { + attachmentsKeys.addAll(library.getMetaData() + .getAttachments()); + } + } + Set<ExplorationData> explorations = ea.getExplorations(); + for (ExplorationData explorationData : explorations) { + attachmentsKeys.addAll(explorationData.getMetaData() + .getAttachments()); + } + + for (Attachment attachment : attachmentsKeys) { + RandomStream randomStream = elementGenerator + .generateTextStream(); + attachment.setDataHash(randomStream.getMd5()); + SimExplorerServiceStream stream = new SimExplorerServiceStream( + randomStream.getStream()); + attachments.put(attachment, stream); + } + } + + SimExplorerServiceStream xmlStream = new SimExplorerServiceStream( + BaseEntityFactory.getFactory(ExplorationApplication.class) + .saveElement(XmlConstants.VALUE_METADATA_TYPE_EA, ea)); + + return storageService.saveElement(null, xmlStream, attachments); + } + + private void testVersionUpdate(String firstVersion, String secondVersion, + String assertFirst, String assertSecond, boolean different) + throws Exception { + ExplorationApplication ea; + + MetaDataFactory<MetaData> mdeFactory = MetaDataFactory + .getFactory(MetaData.class); + + ea = elementGenerator.generateRandomEA(); + + ea.getMetaData().setVersion(firstVersion); + + MetaData mde1 = saveEa(ea, true); + + ea.getMetaData().setVersion(secondVersion); + + if (different) { + Component component = ea.getComponents().iterator().next(); + Code code = new Code(); + code.setCode("regreg"); + code.setLanguage("regreg"); + component.getCodes().add(code); + } + + MetaData mde2 = saveEa(ea, false); + + assertEquals(mde1.getVersion().toString(), assertFirst); + assertEquals(mde2.getVersion().toString(), assertSecond); + } + + public void testVersionUpdate() throws Exception { + System.out.println("1.1A + 1.0A = 1.1A"); + testVersionUpdate("1.1", "1.0", "1.1", "1.1", false); + System.out.println("1.1A + 1.1A = 1.1A"); + testVersionUpdate("1.1", "1.1", "1.1", "1.1", false); + System.out.println("1.1A + 2.1A = 2.1A"); + //testVersionUpdate("1.1", "2.1", "2.1", "2.1", false); + System.out.println("1.1A + 1.0B = 1.1A + 1.2B"); + testVersionUpdate("1.1", "1.0", "1.1", "1.2", true); + System.out.println("1.1A + 1.1B = 1.1A + 1.2B"); + testVersionUpdate("1.1", "1.1", "1.1", "1.2", true); + System.out.println("1.1A + 1.1.5B = 1.1A + 1.2B"); + testVersionUpdate("1.1", "1.1.5", "1.1", "1.2", true); + System.out.println("1.1A + 2.1B = 1.1A + 2.1B"); + testVersionUpdate("1.1", "2.1", "1.1", "2.1", true); + } + + /* + public void testVersionUpdate2() throws Exception { + ExplorationApplication ea; + + MetaDataFactory<MetaData> mdeFactory = MetaDataFactory + .getFactory(MetaData.class); + + ea = elementGenerator.generateRandomEA(); + MetaData mde1 = saveEa(ea, true); + + Component component = ea.getComponents().iterator().next(); + Code code = new Code(); + code.setCode("regreg"); + code.setLanguage("regreg"); + component.getCodes().add(code); + + MetaData mde2 = saveEa(ea, false); + + InputStream stream1 = storageService.retrieveElementXML(null, mde1 + .getUuid(), mde1.getVersion().toString()); + InputStream stream2 = storageService.retrieveElementXML(null, mde2 + .getUuid(), mde2.getVersion().toString()); + + assertFalse(mdeFactory.computeHash(stream1).equals( + mdeFactory.computeHash(stream2))); + assertEquals(mde1.getVersion(), mde2.getVersion().incVersion(1)); + } + */ + +}