Author: tchemit Date: 2010-11-28 12:22:01 +0100 (Sun, 28 Nov 2010) New Revision: 1011 Url: http://nuiton.org/repositories/revision/eugene/1011 Log: Evolution #1115: Make ModelReader#read throws an IOException Evolution #1114: Sanity tests Evolution #1113: Introduce contracts *EugeneTagValues* (*EugeneStereoTypes*) to push all constants about tagvalues (stereotypes) usable in eugene generators. Improve the loading of model properties, now for my taste : it is perfect (I remove all colors from it, be SURE of it...) Added: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java trunk/eugene/src/main/java/org/nuiton/eugene/java/extension/ trunk/eugene/src/test/java/org/nuiton/eugene/TestHelper.java Modified: trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerExtensionTest.java trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerTest.java trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtensionTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelDTDTest.java trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java Modified: trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java =================================================================== --- trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -352,10 +352,10 @@ if ("object".equals(transformation)) { ModelReader<ObjectModel> objectModelReader = new ObjectModelReader(); - ObjectModel model = - objectModelReader.read(modelFilesArray); try { - generator.applyTemplate(model, destDir); + ObjectModel model = + objectModelReader.read(modelFilesArray); + generator.applyTemplate(model, destDir); } catch (IOException e) { throw new BuildException( "Can't apply template on object model", e); @@ -365,8 +365,8 @@ else if ("state".equals(transformation)) { ModelReader<StateModel> stateModelReader = new StateModelReader(); - Model model = stateModelReader.read(modelFilesArray); try { + Model model = stateModelReader.read(modelFilesArray); generator.applyTemplate(model, destDir); } catch (IOException e) { throw new BuildException( Added: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -0,0 +1,46 @@ +/* + * #%L + * EUGene :: EUGene + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2004 - 2010 CodeLutin + * %% + * This program 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 3 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +package org.nuiton.eugene; + +import org.nuiton.eugene.java.JavaBeanTransformer; + +/** + * Defines all stereotypes managed by Eugene. + * <p/> + * In another library using eugene, please extends this contract to put your + * own stereotypes, to get a unique place where to find stereotypes. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2.1 + */ +public interface EugeneStereoTypes { + + /** + * Stereotype for JavaBean objects. + * + * @see JavaBeanTransformer + */ + String STEREOTYPE_BEAN = "bean"; +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -0,0 +1,65 @@ +/* + * #%L + * EUGene :: EUGene + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2004 - 2010 CodeLutin + * %% + * This program 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 3 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +package org.nuiton.eugene; + +import org.nuiton.eugene.java.JavaBeanTransformer; + +/** + * Defines all tag values managed by Eugene. + * + * In another library using eugene, please extends this contract to put your + * own tag values, to get a unique place where to find tag values. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2.1 + */ +public interface EugeneTagValues { + + /** + * tag value to add on constants enumeration (or other incoming dev) + * a prefix to constant to generate. + */ + String TAG_CONSTANT_PREFIX = "constantPrefix"; + + /** + * tag value to set if do not want any pcs (says PropertyChangeSupport in a generated bean). + * @see JavaBeanTransformer + */ + String TAG_NO_PCS= "noPCS"; + + /** + * tag value to add the version of the model from outside (says in the + * properties file associated to the model).. + * + * @since 2.2.1 + */ + String TAG_VERSION = "version"; + + /** + * Tag pour specfier if i18n must be generated. + * @since 2.2.1 + */ + String TAG_I18N_PREFIX = "i18n"; +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneTagValues.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -130,9 +130,9 @@ if (attribute instanceof ObjectModelAttribute && isNMultiplicity((ObjectModelAttribute) attribute)) { if (attribute.isOrdered()) { - result = "java.util.List"; + result = List.class.getName(); } else { - result = "java.util.Collection"; + result = Collection.class.getName(); } if (useGenerics) { result += "<" + attribute.getType() + ">"; Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelReader.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -30,6 +30,7 @@ import org.nuiton.eugene.models.Model; import java.io.File; +import java.io.IOException; /** * ModelReader TODO real doc :) @@ -83,7 +84,8 @@ * * @param file files to read * @return the new model builded from files + * @throws IOException if any IO errors while reading files */ - public abstract M read(File... file); + public abstract M read(File... file) throws IOException; } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -27,6 +27,8 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.EugeneStereoTypes; +import org.nuiton.eugene.EugeneTagValues; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelInterface; @@ -52,8 +54,8 @@ * * Since version 2.2.1, it is possible to * <ul> - * <li>generate a simple POJO (says with no PCS support) by using the tag value {@link JavaGeneratorUtil#TAG_NO_PCS}.</li> - * <li>generate i18n keys using the tag value {@link JavaGeneratorUtil#TAG_I18N_PREFIX}.</li> + * <li>generate a simple POJO (says with no PCS support) by using the tag value {@link EugeneTagValues#TAG_NO_PCS}.</li> + * <li>generate i18n keys using the tag value {@link EugeneTagValues#TAG_I18N_PREFIX}.</li> * </ul> * * @author tchemit <chemit@codelutin.com> @@ -90,7 +92,7 @@ ObjectModelClass ouputImpl = generateImpl(input, output); - String noPCSTagValue = input.getTagValue(JavaGeneratorUtil.TAG_NO_PCS); + String noPCSTagValue = input.getTagValue(EugeneTagValues.TAG_NO_PCS); boolean usePCS = StringUtils.isEmpty(noPCSTagValue) || !"true".equals(noPCSTagValue.trim()); @@ -558,7 +560,7 @@ } protected boolean canGenerate(ObjectModelClass input) { - return input.hasStereotype(JavaGeneratorUtil.STEREOTYPE_BEAN); + return input.hasStereotype(EugeneStereoTypes.STEREOTYPE_BEAN); } protected void createPropertyChangeSupport(ObjectModelClass output) { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -24,6 +24,7 @@ */ package org.nuiton.eugene.java; +import org.nuiton.eugene.EugeneTagValues; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelClassifier; @@ -44,35 +45,7 @@ public static final String OPERATION_GETTER_BOOLEAN_PREFIX = "is"; - /** Stereotype for JavaBean objects. */ - public static final String STEREOTYPE_BEAN = "bean"; - /** - * tag value to add on constants enumeration (or other incoming dev) - * a prefix to constant to generate. - */ - public static final String TAG_CONSTANT_PREFIX = "constantPrefix"; - - /** - * tag value to set if do not want any pcs (says PropertyChangeSupport in a generated bean). - * @see JavaBeanTransformer - */ - public static final String TAG_NO_PCS= "noPCS"; - - /** - * tag value to add the version of the model from outside (says in the - * properties file associated to the model).. - * - * @since 2.2.1 - */ - public static final String TAG_VERSION = "version"; - - /** - * Tag pour specfier if i18n must be generated. - * @since 2.2.1 - */ - public static final String TAG_I18N_PREFIX = "i18n"; - /** * dependency to add constants in interfaces via an enumeration. * * The literals of enumeration will be the value, and constant names will @@ -150,6 +123,6 @@ */ public static String getI18nPrefix(ObjectModelElement element, ObjectModel model) { - return findTagValue(TAG_I18N_PREFIX, element, model); + return findTagValue(EugeneTagValues.TAG_I18N_PREFIX, element, model); } } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -32,7 +32,6 @@ import org.nuiton.eugene.models.object.ObjectModelInterface; import org.nuiton.eugene.models.object.ObjectModelModifier; -import java.util.Iterator; import java.util.Set; /*{generator option: parentheses = false}*/ Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -29,6 +29,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.EugeneTagValues; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.Template; import org.nuiton.eugene.models.object.ObjectModel; @@ -194,7 +195,7 @@ // look if there is a constant_prefix tag value String prefix = JavaGeneratorUtil.findTagValue( - JavaGeneratorUtil.TAG_CONSTANT_PREFIX, + EugeneTagValues.TAG_CONSTANT_PREFIX, input, getModel() ); @@ -739,7 +740,7 @@ * <p/> * If found, add all literals on {@code output} model as constants. * <p/> - * You can add a {@link JavaGeneratorUtil#TAG_CONSTANT_PREFIX} to your + * You can add a {@link EugeneTagValues#TAG_CONSTANT_PREFIX} to your * enumeration to prefix constant names. * * @param input the input model @@ -802,7 +803,7 @@ /** * Used to initialize constant prefix depends on model tagvalue {@link - * JavaGeneratorUtil#TAG_CONSTANT_PREFIX}. If no tagvalue found, the default + * EugeneTagValues#TAG_CONSTANT_PREFIX}. If no tagvalue found, the default * value will be an empty prefix. */ public void initConstantPrefixFromModel() { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -30,18 +30,18 @@ import org.apache.commons.digester.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.EugeneTagValues; import org.nuiton.eugene.ModelReader; -import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet; import org.nuiton.eugene.models.object.xml.ObjectModelAssociationClassImpl; import org.nuiton.eugene.models.object.xml.ObjectModelClassifierImpl; import org.nuiton.eugene.models.object.xml.ObjectModelElementImpl; import org.nuiton.eugene.models.object.xml.ObjectModelImpl; import org.nuiton.eugene.models.object.xml.ObjectModelImplRef; -import org.nuiton.eugene.models.object.xml.ObjectModelImplTagValue; import org.nuiton.util.FileUtil; import org.nuiton.util.RecursiveProperties; import org.nuiton.util.StringUtil; +import org.xml.sax.SAXException; import java.io.File; import java.io.FileInputStream; @@ -49,6 +49,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Iterator; import java.util.List; import java.util.Properties; import java.util.regex.Matcher; @@ -92,7 +93,8 @@ */ protected Pattern propertiesPattern = Pattern .compile("^((?:[_a-zA-Z0-9]+\\.)+(?:_?[A-Z][_a-zA-Z0-9]*\\.)+)(?:(class|attribute|operation))\\.(?:([_a-zA-Z0-9]+)\\.)?(?:(tagvalue|tagValue)?)\\.([_a-z0-9][_a-zA-Z0-9]*)?$"); - protected Pattern propertyStereotypePattern = Pattern + + protected Pattern stereotypePattern = Pattern .compile("^((?:[_a-zA-Z0-9]+\\.)+(?:_?[A-Z][_a-zA-Z0-9]*\\.)+)(?:(class|attribute|operation))\\.(?:([_a-zA-Z0-9]+)\\.)?(?:(stereotype)?)$"); /** @@ -113,7 +115,7 @@ * stereotype ou des tag value sur les class, attribute ou operation */ @Override - public ObjectModel read(File... files) { + public ObjectModel read(File... files) throws IOException { setLastModifiedSource(files); if (log.isDebugEnabled()) { log.debug("LastModifiedSource = " + getLastModifiedSource() + @@ -130,10 +132,11 @@ try { digester.push(model); model = (ObjectModel) digester.parse(file); - } catch (Exception e) { - if (log.isWarnEnabled()) { - log.warn("Unable to parse ObjectModel input file : " + file, e); - } + } catch (SAXException e) { + throw new IOException("Unable to parse ObjectModel input file : " + file, e); +// if (log.isWarnEnabled()) { +// log.warn("Unable to parse ObjectModel input file : " + file, e); +// } } // recherche est charge le fichier propriete associe au modele @@ -151,7 +154,7 @@ log.info("Lecture du fichier de propriete " + propFile + " associé au model"); } - loadTagValues(propFile, model); + loadModelProperties(propFile, model); } } if (log.isDebugEnabled()) { @@ -194,22 +197,23 @@ return result; } - public Properties loadTagValues(File propFile, ObjectModel model) { + public Properties loadModelProperties(File propFile, ObjectModel model) throws IOException { Properties prop = new RecursiveProperties(); +// try { + FileInputStream inStream = new FileInputStream(propFile); try { - FileInputStream inStream = new FileInputStream(propFile); - try { - prop.load(inStream); - } finally { - inStream.close(); - } - } catch (IOException eee) { - if (log.isWarnEnabled()) { - log.warn("Impossible de lire le fichier de propriete " - + propFile, eee); - } + prop.load(inStream); + } finally { + inStream.close(); } +// } catch (IOException eee) { +// +// if (log.isWarnEnabled()) { +// log.warn("Impossible de lire le fichier de propriete " +// + propFile, eee); +// } +// } // number of sucessfull imported tag values into model int numberImportedTagValues = 0; @@ -223,165 +227,255 @@ for (String key : keys) { String value = prop.getProperty(key); + if (log.isDebugEnabled()) { + log.debug("Propriete: '" + key + "' = " + value); + } + if (key.startsWith(MODEL)) { // model tag value - Matcher matcher = modelTagValuePattern.matcher(key); + boolean loaded = loadModelTagvalue(model, key, value); - if (!matcher.find()) { - if (log.isWarnEnabled()) { - log.warn("Invalid model tag value [" + key + "] : only tagvalue or tagValue is allowed on model in properties"); - } - continue; - } - String tag = matcher.group(2); - ObjectModelImpl modelImpl = (ObjectModelImpl) model; - if (tag.equals(JavaGeneratorUtil.TAG_VERSION)) { + if (loaded) { - // push directly the version in the model version - // property - modelImpl.setVersion(value); + numberImportedTagValues++; } - if (isVerbose()) { - log.info("import model tag value " + key + " --> " + tag + " = " + value); - } - modelImpl.addTagValue(tag, value); - numberImportedTagValues++; continue; } - // element tag value - Matcher matcher = propertiesPattern.matcher(key); + // element tag value or stereotype - if (log.isDebugEnabled()) { - log.debug("Propriete: '" + key + "'"); - } + if (key.contains(STEREOTYPE)) { - if (!matcher.find()) { + // stereotype property - // try with the stereotype - matcher = propertyStereotypePattern.matcher(key); + boolean loaded = loadStereotype(model, key, value); - if (!matcher.find()) { + if (loaded) { + numberImportedTagValues++; + } - if (log.isWarnEnabled()) { - log.warn("Invalid tag value [" + key + "] : syntax is not correct."); - } - continue; - } + continue; + } - String fqn = matcher.group(1); - fqn = StringUtil.substring(fqn, 0, -1); // remove ended - // . - // target is class, attribute or operation - String target = matcher.group(2); - String targetName = matcher.group(3); - // type is stereotype or tagvalue - String type = matcher.group(4).toLowerCase(); + // tag value property - String tag; + boolean loaded = loadTagValue(model, key, value); - if (STEREOTYPE.equals(type)) { - - // using a stereotype means nothing after the type - tag = null; - } else { - tag = matcher.group(5); + if (loaded) { + numberImportedTagValues++; } + } + if (log.isInfoEnabled()) { + log.info(numberImportedTagValues + " tag values were succesfull imported from " + propFile); + } + int nbFailed = prop.size() - numberImportedTagValues; + if (nbFailed > 0 && isVerbose()) { + log.info(nbFailed + " tag values failed to be imported from " + propFile); + } + return prop; + } - if (log.isDebugEnabled()) { - log.debug("Propriete: '" + key + "' => " - + "fqn:" + fqn + " target:" + target - + " targetName:" + targetName - + " type:" + type + " tag:" + tag); + public boolean loadModelTagvalue(ObjectModel model, String key, String value) { + Matcher matcher = modelTagValuePattern.matcher(key); + + if (!matcher.find()) { + if (log.isWarnEnabled()) { + log.warn("Invalid model tag value [" + key + "] : only tagvalue or tagValue is allowed on model in properties"); } + return false; + } + String tag = matcher.group(2); + ObjectModelImpl modelImpl = (ObjectModelImpl) model; + if (tag.equals(EugeneTagValues.TAG_VERSION)) { - ObjectModelClassifier omc = model.getClassifier(fqn); - if (omc == null) { - if (log.isWarnEnabled()) { - log.warn("Invalid tag value [" + key + - "] : Could not find classifier for " + fqn); - } - continue; + // push directly the version in the model version + // property + modelImpl.setVersion(value); + } + if (isVerbose()) { + log.info("import model tag value " + key + " --> " + tag + " = " + value); + } + modelImpl.addTagValue(tag, value); + return true; + } + + public boolean loadStereotype(ObjectModel model, String key, String value) { + Matcher matcher = stereotypePattern.matcher(key); + + if (!matcher.find()) { + + if (log.isWarnEnabled()) { + log.warn("Invalid stereotype [" + key + "] : syntax is not correct."); } + return false; + } - //todo tchemit 2010-11-25 : what does it mean ? every thing extends ObjectModelClassifierImpl - if (!(omc instanceof ObjectModelClassifierImpl)) { - // TODO il faudra avoir des methodes d'acces en Set sur l'interface pour eviter ce message + String fqn = matcher.group(1); + fqn = StringUtil.substring(fqn, 0, -1); // remove ended + // . + // target is class, attribute or operation + String target = matcher.group(2); + String targetName = matcher.group(3); + + // type is stereotype or tagvalue + String type = matcher.group(4).toLowerCase(); + + if (log.isDebugEnabled()) { + log.debug("Propriete: '" + key + "' => " + + "fqn:" + fqn + " target:" + target + + " targetName:" + targetName + + " type:" + type); + } + + ObjectModelClassifier omc = getClassifier(model, STEREOTYPE, key, fqn); + if (omc == null) { + return false; + } + + List<ObjectModelElement> elems = getObjectElements(omc, STEREOTYPE, key, fqn, target, targetName); + + if (elems == null) { + return false; + } + + for (ObjectModelElement elem1 : elems) { + if (elem1 == null) { if (log.isWarnEnabled()) { - log.warn("Can't add properties to model, " + - "it's not an " + - "ObjectModelClassifierImpl : " + - omc.getQualifiedName()); + log.warn("Invalid stereotype [" + key + "] : Element '" + targetName + "' of type '" + target + "' on classifier '" + fqn + "' is null."); } continue; } + ObjectModelElementImpl elem = (ObjectModelElementImpl) elem1; - List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>(); - if (CLASS.equals(target)) { - elems.add(omc); - } else if (ATTRIBUTE.equals(target)) { + // pour les stereotypes + ObjectModelImplRef stereotype = new ObjectModelImplRef(); + stereotype.setName(value); + elem.addStereotype(stereotype); + } - ObjectModelAttribute attr = - getAttribute((ObjectModelClass) omc, targetName); - elems.add(attr); + if (isVerbose()) { + log.info("import stereotype " + key + " --> " + fqn + ":" + target + ":" + targetName + ":" + type + " = " + value); + } - } else if (OPERATION.equals(target)) { - elems.addAll(omc.getOperations(targetName)); + return true; + } + + private boolean loadTagValue(ObjectModel model, String key, String value) { + Matcher matcher = propertiesPattern.matcher(key); + + if (!matcher.find()) { + + if (log.isWarnEnabled()) { + log.warn("Invalid tag value [" + key + "] : syntax is not correct."); } + return false; + } - if (elems.isEmpty()) { - if (log.isWarnEnabled()) { - log.warn("Invalid tag value [" + key + "] : Could not find any element '" + targetName + "' of type '" + target + "' on classifier '" + fqn + "'."); - } + String fqn = matcher.group(1); + fqn = StringUtil.substring(fqn, 0, -1); // remove ended + // . + // target is class, attribute or operation + String target = matcher.group(2); + String targetName = matcher.group(3); + // type is stereotype or tagvalue + String type = matcher.group(4).toLowerCase(); + + String tag = matcher.group(5); + + if (log.isDebugEnabled()) { + log.debug("Propriete: '" + key + "' => " + + "fqn:" + fqn + " target:" + target + + " targetName:" + targetName + + " type:" + type + " tag:" + tag); + } + + ObjectModelClassifier omc = getClassifier(model, TAGVALUE, key, fqn); + if (omc == null) { + return false; + } + + List<ObjectModelElement> elements = + getObjectElements(omc, TAGVALUE, key, fqn, target, targetName); + + if (elements == null) { + return false; + } + + for (ObjectModelElement element : elements) { + + if (log.isDebugEnabled()) { + log.debug("add tagValue " + tag + + ", value:" + value + + " to element:" + element); } - for (Object elem1 : elems) { - if (elem1 == null) { - if (log.isWarnEnabled()) { - log.warn("Invalid tag value [" + key + "] : Element '" + targetName + "' of type '" + target + "' on classifier '" + fqn + "' is null."); - } - continue; - } - ObjectModelElementImpl elem = - (ObjectModelElementImpl) elem1; - if (STEREOTYPE.equals(type)) { - // pour les stereotypes - ObjectModelImplRef stereotype = new ObjectModelImplRef(); - stereotype.setName(value); - elem.addStereotype(stereotype); - continue; - } + ((ObjectModelElementImpl) element).addTagValue(tag, value); - if (TAGVALUE.equals(type)) { - // pour les tagvalues - ObjectModelImplTagValue tagvalue = - new ObjectModelImplTagValue(); - tagvalue.setName(tag); - tagvalue.setValue(value); - if (log.isDebugEnabled()) { - log.debug("tagValue:" + tagvalue - + ", tag:" + tag - + ", value:" + value - + ", element:" + elem); - } - elem.addTagValue(tagvalue); + } + if (isVerbose()) { + log.info("import tag value " + key + " --> " + fqn + ":" + target + ":" + targetName + ":" + type + ":" + tag + " = " + value); + } + return true; + } - } + protected ObjectModelClassifier getClassifier(ObjectModel model, String type, String key, String fqn) { + ObjectModelClassifier omc = model.getClassifier(fqn); + if (omc == null) { + if (log.isWarnEnabled()) { + log.warn("Invalid " + type + " [" + key + + "] : Could not find classifier for " + fqn); } - if (isVerbose()) { - log.info("import tag value " + key + " --> " + fqn + ":" + target + ":" + targetName + ":" + type + ":" + tag+" = " + value); + return null; + } + + //todo tchemit 2010-11-25 : what does it mean ? every thing extends ObjectModelClassifierImpl + if (!(omc instanceof ObjectModelClassifierImpl)) { + // TODO il faudra avoir des methodes d'acces en Set sur l'interface pour eviter ce message + if (log.isWarnEnabled()) { + log.warn("Can't add properties to model, " + + "it's not an " + + "ObjectModelClassifierImpl : " + + omc.getQualifiedName()); } - numberImportedTagValues++; + return null; } - if (log.isInfoEnabled()) { - log.info(numberImportedTagValues + " tag values were succesfull imported from " + propFile); + return omc; + } + + protected List<ObjectModelElement> getObjectElements(ObjectModelClassifier omc, String type, String key, String fqn, String target, String targetName) { + List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>(); + if (CLASS.equals(target)) { + elems.add(omc); + } else if (ATTRIBUTE.equals(target)) { + + ObjectModelAttribute attr = + getAttribute((ObjectModelClass) omc, targetName); + elems.add(attr); + + } else if (OPERATION.equals(target)) { + elems.addAll(omc.getOperations(targetName)); } - int nbFailed = prop.size() - numberImportedTagValues; - if (nbFailed > 0 && isVerbose()) { - log.info(nbFailed + " tag values failed to be imported from " + propFile); + + if (elems.isEmpty()) { + if (log.isWarnEnabled()) { + log.warn("Invalid " + type + " [" + key + "] : Could not find any element '" + targetName + "' of type '" + target + "' on classifier '" + fqn + "'."); + } + return null; } - return prop; + + Iterator<ObjectModelElement> itr = elems.iterator(); + while (itr.hasNext()) { + ObjectModelElement element = itr.next(); + if (element == null) { + if (log.isWarnEnabled()) { + log.warn("Invalid " + type + " [" + key + "] : Element '" + targetName + "' of type '" + target + "' on classifier '" + fqn + "' is null."); + } + itr.remove(); + } + } + + return elems; } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -36,20 +36,14 @@ import static org.junit.Assert.assertEquals; -/** - * - * @author fdesbois - */ +/** @author fdesbois */ public class GeneratorUtilTest { private static Log log = LogFactory.getLog(GeneratorUtilTest.class); - public GeneratorUtilTest() { - } - @Test public void testGetOperationParametersListName() { - log.info("getOperationParametersListName"); + log.debug("getOperationParametersListName"); ObjectModelOperationImpl op = new ObjectModelOperationImpl(); @@ -76,7 +70,7 @@ @Test public void testGetOperationParametersListDeclaration() { - log.info("getOperationParametersListDeclaration"); + log.debug("getOperationParametersListDeclaration"); ObjectModelOperationImpl op = new ObjectModelOperationImpl(); @@ -104,12 +98,10 @@ } - /** - * Test of getSimpleName method, of class GeneratorUtil. - */ + /** Test of getSimpleName method, of class GeneratorUtil. */ @Test public void testGetSimpleName() { - log.info("getSimpleName"); + log.debug("getSimpleName"); String str = "List"; String expResult = "List"; @@ -142,7 +134,7 @@ assertEquals(expResult, result); str = "java.util.Set<java.util.Collection<java.util.Collection<java.util.Collection" + - "<java.lang.String>>>>"; + "<java.lang.String>>>>"; expResult = "Set<Collection<Collection<Collection<String>>>>"; result = GeneratorUtil.getSimpleName(str); log.info(str + " -> " + result); @@ -209,7 +201,7 @@ */ @Test public void testGetSimpleNameAndRemoveGenericsDefinition() { - log.info("getSimpleName"); + log.debug("getSimpleName"); String str = "List"; String expResult = "List"; @@ -242,7 +234,7 @@ assertEquals(expResult, result); str = "java.util.Set<java.util.Collection<java.util.Collection<java.util.Collection" + - "<java.lang.String>>>>"; + "<java.lang.String>>>>"; expResult = "Set<Collection<Collection<Collection<String>>>>"; result = GeneratorUtil.getSimpleName(str, true); log.info(str + " -> " + result); @@ -304,12 +296,10 @@ } - /** - * Test of removeGenericDefinition method, of class GeneratorUtil. - */ + /** Test of removeGenericDefinition method, of class GeneratorUtil. */ @Test public void testRemoveGenericDefinition() { - log.info("removeGenericDefinition"); + log.debug("removeGenericDefinition"); String str = "List"; String expResult = "List"; @@ -415,7 +405,7 @@ assertEquals(2, results.size()); str = "java.util.Set<java.util.Collection<java.util.Collection<java.util.Collection" + - "<java.lang.String>>>>"; + "<java.lang.String>>>>"; results = GeneratorUtil.getTypesList(str); log.info(str + " -> " + results); assertEquals(3, results.size()); @@ -439,12 +429,12 @@ results = GeneratorUtil.getTypesList(str); log.info(str + " -> " + results); assertEquals(4, results.size()); - + str = "java.util.List<java.util.Map<java.util.Date, java.lang.Integer>>"; results = GeneratorUtil.getTypesList(str); log.info(str + " -> " + results); assertEquals(4, results.size()); - + str = "java.util.TreeMap<java.util.ArrayList<java.util.Date>, java.util.SortedSet<java.lang.Number, java.lang.Double>>"; results = GeneratorUtil.getTypesList(str); log.info(str + " -> " + results); Added: trunk/eugene/src/test/java/org/nuiton/eugene/TestHelper.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/TestHelper.java (rev 0) +++ trunk/eugene/src/test/java/org/nuiton/eugene/TestHelper.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -0,0 +1,69 @@ +/* + * #%L + * EUGene :: EUGene + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2004 - 2010 CodeLutin + * %% + * This program 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 3 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +package org.nuiton.eugene; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Ignore; + +import java.io.File; + +/** + * Helper for all eugene tests. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2.1 + */ +@Ignore +// this is not a test :) +public class TestHelper { + + private static final Log log = LogFactory.getLog(TestHelper.class); + + protected static File testBasedir; + + protected static File targetdir; + + protected static File dirDatabase; + + public static File getTestWorkdir() { + if (testBasedir == null) { + String base = System.getProperty("java.io.tmpdir"); + if (base == null || base.isEmpty()) { + base = new File("").getAbsolutePath(); + } + testBasedir = new File(base); + log.info("basedir for test " + testBasedir); + } + return testBasedir; + } + + public static File getTestBasedir(Class<?> testClass) { + File dir = getTestWorkdir(); + File result = new File(dir, testClass.getName()); + return result; + } + +} Property changes on: trunk/eugene/src/test/java/org/nuiton/eugene/TestHelper.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerExtensionTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerExtensionTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerExtensionTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,48 +25,35 @@ package org.nuiton.eugene.java; -import java.util.List; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Test; -import static org.junit.Assert.*; import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl; import org.nuiton.eugene.models.object.xml.ObjectModelImpl; +import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + + /** * ImportsManagerExtensionTest - * + * <p/> * Created: 2 nov. 2009 * * @author fdesbois * @version $Revision$ - * - * Mise a jour: $Date$ - * par : */ + * <p/> + * Mise a jour: $Date$ + * par : + */ public class ImportsManagerExtensionTest { - public ImportsManagerExtensionTest() { - } - @BeforeClass - public static void setUpClass() throws Exception { - } + private static final Log log = + LogFactory.getLog(ImportsManagerExtensionTest.class); - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - /** * Test of getManager method, of class ImportsManagerExtension. * Prerequisite : Existing ObjectModel containing a classifier @@ -75,7 +62,7 @@ */ @Test public void testGetManager() { - System.out.println("getManager"); + log.debug("getManager"); ImportsManagerExtension managers = new ImportsManagerExtension(); @@ -101,7 +88,7 @@ */ @Test public void testGetImports() { - System.out.println("getImports"); + log.debug("getImports"); ImportsManagerExtension managers = new ImportsManagerExtension(); Modified: trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/java/ImportsManagerTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,87 +25,87 @@ package org.nuiton.eugene.java; +import junit.framework.TestCase; + import java.io.Serializable; import java.util.List; -import junit.framework.TestCase; - public class ImportsManagerTest extends TestCase { - private ImportsManager mgr; + private ImportsManager mgr; - @Override - protected void setUp() throws Exception { - mgr = new ImportsManager(); - } + @Override + protected void setUp() throws Exception { + mgr = new ImportsManager(); + } - public void testAddImport() throws Exception { - assertTrue(mgr.addImport("org.nuiton.eugene.Toto")); - assertTrue(mgr.addImport("org.nuiton.eugene.Toto")); //Repeat to test acceptance - assertTrue(mgr.addImport("org.nuiton.eugene.Tutu")); - assertFalse(mgr.addImport("org.chorem.eugene.Tutu")); //Conflict, package differs + public void testAddImport() throws Exception { + assertTrue(mgr.addImport("org.nuiton.eugene.Toto")); + assertTrue(mgr.addImport("org.nuiton.eugene.Toto")); //Repeat to test acceptance + assertTrue(mgr.addImport("org.nuiton.eugene.Tutu")); + assertFalse(mgr.addImport("org.chorem.eugene.Tutu")); //Conflict, package differs - assertTrue(mgr.addImport("void")); - assertTrue(mgr.addImport("boolean")); - assertTrue(mgr.addImport("Byte")); - assertTrue(mgr.addImport("java.lang.Toto")); - assertFalse(mgr.addImport("java.lang.sub.Toto")); + assertTrue(mgr.addImport("void")); + assertTrue(mgr.addImport("boolean")); + assertTrue(mgr.addImport("Byte")); + assertTrue(mgr.addImport("java.lang.Toto")); + assertFalse(mgr.addImport("java.lang.sub.Toto")); - assertTrue(mgr.addImport(Serializable.class)); - assertFalse(mgr.addImport("org.nuiton.eugene.Serializable")); - } + assertTrue(mgr.addImport(Serializable.class)); + assertFalse(mgr.addImport("org.nuiton.eugene.Serializable")); + } - public void testGetType() throws Exception { - assertEquals("Toto", mgr.getType("org.nuiton.eugene.Toto")); - assertEquals("Toto", mgr.getType("org.nuiton.eugene.Toto")); //Repeat to test acceptance - assertEquals("Tutu", mgr.getType("org.nuiton.eugene.Tutu")); - assertEquals("org.chorem.eugene.Tutu", mgr.getType("org.chorem.eugene.Tutu")); //Conflict, package differs + public void testGetType() throws Exception { + assertEquals("Toto", mgr.getType("org.nuiton.eugene.Toto")); + assertEquals("Toto", mgr.getType("org.nuiton.eugene.Toto")); //Repeat to test acceptance + assertEquals("Tutu", mgr.getType("org.nuiton.eugene.Tutu")); + assertEquals("org.chorem.eugene.Tutu", mgr.getType("org.chorem.eugene.Tutu")); //Conflict, package differs - assertEquals("void", mgr.getType("void")); - assertEquals("boolean", mgr.getType("boolean")); - assertEquals("Byte", mgr.getType("Byte")); - assertEquals("Toto", mgr.getType("java.lang.Toto")); - assertEquals("java.lang.sub.Toto", mgr.getType("java.lang.sub.Toto")); - } + assertEquals("void", mgr.getType("void")); + assertEquals("boolean", mgr.getType("boolean")); + assertEquals("Byte", mgr.getType("Byte")); + assertEquals("Toto", mgr.getType("java.lang.Toto")); + assertEquals("java.lang.sub.Toto", mgr.getType("java.lang.sub.Toto")); + } - public void testGetImports() throws Exception { - assertTrue(mgr.addImport("org.nuiton.eugene.Toto")); - assertTrue(mgr.addImport("org.nuiton.eugene.Tutu")); - assertTrue(mgr.addImport("org.nuiton.eugene.subpackage.Tata")); - List<String> imports = mgr.getImports("org.nuiton.eugene"); - assertEquals(1, imports.size()); - assertEquals("org.nuiton.eugene.subpackage.Tata", imports.get(0)); + public void testGetImports() throws Exception { + assertTrue(mgr.addImport("org.nuiton.eugene.Toto")); + assertTrue(mgr.addImport("org.nuiton.eugene.Tutu")); + assertTrue(mgr.addImport("org.nuiton.eugene.subpackage.Tata")); + List<String> imports = mgr.getImports("org.nuiton.eugene"); + assertEquals(1, imports.size()); + assertEquals("org.nuiton.eugene.subpackage.Tata", imports.get(0)); - imports = mgr.getImports("org.nuiton"); - assertEquals(3, imports.size()); - // Check using alphabetic sort - assertEquals("org.nuiton.eugene.Toto", imports.get(0)); - assertEquals("org.nuiton.eugene.Tutu", imports.get(1)); - assertEquals("org.nuiton.eugene.subpackage.Tata", imports.get(2)); + imports = mgr.getImports("org.nuiton"); + assertEquals(3, imports.size()); + // Check using alphabetic sort + assertEquals("org.nuiton.eugene.Toto", imports.get(0)); + assertEquals("org.nuiton.eugene.Tutu", imports.get(1)); + assertEquals("org.nuiton.eugene.subpackage.Tata", imports.get(2)); - imports = mgr.getImports("org.chorem"); - assertEquals(3, imports.size()); + imports = mgr.getImports("org.chorem"); + assertEquals(3, imports.size()); - imports = mgr.getImports("org.nuiton.eugene.subpackage"); - assertEquals(2, imports.size()); - assertEquals("org.nuiton.eugene.Toto", imports.get(0)); - assertEquals("org.nuiton.eugene.Tutu", imports.get(1)); + imports = mgr.getImports("org.nuiton.eugene.subpackage"); + assertEquals(2, imports.size()); + assertEquals("org.nuiton.eugene.Toto", imports.get(0)); + assertEquals("org.nuiton.eugene.Tutu", imports.get(1)); - assertTrue(mgr.addImport("java.lang.String")); - imports = mgr.getImports("org.nuiton.eugene.subpackage"); - assertEquals(2, imports.size()); - assertEquals("org.nuiton.eugene.Toto", imports.get(0)); - assertEquals("org.nuiton.eugene.Tutu", imports.get(1)); + assertTrue(mgr.addImport("java.lang.String")); + imports = mgr.getImports("org.nuiton.eugene.subpackage"); + assertEquals(2, imports.size()); + assertEquals("org.nuiton.eugene.Toto", imports.get(0)); + assertEquals("org.nuiton.eugene.Tutu", imports.get(1)); - assertTrue(mgr.addImport("void")); - assertTrue(mgr.addImport("boolean")); - assertTrue(mgr.addImport("Byte")); - assertTrue(mgr.addImport("java.lang.Toto")); - assertFalse(mgr.addImport("java.lang.sub.Titi")); // Read as started, import is refused - assertTrue(mgr.addImport("org.nuiton.eugene.Tutu")); //Already present, must not reject - imports = mgr.getImports("org.nuiton.eugene.subpackage"); - assertEquals(2, imports.size()); + assertTrue(mgr.addImport("void")); + assertTrue(mgr.addImport("boolean")); + assertTrue(mgr.addImport("Byte")); + assertTrue(mgr.addImport("java.lang.Toto")); + assertFalse(mgr.addImport("java.lang.sub.Titi")); // Read as started, import is refused + assertTrue(mgr.addImport("org.nuiton.eugene.Tutu")); //Already present, must not reject + imports = mgr.getImports("org.nuiton.eugene.subpackage"); + assertEquals(2, imports.size()); - } + } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,15 +25,11 @@ package org.nuiton.eugene.java; -import java.util.List; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.nuiton.eugene.GeneratorUtilTest; import org.nuiton.eugene.models.object.ObjectModel; -import static org.junit.Assert.*; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelClassifier; @@ -42,47 +38,40 @@ import org.nuiton.eugene.models.object.xml.ObjectModelAttributeImpl; import org.nuiton.eugene.models.object.xml.ObjectModelBuilderTest; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + /** * JavaBuilderTest - * + * <p/> * Created: 29 oct. 2009 * * @author fdesbois * @version $Revision$ - * - * Mise a jour: $Date$ - * par : */ + * <p/> + * Mise a jour: $Date$ + * par : + */ public class JavaBuilderTest { - public JavaBuilderTest() { - } + private static final Log log = LogFactory.getLog(JavaBuilderTest.class); - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - /** * Test of getModel. * No test needed : model created in modelBuilder instanciated in * constructor (ObjectModelBuilder). - * - * @see ObjectModelBuilderTest#testGetModel() + * + * @see ObjectModelBuilderTest#testGetModel() */ @Test public void testGetModel() { - System.out.println("getModel"); + log.debug("getModel"); JavaBuilder builder = new JavaBuilder("TestModel"); @@ -95,11 +84,12 @@ * - Add a simple type to import. * - Add a type to import with generic (List of Category) : two imports are added. * NOTE : Use of ImportsManager addImport() method and GeneratorUtil getTypesList() method. + * * @see GeneratorUtilTest#testGetTypesList() */ @Test public void testAddImport() { - System.out.println("addImport"); + log.debug("addImport"); JavaBuilder builder = new JavaBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); @@ -118,11 +108,12 @@ /** * Test of createClass method, of class JavaBuilder. * No test needed : call of createClass in ObjectModelBuilder + * * @see ObjectModelBuilderTest#testCreateClass() */ @Test public void testCreateClass() { - System.out.println("createClass"); + log.debug("createClass"); JavaBuilder builder = new JavaBuilder("TestModel"); @@ -136,7 +127,7 @@ */ @Test public void testCreateAbstractClass() { - System.out.println("createAbstractClass"); + log.debug("createAbstractClass"); JavaBuilder builder = new JavaBuilder("TestModel"); ObjectModelClass clazz = builder.createAbstractClass("Person", "org.chorem.bonzoms"); @@ -147,11 +138,12 @@ * Test of setSuperClass method, of class JavaBuilder. * Only one superclass can be set. * Check imports on superclass qualified name + * * @see ObjectModelBuilderTest#testAddSuperclass() */ @Test public void testSetSuperClass() { - System.out.println("setSuperClass"); + log.debug("setSuperClass"); JavaBuilder builder = new JavaBuilder("TestModel"); ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms"); @@ -171,22 +163,23 @@ List<String> imports = ext.getImports(clazz); assertEquals(0, imports.size()); } - + /** * Test of addInterface method, of class JavaBuilder. * Check imports on adding interface : imports added on interfaceQualifiedName + * * @see ObjectModelBuilderTest#testAddInterface() */ @Test public void testAddInterface() { - System.out.println("addInterface"); + log.debug("addInterface"); JavaBuilder builder = new JavaBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); String interfaceQualifiedName = "java.io.Serializable"; builder.addInterface(classifier, interfaceQualifiedName); - + // Check imports ImportsManagerExtension ext = builder.getModel().getExtension( ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); @@ -203,13 +196,13 @@ */ @Test public void testAddConstant() { - System.out.println("addConstant"); + log.debug("addConstant"); JavaBuilder builder = new JavaBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelAttribute constant = builder.addConstant(classifier, "GENDER_MALE", "boolean", "true", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); assertTrue(constant.isFinal()); assertTrue(constant.isStatic()); @@ -218,21 +211,22 @@ /** * Test of addAttribute method, of class JavaBuilder. * Check imports on adding attribute : imports added on type and value. + * * @see ObjectModelBuilderTest#testAddAttribute() */ @Test public void testAddAttribute() { - System.out.println("addAttribute"); + log.debug("addAttribute"); JavaBuilder builder = new JavaBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); builder.addAttribute(classifier, "firstName", "java.lang.String", "", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); builder.addAttribute(classifier, "roles", "java.util.List<org.chorem.bonzoms.Role>", - "new ArrayList<Role>()", - ObjectModelModifier.PRIVATE, ObjectModelModifier.STATIC); + "new ArrayList<Role>()", + ObjectModelModifier.PRIVATE, ObjectModelModifier.STATIC); // ANO#474 : manage manually imports for defaultValue builder.addImport(classifier, "java.util.ArrayList"); @@ -242,7 +236,7 @@ ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); List<String> imports = ext.getImports(classifier); - // no imports for org.chorem.bonzoms.Role and java.lang.String + // no imports for org.chorem.bonzoms.Role and java.lang.String assertEquals(2, imports.size()); assertTrue(imports.contains("java.util.ArrayList")); assertTrue(imports.contains("java.util.List")); @@ -255,11 +249,11 @@ */ @Test public void testAddAttributeObjectModelClassifierObjectModelAttribute() { - System.out.println("addAttribute"); + log.debug("addAttribute"); JavaBuilder builder = new JavaBuilder("modelName"); ObjectModelAttributeImpl attribute = new ObjectModelAttributeImpl(); - attribute.setName("name"); + attribute.setName("name"); attribute.setType("java.lang.String"); attribute.setVisibility("public"); attribute.setStatic(false); @@ -281,7 +275,7 @@ */ @Test public void testAddConstructor() { - System.out.println("addConstructor"); + log.debug("addConstructor"); JavaBuilder builder = new JavaBuilder("modelName"); ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms"); @@ -296,22 +290,23 @@ /** * Test of addOperation method, of class JavaBuilder. * Check imports on adding operation : returnType of the operation + * * @see ObjectModelBuilderTest#testAddOperation() */ @Test public void testAddOperation() { - System.out.println("addOperation"); + log.debug("addOperation"); JavaBuilder builder = new JavaBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation result = builder.addOperation(classifier, - "methodName", "java.util.List<java.lang.String>", ObjectModelModifier.PUBLIC); - + "methodName", "java.util.List<java.lang.String>", ObjectModelModifier.PUBLIC); + result = builder.addOperation(classifier, "addPropertyChangeListener", null, - ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT); + ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT); // Check imports ImportsManagerExtension ext = builder.getModel().getExtension( @@ -325,18 +320,19 @@ /** * Test of addParameter method, of class JavaBuilder. * Check imports on adding parameter : type of the parameter + * * @see ObjectModelBuilderTest#testAddParameter() */ @Test public void testAddParameter() { - System.out.println("addParameter"); + log.debug("addParameter"); JavaBuilder builder = new JavaBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); builder.addParameter(operation, "java.lang.String", "name"); @@ -352,18 +348,19 @@ /** * Test of addException method, of class JavaBuilder. * Check imports on adding exception : exception name + * * @see ObjectModelBuilderTest#testAddException() */ @Test public void testAddException() { - System.out.println("addException"); + log.debug("addException"); JavaBuilder builder = new JavaBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); builder.addException(operation, "java.lang.IllegalArgumentException"); @@ -378,24 +375,25 @@ /** * Test of setOperationBody method, of class JavaBuilder. * No body code for an abstract operation : throw an IllegalArgumentException + * * @see ObjectModelBuilderTest#testSetOperationBody() */ @Test public void testSetOperationBody() { - System.out.println("setOperationBody"); + log.debug("setOperationBody"); JavaBuilder builder = new JavaBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String", - ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT); + ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT); try { builder.setOperationBody(operation, "this.name = name"); } catch (Exception eee) { assertEquals(IllegalArgumentException.class, eee.getClass()); - System.out.println("expected exception : " + eee.getMessage()); + log.debug("expected exception : " + eee.getMessage()); } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,17 +25,16 @@ package org.nuiton.eugene.models.object; -import java.io.File; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.Collection; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import org.nuiton.util.Resource; +import java.io.File; +import java.net.URL; +import java.util.Collection; + /** * ModelMergeTest. * <p/> @@ -46,48 +45,46 @@ */ public class ModelMergeTest { - /** - * Logger - */ + /** Logger. */ private static final Log log = LogFactory.getLog(ModelMergeTest.class); @Test - public void testMerge1() throws URISyntaxException { + public void testMerge1() throws Exception { parcourirModel(genModel(1), 4); } @Test - public void testMerge2() throws URISyntaxException { + public void testMerge2() throws Exception { parcourirModel(genModel(2), 4); } @Test - public void testMerge3() throws URISyntaxException { + public void testMerge3() throws Exception { parcourirModel(genModel(3), 4); } @Test - public void testMerge4() throws URISyntaxException { + public void testMerge4() throws Exception { parcourirModel(genModel(4), 4); } @Test - public void testMerge5() throws URISyntaxException { + public void testMerge5() throws Exception { parcourirModel(genModel(5), 4); } @Test - public void testMerge6() throws URISyntaxException { + public void testMerge6() throws Exception { parcourirModel(genModel(6), 4); } - protected ObjectModel genModel(int num) throws URISyntaxException { + protected ObjectModel genModel(int num) throws Exception { if (log.isDebugEnabled()) { log.debug("\n\n============================================\n\t\ttestMerge" + num + "\n============================================"); } // ObjectModelGenerator generator = new ObjectModelGenerator(); File[] files = new File[num]; - for (int j = 1; j < (num + 1); j++) { + for (int j = 1; j < num + 1; j++) { URL url = Resource.getURL("models/objectmodel/security" + j + ".objectmodel"); files[j - 1] = new File(url.toURI()); } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,11 +25,7 @@ package org.nuiton.eugene.models.object; -import java.util.ArrayList; -import java.util.List; - import junit.framework.Assert; - import org.junit.Test; import org.nuiton.eugene.Template; import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl; @@ -37,27 +33,28 @@ /** * Test des fonctions de ObjectModelGenerator. - * + * * @author chatellier * @version $Revision$ - * - * Last update : $Date$ - * By : */ + * <p/> + * Last update : $Date$ + * By : + */ public class ObjectModelGeneratorTest { @Test public void testCanGenerate() { - + ObjectModelGenerator generator = new ObjectModelGenerator(); - + // test with null generated list Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl())); Assert.assertTrue(generator.canGenerateElement(new ObjectModelClassImpl())); - + // List<String> generatedPackages = new ArrayList<String>(); // generatedPackages.add("org.nuiton.eugene"); - - generator.setProperty(Template.PROP_GENERATED_PACKAGES , "org.nuiton.eugene"); + + generator.setProperty(Template.PROP_GENERATED_PACKAGES, "org.nuiton.eugene"); // generator.setGeneratedPackages(generatedPackages); // Still true @@ -65,41 +62,41 @@ // become false boolean b = generator.canGenerateElement(new ObjectModelClassImpl()); Assert.assertFalse(b); - + ObjectModelClassImpl testClass = new ObjectModelClassImpl(); testClass.setPackage("org.nuiton.eugene"); Assert.assertTrue(generator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton"); Assert.assertFalse(generator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton.eugene.entities"); Assert.assertTrue(generator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton.eugene2"); Assert.assertFalse(generator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton.eugene2.entities"); Assert.assertFalse(generator.canGenerateElement(testClass)); - + // test avec les generators recursifs // sans faire de set sur le fils ObjectModelGenerator childGenerator = new ObjectModelGenerator(generator); - + testClass.setPackage("org.nuiton.eugene"); Assert.assertTrue(childGenerator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton"); Assert.assertFalse(childGenerator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton.eugene.entities"); Assert.assertTrue(childGenerator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton.eugene2"); Assert.assertFalse(childGenerator.canGenerateElement(testClass)); - + testClass.setPackage("org.nuiton.eugene2.entities"); Assert.assertFalse(childGenerator.canGenerateElement(testClass)); - + } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,47 +25,54 @@ package org.nuiton.eugene.models.object; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.eugene.TestHelper; +import org.nuiton.util.FileUtil; +import org.nuiton.util.Resource; +import org.nuiton.util.ResourceResolver; -import java.util.List; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.util.List; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.nuiton.util.Resource; -import org.nuiton.util.ResourceResolver; - /** * Test de la feuille de style "xmi1.2ToObjectModel.xsl" * sur l'exemple isis-fish.xmi * * @author chatellier * @version $Revision$ - * - * Last update : $Date$ - * By : */ + * <p/> + * Last update : $Date$ + * By : + */ public class XMI12ToObjectModelTest { - protected File destinationDirectory; + protected static File destinationDirectory; - @Before - public void setUp() { - destinationDirectory = new File("target", "xmi"); - destinationDirectory.mkdirs(); + @BeforeClass + public static void beforeTest() throws IOException { + destinationDirectory = TestHelper.getTestBasedir(XMI12ToObjectModelTest.class); + FileUtil.createDirectoryIfNecessary(destinationDirectory); } +// @Before +// public void setUp() { +// destinationDirectory = new File("target", "xmi"); +// destinationDirectory.mkdirs(); +// } + /** * Apply XSLT Transformation. - * + * * @param xmiFile * @param modelFile * @return transformed file @@ -96,11 +103,12 @@ /** * Load model into memory. - * + * * @param modelFile * @return object model + * @throws IOException */ - protected ObjectModel loadModel(File modelFile) { + protected ObjectModel loadModel(File modelFile) throws IOException { // ObjectModelGenerator generator = new ObjectModelGenerator(); ObjectModelReader reader = new ObjectModelReader(); ObjectModel model = reader.read(modelFile); @@ -114,7 +122,7 @@ /** * Apply XSL stylesheet on a topcased model. * And make test on it. - * + * * @throws Exception */ @Test @@ -135,7 +143,7 @@ /** * Apply XSL stylesheet on a topcased model. * And make test on it. - * + * * @throws Exception */ @Test @@ -147,9 +155,9 @@ File objectModelFile = transformXMI(xmiFile, "topiatest.objectmodel"); ObjectModel model = loadModel(objectModelFile); - + // Test for model version - Assert.assertEquals("1.2",model.getVersion()); + Assert.assertEquals("1.2", model.getVersion()); Assert.assertNotNull(model); Assert.assertEquals("TopiaTest", model.getName()); @@ -176,7 +184,7 @@ /** * Apply XSL stylesheet on an Argouml model. * And make test on it. - * + * * @throws Exception */ @Test @@ -201,7 +209,7 @@ } } - Assert.assertEquals(4,nbDependencies); + Assert.assertEquals(4, nbDependencies); } /** @@ -227,7 +235,7 @@ for (ObjectModelEnumeration enumeration : model.getEnumerations()) { // 1 seule énumeration avec 3 literals et 2 opérations Assert.assertNotNull(enumeration.getQualifiedName()); - Assert.assertEquals(3,enumeration.getLiterals().size()); + Assert.assertEquals(3, enumeration.getLiterals().size()); Assert.assertEquals(2, enumeration.getOperations().size()); } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,11 +25,18 @@ package org.nuiton.eugene.models.object; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.eugene.TestHelper; +import org.nuiton.util.FileUtil; +import org.nuiton.util.Resource; +import org.nuiton.util.ResourceResolver; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -38,40 +45,41 @@ import java.util.ArrayList; import java.util.List; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; -import org.junit.Before; -import org.junit.Test; -import org.nuiton.util.Resource; -import org.nuiton.util.ResourceResolver; - /** * Test de la feuille de style "xmi2.1ToObjectModel.xsl" * sur l'exemple TestXMI21.uml * * @author chatellier * @version $Revision$ - * - * Last update : $Date$ - * By : */ + * <p/> + * Last update : $Date$ + * By : + */ public class XMI21ToObjectModelTest { - protected File destinationDirectory; + protected static File destinationDirectory; - @Before - public void setUp() { - destinationDirectory = new File("target", "xmi"); - destinationDirectory.mkdirs(); + @BeforeClass + public static void beforeTest() throws IOException { + destinationDirectory = TestHelper.getTestBasedir(XMI21ToObjectModelTest.class); + FileUtil.createDirectoryIfNecessary(destinationDirectory); } +// @Before +// public void setUp() { +// destinationDirectory = new File("target", "xmi"); +// destinationDirectory.mkdirs(); +// } + /** * Apply XSLT Transformation. - * + * * @param xmiFile * @return transformed file * @throws IOException @@ -104,11 +112,11 @@ /** * Load model into memory. - * + * * @param modelFile * @return object model */ - protected ObjectModel loadModel(File modelFile) { + protected ObjectModel loadModel(File modelFile) throws IOException { ObjectModelReader reader = new ObjectModelReader(); ObjectModel model = reader.read(modelFile); return model; @@ -120,12 +128,11 @@ /** * Apply xslt on xmi model, and load it. - * + * * @param modelName model to load - * - * @throws URISyntaxException - * @throws TransformerException - * @throws IOException + * @throws URISyntaxException + * @throws TransformerException + * @throws IOException */ protected ObjectModel xmiToObjectModel(String modelName) throws URISyntaxException, IOException, TransformerException { File xmiFile = new File(Resource.getURL("xmi/2.1/" + modelName + ".uml") @@ -136,11 +143,11 @@ ObjectModel model = loadModel(objectModelFile); return model; } - + /** * Apply XSL stylesheet on a topcased model. * And make test on it. - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -178,7 +185,7 @@ /** * Apply XSL stylesheet on a topcased model. * And make test on it. - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -192,7 +199,7 @@ assertNotNull(model); assertEquals("org::sharengo::s4a::storage::http::vpod", model.getName()); assertEquals(4, model.getClassifiers().size()); - + // ClassB ObjectModelClass clazzVpodMappingDao = model.getClass("daos.VpodMappingDao"); assertNotNull(clazzVpodMappingDao); @@ -204,11 +211,11 @@ opFindByVpodIdParams.addAll(opFindByVpodId.get(0).getParameters()); assertEquals("String", opFindByVpodIdParams.get(0).getType()); } - + /** * Apply XSL stylesheet on a topcased model. * And make test on it. - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -232,7 +239,7 @@ ObjectModelAttribute attrDefinition = clazzLinkEntity.getAttribute("target"); assertNotNull(attrDefinition); assertTrue(attrDefinition.hasStereotype("Embedded")); - + // LinkEntity ObjectModelClass clazzLinkSrv = model.getClass("org.sharengo.utils.container.link.services.LinkSrv"); assertNotNull(clazzLinkSrv); @@ -248,12 +255,12 @@ ObjectModel model = xmiToObjectModel("cmsCore"); assertNotNull(model); - + // There was a problem with sub package ObjectModelClass clazzFacetViewSrv = model.getClass("org.sharengo.cms.core.services.facet.FacetViewSrv"); assertNotNull(clazzFacetViewSrv); assertEquals(11, clazzFacetViewSrv.getOperations().size()); - + // Test attribute type FQN ObjectModelClass clazzContentDefSearchDto = model.getClass("org.sharengo.cms.core.dtos.ContentDefSearchDto"); assertNotNull(clazzContentDefSearchDto); @@ -277,7 +284,7 @@ /** * Apply XSL stylesheet on a topcased model. * And make test on embedded primitive type - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -290,7 +297,7 @@ assertNotNull(model); assertEquals("XMITest21", model.getName()); - + // ClassB ObjectModelClass clazzB = model.getClass("org.nuiton.eugene.test21.ClassB"); assertNotNull(clazzB); @@ -308,13 +315,13 @@ ObjectModelAttribute attrFormula = clazzC.getAttribute("formula"); assertNotNull(attrFormula); assertEquals("org.codelutin.types.Formula", attrFormula.getType()); - + } /** * Apply XSL stylesheet on a topcased model. * And make test on embedded primitive type - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -430,19 +437,19 @@ } private ObjectModelParameter findParameter(ObjectModelOperation op, String name) { - for (ObjectModelParameter param : op.getParameters()) { - if (name.equals(param.getName())) { - return param; - } - } - return null; + for (ObjectModelParameter param : op.getParameters()) { + if (name.equals(param.getName())) { + return param; + } + } + return null; } /** * Apply XSL stylesheet on a topcased model. * And make test on embedded primitive type - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -461,12 +468,12 @@ assertNotNull(strings); assertEquals("String", strings.getType()); assertTrue(strings.isStatic()); - assertEquals("azerty",strings.getDefaultValue()); + assertEquals("azerty", strings.getDefaultValue()); // static operation ObjectModelClass classD = model.getClass("org.nuiton.eugene.test21.ClassD"); assertNotNull(classD); - List<ObjectModelOperation> operations = (List<ObjectModelOperation>)classD.getOperations("getInstance"); + List<ObjectModelOperation> operations = (List<ObjectModelOperation>) classD.getOperations("getInstance"); assertEquals(operations.size(), 1); assertTrue(operations.get(0).isStatic()); } @@ -474,7 +481,7 @@ /** * Apply XSL stylesheet on a topcased model. * And make test on embedded primitive type - * + * * @throws URISyntaxException * @throws IOException * @throws TransformerException @@ -515,10 +522,10 @@ // OuterClass ObjectModelClass outer = model.getClass("org.nuiton.eugene.test21.OuterClass"); - List<ObjectModelClassifier> inners = (List<ObjectModelClassifier>)outer.getInnerClassifiers(); + List<ObjectModelClassifier> inners = (List<ObjectModelClassifier>) outer.getInnerClassifiers(); assertNotNull(inners); assertEquals(inners.size(), 1); - + // InnerClass ObjectModelClass inner = (ObjectModelClass) inners.get(0); assertNotNull(inner); @@ -565,7 +572,7 @@ ObjectModelClass clazzB = model.getClass("org.nuiton.eugene.test21.ClassB"); assertNotNull(clazzB); assertEquals("This is some documentation\non multiple lines !\n\nVery hard to do !", clazzB.getDocumentation()); - + } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtensionTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtensionTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtensionTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -26,45 +26,27 @@ package org.nuiton.eugene.models.object.xml; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.nuiton.eugene.models.object.ObjectModelInterface; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + /** * ExternalCacheExtensionTest - * + * <p/> * Created: 2 nov. 2009 * * @author fdesbois * @version $Revision$ - * - * Mise a jour: $Date$ - * par : */ + */ public class ExternalCacheExtensionTest { - public ExternalCacheExtensionTest() { - } + private static final Log log = + LogFactory.getLog(ExternalCacheExtensionTest.class); - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - /** * Test of getCache method, of class ExternalCacheExtension. * Prerequisite : Existing model @@ -73,7 +55,7 @@ */ @Test public void testGetCache() { - System.out.println("getCache"); + log.debug("getCache"); ObjectModelImpl model = new ObjectModelImpl(); model.setName("TestModel"); @@ -83,12 +65,12 @@ // Creation if not exist ExternalCacheExtension cache = - model.getExtension(ExternalCacheExtension.OBJECTMODEL_EXTENSION, ExternalCacheExtension.class); + model.getExtension(ExternalCacheExtension.OBJECTMODEL_EXTENSION, ExternalCacheExtension.class); ObjectModelInterface interfacez = cache.getCache(refInterface, ObjectModelInterfaceImpl.class); - assertNotNull(interfacez); + assertNotNull(interfacez); ObjectModelInterface interfacez2 = cache.getCache(refInterface, ObjectModelInterfaceImpl.class); @@ -104,8 +86,8 @@ */ @Test public void testAddClassifierToCache() { - System.out.println("addClassifierToCache"); - + log.debug("addClassifierToCache"); + ObjectModelImpl model = new ObjectModelImpl(); model.setName("TestModel"); @@ -115,7 +97,7 @@ ObjectModelClassifierImpl classifier = new ObjectModelInterfaceImpl(); ExternalCacheExtension cache = - model.getExtension(ExternalCacheExtension.OBJECTMODEL_EXTENSION, ExternalCacheExtension.class); + model.getExtension(ExternalCacheExtension.OBJECTMODEL_EXTENSION, ExternalCacheExtension.class); cache.addClassifierToCache(refInterface, classifier); Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -26,48 +26,41 @@ package org.nuiton.eugene.models.object.xml; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Test; +import org.nuiton.eugene.models.object.ObjectModel; +import org.nuiton.eugene.models.object.ObjectModelAssociationClass; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelBuilder; +import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelClassifier; +import org.nuiton.eugene.models.object.ObjectModelModifier; +import org.nuiton.eugene.models.object.ObjectModelOperation; +import org.nuiton.eugene.models.object.ObjectModelParameter; + import java.util.Iterator; import java.util.List; import java.util.Set; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.nuiton.eugene.models.object.*; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + /** * ObjectModelBuilder - * + * <p/> * Created: 3 nov. 2009 * * @author fdesbois * @version $Revision$ - * - * Mise a jour: $Date$ - * par : */ + */ public class ObjectModelBuilderTest { - public ObjectModelBuilderTest() { - } + private static final Log log = + LogFactory.getLog(ObjectModelBuilderTest.class); - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - /** * Test of getModel method, of class ObjectModelBuilder. * Prerequisite : instanciation of ObjectModelBuilder. @@ -75,10 +68,10 @@ */ @Test public void testGetModel() { - System.out.println("getModel"); + log.debug("getModel"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); - + assertNotNull(builder.getModel()); assertEquals("TestModel", builder.getModel().getName()); } @@ -91,17 +84,17 @@ */ @Test public void testAddTagValue() { - System.out.println("addTagValue"); + log.debug("addTagValue"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); builder.addTagValue("fr.ifremer.isisfish.types.Month", - "fr.ifremer.isisfish.types.hibernate.MonthType"); + "fr.ifremer.isisfish.types.hibernate.MonthType"); // model.tagvalue.fr.ifremer.isisfish.types.Month=fr.ifremer.isisfish.types.hibernate.MonthType ObjectModel model = builder.getModel(); assertEquals("fr.ifremer.isisfish.types.hibernate.MonthType", - model.getTagValue("fr.ifremer.isisfish.types.Month")); + model.getTagValue("fr.ifremer.isisfish.types.Month")); // fr.isisfish.entities.Population.attribute.name.tagvalue.pk=topiaId ObjectModelClass clazz = builder.createClass("Population", "fr.isisfish.entities"); @@ -118,7 +111,7 @@ */ @Test public void testCreateClass() { - System.out.println("createClass"); + log.debug("createClass"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); @@ -130,12 +123,10 @@ assertEquals("org.chorem.bonzoms.Person", clazz.getQualifiedName()); } - /** - * Test of createInterface method, of class ObjectModelBuilder. - */ + /** Test of createInterface method, of class ObjectModelBuilder. */ //@Test public void testCreateInterface() { - System.out.println("createInterface"); + log.debug("createInterface"); } /** @@ -145,11 +136,11 @@ */ @Test public void testAddAttributeWithoutDefaultValue() { - System.out.println("addAttribute"); + log.debug("addAttribute"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); - ObjectModelAttribute attribute = builder.addAttribute(classifier, "firstName", "java.lang.String"); + ObjectModelAttribute attribute = builder.addAttribute(classifier, "firstName", "java.lang.String"); assertEquals("", attribute.getDefaultValue()); } @@ -161,13 +152,13 @@ */ @Test public void testAddAttribute() { - System.out.println("addAttribute"); + log.debug("addAttribute"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelAttribute attribute = builder.addAttribute(classifier, "firstName", "java.lang.String", "", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); assertNotNull(attribute); assertEquals("firstName", attribute.getName()); @@ -178,8 +169,8 @@ assertFalse(attribute.isStatic()); attribute = builder.addAttribute(classifier, "roles", "java.lang.List<org.chorem.bonzoms.Role>", - "new java.lang.ArrayList<org.chorem.bonzoms.Role>()", - ObjectModelModifier.PRIVATE, ObjectModelModifier.STATIC); + "new java.lang.ArrayList<org.chorem.bonzoms.Role>()", + ObjectModelModifier.PRIVATE, ObjectModelModifier.STATIC); assertEquals("new java.lang.ArrayList<org.chorem.bonzoms.Role>()", attribute.getDefaultValue()); assertTrue(attribute.isStatic()); @@ -193,13 +184,13 @@ */ @Test public void testAddOperation() { - System.out.println("addOperation"); + log.debug("addOperation"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation result = builder.addOperation(classifier, - "methodName", "java.util.List<java.lang.String>", ObjectModelModifier.PUBLIC); + "methodName", "java.util.List<java.lang.String>", ObjectModelModifier.PUBLIC); assertNotNull(result); assertEquals(result.getName(), "methodName"); assertEquals(result.getReturnType(), "java.util.List<java.lang.String>"); @@ -207,7 +198,7 @@ assertFalse(result.isAbstract()); result = builder.addOperation(classifier, "addPropertyChangeListener", "void", - ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT); + ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT); assertTrue(result.isAbstract()); } @@ -218,14 +209,14 @@ */ @Test public void testSetOperationBody() { - System.out.println("setOperationBody"); + log.debug("setOperationBody"); ObjectModelBuilder builder = new ObjectModelBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); builder.setOperationBody(operation, "this.name = name"); assertNotNull(operation.getBodyCode()); @@ -240,7 +231,7 @@ */ @Test public void testAddInterface() { - System.out.println("addInterface"); + log.debug("addInterface"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); @@ -261,7 +252,7 @@ */ @Test public void testAddSuperclass() { - System.out.println("addSuperclass"); + log.debug("addSuperclass"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms"); @@ -279,21 +270,21 @@ */ @Test public void testAddParameter() { - System.out.println("addParameter"); + log.debug("addParameter"); ObjectModelBuilder builder = new ObjectModelBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); ObjectModelParameter param = builder.addParameter(operation, "java.lang.String", "name"); assertNotNull(param); assertEquals(param.getName(), "name"); assertEquals(param.getType(), "java.lang.String"); - List<ObjectModelParameter> listParams = (List<ObjectModelParameter>)operation.getParameters(); + List<ObjectModelParameter> listParams = (List<ObjectModelParameter>) operation.getParameters(); ObjectModelParameter param1 = listParams.get(0); assertEquals(param1, param); } @@ -305,14 +296,14 @@ */ @Test public void testAddException() { - System.out.println("addException"); + log.debug("addException"); ObjectModelBuilder builder = new ObjectModelBuilder("modelName"); ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String", - ObjectModelModifier.PUBLIC); + ObjectModelModifier.PUBLIC); builder.addException(operation, "java.lang.IllegalArgumentException"); Set<String> exceptions = operation.getExceptions(); @@ -323,12 +314,10 @@ assertEquals(it.next(), "java.lang.IllegalArgumentException"); } - /** - * Test of setDocumentation method, of class ObjectModelBuilder. - */ + /** Test of setDocumentation method, of class ObjectModelBuilder. */ //@Test public void testSetDocumentation() { - System.out.println("setDocumentation"); + log.debug("setDocumentation"); } /** @@ -338,7 +327,7 @@ */ @Test public void testAddAssociation() { - System.out.println("addAssociation"); + log.debug("addAssociation"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); @@ -347,7 +336,7 @@ ObjectModelClass classB = builder.createClass("Vote", "org.chorem.pollen.business.persistence"); ObjectModelAttribute assoc = builder.addAssociation(classA, classB, "poll", 1, 1, - ObjectModelModifier.COMPOSITE, ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); + ObjectModelModifier.COMPOSITE, ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); assertNotNull(assoc); assertTrue(assoc.isNavigable()); @@ -368,7 +357,7 @@ */ @Test public void testAddReverseAssociation() { - System.out.println("addReverseAssociation"); + log.debug("addReverseAssociation"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); @@ -377,7 +366,7 @@ ObjectModelClass classB = builder.createClass("Vote", "org.chorem.pollen.business.persistence"); ObjectModelAttribute assocA = builder.addAssociation(classA, classB, "poll", 1, 1, - ObjectModelModifier.COMPOSITE, ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); + ObjectModelModifier.COMPOSITE, ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); ObjectModelAttribute assocB = builder.addReverseAssociation(assocA, "vote", 0, -1); @@ -393,8 +382,8 @@ */ @Test public void testCreateAssociationClass() { - System.out.println("createAssociationClass"); - + log.debug("createAssociationClass"); + ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); ObjectModelClass classA = builder.createClass("Vote", "org.chorem.pollen.business.persistence"); @@ -402,13 +391,13 @@ ObjectModelClass classB = builder.createClass("Choice", "org.chorem.pollen.business.persistence"); ObjectModelAttribute assocA = builder.addAssociation(classA, classB, "vote", 0, -1, - ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); + ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); ObjectModelAttribute assocB = builder.addReverseAssociation(assocA, "choice", 1, -1, - ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); + ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED); ObjectModelAssociationClass assocClass = builder.createAssociationClass("VoteToChoice", - "org.chorem.pollen.business.persistence", assocA, assocB); + "org.chorem.pollen.business.persistence", assocA, assocB); List<ObjectModelClassifier> classifiers = assocClass.getParticipantsClassifiers(); @@ -417,12 +406,10 @@ assertTrue(classifiers.contains(classB)); } - /** - * Test of addStereotype method, of class ObjectModelBuilder. - */ + /** Test of addStereotype method, of class ObjectModelBuilder. */ @Test public void testAddStereotype() { - System.out.println("addStereotype"); + log.debug("addStereotype"); ObjectModelBuilder builder = new ObjectModelBuilder("TestModel"); @@ -433,7 +420,7 @@ builder.addStereotype(classA, "entity"); assertEquals(1, classA.getStereotypes().size()); - + } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -27,41 +27,17 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.nuiton.eugene.java.ImportsManagerExtension; -import static org.junit.Assert.*; -/** - * - * @author fdesbois - */ +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +/** @author fdesbois */ public class ObjectModelImplTest { private static final Log log = LogFactory.getLog(ObjectModelImplTest.class); - public ObjectModelImplTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - // /** // * Test of setName method, of class ObjectModelImpl. // */ @@ -364,8 +340,8 @@ */ @Test public void testGetExtension() { - System.out.println("getExtension"); - + log.debug("getExtension"); + ObjectModelImpl model = new ObjectModelImpl(); model.setName("TestModel"); Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelDTDTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelDTDTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelDTDTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,16 +25,6 @@ package org.nuiton.eugene.models.state; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - import org.junit.Test; import org.nuiton.util.Resource; import org.xml.sax.EntityResolver; @@ -43,53 +33,62 @@ import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; + /** * StateModelTest.java * * @author chatellier * @version $Revision$ - * <p/> - * Last update : $Date$ - * By : */ + * <p/> + * Last update : $Date$ + * By : + */ public class StateModelDTDTest { /** * Test la validation des DTD sur les modeles XML. - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - * @throws URISyntaxException - * - * FIXME this test doesn't valid anything + * + * @throws SAXException + * @throws ParserConfigurationException + * @throws IOException + * @throws URISyntaxException FIXME this test doesn't valid anything */ @Test public void testCorrectStateModel() throws ParserConfigurationException, SAXException, IOException, URISyntaxException { - + File[] testFiles = { new File(Resource.getURL("models/statemodel/project.statemodel").toURI()), new File(Resource.getURL("models/statemodel/contact.statemodel").toURI()) }; - for( File file : testFiles) { - SAXParserFactory factory = SAXParserFactory.newInstance(); + for (File file : testFiles) { + SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(true); factory.setNamespaceAware(true); SAXParser parser = factory.newSAXParser(); // --- Set Input source InputSource source = new InputSource(new FileInputStream(file)); - + // --- parse XMLReader reader = parser.getXMLReader(); reader.setContentHandler(new DefaultHandler()); reader.setErrorHandler(new DefaultHandler()); - reader.setEntityResolver( new EntityResolver() { + reader.setEntityResolver(new EntityResolver() { @Override public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { - + String dtd = systemId.substring(systemId.lastIndexOf("/")); - + URL url = Resource.getURL("dtd/" + dtd); InputSource source; try { @@ -97,11 +96,11 @@ } catch (URISyntaxException e) { throw new SAXException(e); } - + return source; } }); - reader.parse(source); + reader.parse(source); } } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java 2010-11-28 01:01:44 UTC (rev 1010) +++ trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java 2010-11-28 11:22:01 UTC (rev 1011) @@ -25,25 +25,26 @@ package org.nuiton.eugene.models.state; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.util.Resource; + import java.io.File; import java.net.URISyntaxException; import java.util.Collection; import java.util.List; import java.util.Map; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.nuiton.util.Resource; - /** * StateModelTest.java * * @author chatellier * @version $Revision$ - * <p/> - * Last update : $Date$ - * By : */ + * <p/> + * Last update : $Date$ + * By : + */ public class StateModelTest { /** model */