r681 - in branches/1.1.0-Javabuilder: eugene/src/main/java/org/nuiton/eugene/java eugene/src/main/java/org/nuiton/eugene/models/object eugene/src/main/java/org/nuiton/eugene/models/object/xml eugene/src/test/java/org/nuiton/eugene/java eugene/src/test/java/org/nuiton/eugene/models eugene/src/test/java/org/nuiton/eugene/models/object eugene/src/test/java/org/nuiton/eugene/models/object/xml eugene-test
Author: fdesbois Date: 2009-11-02 13:04:19 +0100 (Mon, 02 Nov 2009) New Revision: 681 Added: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/models/object/ branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java Modified: branches/1.1.0-Javabuilder/eugene-test/pom.xml branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java Log: Evol #114 : - Refactor use of extension for ImportsManager - Creation of ImportsManagerExtension to manage importsManager in ObjectModel as an extension - Improve Tests Added: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java (rev 0) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java 2009-11-02 12:04:19 UTC (rev 681) @@ -0,0 +1,77 @@ + +package org.nuiton.eugene.java; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.ImportsManager; +import org.nuiton.eugene.models.object.ObjectModelClassifier; + +/** + * ImportsManagerExtension + * + * Created: 2 nov. 2009 + * + * @author fdesbois + * @version $Revision$ + * + * Extension for ObjectModel to manage imports for all classifiers in the model. + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class ImportsManagerExtension { + + private static final Log log = LogFactory.getLog(ImportsManagerExtension.class); + + /** + * Extension static used to identify ImportsManagerExtension in ObjectModel + */ + public static final String OBJECTMODEL_EXTENSION = "imports"; + + /** + * Map of ImportsManager with key equals to the classifier qualified name associated to + * the ImportsManager + */ + protected Map<String, ImportsManager> managers; + + /** + * Public constructor for ImportsManagerExtension + */ + public ImportsManagerExtension() { + this.managers = new HashMap<String, ImportsManager>(); + } + + /** + * Get the ImportsManager associated to the classifier. If not exist, it will be created. + * @param classifier reference for the ImportsManager + * @return the importsManager associated to the classifier (never null) + */ + public ImportsManager getManager(ObjectModelClassifier classifier) { + ImportsManager manager = this.managers.get(classifier.getQualifiedName()); + if (manager == null) { + manager = new ImportsManager(); + this.managers.put(classifier.getQualifiedName(), manager); + if (log.isDebugEnabled()) { + log.debug("Add new importsManager for : " + classifier.getQualifiedName()); + } + } + return manager; + } + + /** + * Get imports for a classifier. The ImportsManager must be defined in the model. + * @param classifier reference for the imports + * @return a List of String which contains all imports for the classifier + * @throws IllegalArgumentException when classifier is not associated with an existing ImportsManager + */ + public List<String> getImports(ObjectModelClassifier classifier) throws IllegalArgumentException { + ImportsManager manager = this.managers.get(classifier.getQualifiedName()); + if (manager == null) { + throw new IllegalArgumentException("No importsManager defined for '" + classifier.getQualifiedName() + "'"); + } + return manager.getImports(classifier.getPackageName()); + } +} Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-11-02 07:36:12 UTC (rev 680) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-11-02 12:04:19 UTC (rev 681) @@ -1,5 +1,7 @@ package org.nuiton.eugene.java; +import java.util.HashMap; +import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.GeneratorUtil; @@ -25,39 +27,29 @@ protected ObjectModelImpl model; + protected ImportsManagerExtension managers; + + @SuppressWarnings("unchecked") public JavaBuilder(String modelName) { this.model = new ObjectModelImpl(); this.model.setName(modelName); + + // initialize ObjectModel extension for ImportsManager + try { + this.managers = this.model.getExtension( + ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); + } catch (IllegalArgumentException eee) { // "imports" not exist + this.managers = new ImportsManagerExtension(); + this.model.addExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, this.managers); + } } public ObjectModel getModel() { return this.model; } - protected ImportsManager getImportsManager(ObjectModelClassifier classifier) { - ImportsManager manager = model.getExtension(classifier.getQualifiedName(), ImportsManager.class); - if (manager == null) { - manager = new ImportsManager(); - model.addExtension(classifier.getQualifiedName(), manager); - if (log.isDebugEnabled()) { - log.debug("Add new importsManager for : " + classifier.getQualifiedName()); - } - } - return manager; - } - - /*protected void addImportForClassifier(ObjectModelClassifier classifier, String imports) { - ImportsManager manager = getImportsManager(classifier); - manager.addImport(imports); - } - - protected void addImportForClassifier(ObjectModelClassifier classifier, Class<?> imports) { - ImportsManager manager = getImportsManager(classifier); - manager.addImport(imports); - }*/ - public void addImport(ObjectModelClassifier classifier, String imports) { - ImportsManager manager = getImportsManager(classifier); + ImportsManager manager = managers.getManager(classifier); for (String oneType : GeneratorUtil.getTypesList(imports)) { manager.addImport(oneType); if (log.isDebugEnabled()) { Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-11-02 07:36:12 UTC (rev 680) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-11-02 12:04:19 UTC (rev 681) @@ -6,6 +6,7 @@ import java.io.Writer; import java.util.Collection; import java.util.Iterator; +import java.util.Map; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -100,10 +101,11 @@ /*{package <%=packageName%>; }*/ - // potentiel crash si imports non defini - // dans ce cas, probleme de config utilisateur ! obligation de passer par un builder ? - ImportsManager manager = getModel().getExtension(classifier.getQualifiedName(), ImportsManager.class); - for (String imports : manager.getImports(classifier.getPackageName())) { + // potentiel crash si imports non defini -> IllegalArgumentException on "imports" + ImportsManagerExtension managers = getModel().getExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, + ImportsManagerExtension.class); + + for (String imports : managers.getImports(classifier)) { /*{import <%=imports%>; }*/ } Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-11-02 07:36:12 UTC (rev 680) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-11-02 12:04:19 UTC (rev 681) @@ -127,8 +127,10 @@ * @param reference unique corresponding to the extension to get * @param extensionClass class of the extension * @return the object value for the extension - * @throws ClassCastException + * @throws ClassCastException when extensionClass is not valid + * @throws IllegalArgumentException for non existing extension with reference */ - public <O> O getExtension(String reference, Class<O> extensionClass) throws ClassCastException; + public <O> O getExtension(String reference, Class<O> extensionClass) + throws ClassCastException, IllegalArgumentException; } //ObjectModel Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-11-02 07:36:12 UTC (rev 680) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-11-02 12:04:19 UTC (rev 681) @@ -494,13 +494,18 @@ * @param reference unique corresponding to the extension to get * @param extensionClass class of the extension * @return the object value for the extension - * @throws ClassCastException + * @throws ClassCastException when extensionClass is not valid + * @throws IllegalArgumentException for non existing extension with reference */ @Override @SuppressWarnings("unchecked") - public <O> O getExtension(String reference, Class<O> extensionClass) throws ClassCastException { + public <O> O getExtension(String reference, Class<O> extensionClass) + throws ClassCastException, IllegalArgumentException { Object result = extensions.get(reference); - if (result != null && !extensionClass.isAssignableFrom(result.getClass())) { + if (result == null) { + throw new IllegalArgumentException("Extension '" + reference + "' is not defined in model '" + getName() + "'"); + } + if (!extensionClass.isAssignableFrom(result.getClass())) { throw new ClassCastException("Invalid cast for " + extensionClass.getName()); } return (O) result; Modified: branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2009-11-02 07:36:12 UTC (rev 680) +++ branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2009-11-02 12:04:19 UTC (rev 681) @@ -9,8 +9,8 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import org.nuiton.eugene.models.object.ObjectModel; import static org.junit.Assert.*; -import org.nuiton.eugene.ImportsManager; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelClassifier; @@ -58,26 +58,6 @@ } /** - * Test of getImportsManager. - * Prerequisite : existing classifier in model. - * - The manager is associated to a classifier. The manager will be created in the model - * linked to the builder. The manager is empty, no imports is added yet. - */ - @Test - public void testGetImportsManager() { - System.out.println("getImportsManager"); - JavaBuilder builder = new JavaBuilder("TestModel"); - - ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); - - ImportsManager result = builder.getImportsManager(classifier); - assertNotNull(result); - List<String> imports = result.getImports("org.chorem.bonzoms"); - assertNotNull(imports); - assertEquals(imports.size(), 0); - } - - /** * Test of addImport method, of class JavaBuilder. * Prerequisite : existing classifier in model. * - Add a simple type to import. @@ -95,11 +75,13 @@ String imports = "java.beans.PropertyChangeListener"; builder.addImport(classifier, imports); - ImportsManager manager = builder.getImportsManager(classifier); + ObjectModel model = builder.getModel(); + ImportsManagerExtension importsExtension = + model.getExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); String type = "java.util.List<org.chorem.cash.Category>"; // type add : 2 imports added builder.addImport(classifier, type); - assertEquals(manager.getImports("org.chorem.bonzoms").size(), 3); + assertEquals(importsExtension.getImports(classifier).size(), 3); } /** Added: branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java (rev 0) +++ branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelImplTest.java 2009-11-02 12:04:19 UTC (rev 681) @@ -0,0 +1,395 @@ + +package org.nuiton.eugene.models.object.xml; + +import java.util.HashMap; +import java.util.Map; +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.ImportsManager; +import org.nuiton.eugene.java.ImportsManagerExtension; +import static org.junit.Assert.*; + +/** + * + * @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. +// */ +// @Test +// public void testSetName() { +// System.out.println("setName"); +// String name = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.setName(name); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of addClass method, of class ObjectModelImpl. +// */ +// @Test +// public void testAddClass() { +// System.out.println("addClass"); +// ObjectModelClassImpl clazz = null; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.addClass(clazz); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of addAssociationClass method, of class ObjectModelImpl. +// */ +// @Test +// public void testAddAssociationClass() { +// System.out.println("addAssociationClass"); +// ObjectModelAssociationClassImpl clazz = null; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.addAssociationClass(clazz); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of addComment method, of class ObjectModelImpl. +// */ +// @Test +// public void testAddComment() { +// System.out.println("addComment"); +// String comment = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.addComment(comment); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getName method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetName() { +// System.out.println("getName"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// String expResult = ""; +// String result = instance.getName(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getClassifiers method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetClassifiers() { +// System.out.println("getClassifiers"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// Collection expResult = null; +// Collection result = instance.getClassifiers(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getClassifier method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetClassifier() { +// System.out.println("getClassifier"); +// String qualifiedClassifierName = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// ObjectModelClassifier expResult = null; +// ObjectModelClassifier result = instance.getClassifier(qualifiedClassifierName); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getClasses method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetClasses() { +// System.out.println("getClasses"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// Collection expResult = null; +// Collection result = instance.getClasses(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getClass method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetClass() { +// System.out.println("getClass"); +// String qualifiedClassName = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// ObjectModelClass expResult = null; +// ObjectModelClass result = instance.getClass(qualifiedClassName); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of hasClass method, of class ObjectModelImpl. +// */ +// @Test +// public void testHasClass() { +// System.out.println("hasClass"); +// String qualifiedClassName = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// boolean expResult = false; +// boolean result = instance.hasClass(qualifiedClassName); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of addInterface method, of class ObjectModelImpl. +// */ +// @Test +// public void testAddInterface() { +// System.out.println("addInterface"); +// ObjectModelInterfaceImpl interfacez = null; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.addInterface(interfacez); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getInterface method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetInterface() { +// System.out.println("getInterface"); +// String qualifiedInterfaceName = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// ObjectModelInterface expResult = null; +// ObjectModelInterface result = instance.getInterface(qualifiedInterfaceName); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getInterfaces method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetInterfaces() { +// System.out.println("getInterfaces"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// Collection expResult = null; +// Collection result = instance.getInterfaces(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of addEnumeration method, of class ObjectModelImpl. +// */ +// @Test +// public void testAddEnumeration() { +// System.out.println("addEnumeration"); +// ObjectModelEnumerationImpl enumeration = null; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.addEnumeration(enumeration); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getEnumerations method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetEnumerations() { +// System.out.println("getEnumerations"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// Collection expResult = null; +// Collection result = instance.getEnumerations(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getEnumeration method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetEnumeration() { +// System.out.println("getEnumeration"); +// String qualifiedEnumerationName = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// ObjectModelEnumeration expResult = null; +// ObjectModelEnumeration result = instance.getEnumeration(qualifiedEnumerationName); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getComments method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetComments() { +// System.out.println("getComments"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// List expResult = null; +// List result = instance.getComments(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of mergeClassifiers method, of class ObjectModelImpl. +// */ +// @Test +// public void testMergeClassifiers() { +// System.out.println("mergeClassifiers"); +// ObjectModelClassifierImpl initialClazzifier = null; +// ObjectModelClassifierImpl additionalClazzifier = null; +// ObjectModelImpl instance = new ObjectModelImpl(); +// instance.mergeClassifiers(initialClazzifier, additionalClazzifier); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of addTagValue method, of class ObjectModelImpl. +// */ +// @Test +// public void testAddTagValue() { +// System.out.println("addTagValue"); +// ObjectModelImplTagValue tagValue = null; +// ObjectModelImpl instance = new ObjectModelImpl(); +// ObjectModelImplTagValue expResult = null; +// ObjectModelImplTagValue result = instance.addTagValue(tagValue); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getTagValues method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetTagValues() { +// System.out.println("getTagValues"); +// ObjectModelImpl instance = new ObjectModelImpl(); +// Map expResult = null; +// Map result = instance.getTagValues(); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } +// +// /** +// * Test of getTagValue method, of class ObjectModelImpl. +// */ +// @Test +// public void testGetTagValue() { +// System.out.println("getTagValue"); +// String tagValue = ""; +// ObjectModelImpl instance = new ObjectModelImpl(); +// String expResult = ""; +// String result = instance.getTagValue(tagValue); +// assertEquals(expResult, result); +// // TODO review the generated test code and remove the default call to fail. +// fail("The test case is a prototype."); +// } + + /** + * Test of addExtension method, of class ObjectModelImpl. + * - Ajout ImportsManager extension : Map<String, ImportsManager> + */ + @Test + public void testAddExtension() { + System.out.println("addExtension"); + + ObjectModelImpl model = new ObjectModelImpl(); + + ImportsManagerExtension extension = new ImportsManagerExtension(); + + model.addExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, extension); + + ImportsManagerExtension result = + model.getExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); + + assertNotNull(result); + } + + /** + * Test of getExtension method, of class ObjectModelImpl. + * - Get an existing importsManager from the ObjectModel extension "imports" + * - IllegalArgumentException for non existing extension + */ + @Test + public void testGetExtension() { + System.out.println("getExtension"); + + ObjectModelImpl model = new ObjectModelImpl(); + model.setName("TestModel"); + + ObjectModelClassImpl classifier = new ObjectModelClassImpl(); + classifier.setName("Person"); + classifier.setPackage("org.chorem.bonzoms"); + model.addClass(classifier); + + ImportsManagerExtension extension = new ImportsManagerExtension(); + + extension.getManager(classifier); // creation if not exist + + model.addExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, extension); + + ImportsManagerExtension result = + model.getExtension(ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); + + assertNotNull(result.getImports(classifier)); + + try { + String unknownExtension = + model.getExtension("unknown", String.class); + } catch (IllegalArgumentException eee) { + log.debug("unknown extension", eee); + } + } + +} \ No newline at end of file Modified: branches/1.1.0-Javabuilder/eugene-test/pom.xml =================================================================== --- branches/1.1.0-Javabuilder/eugene-test/pom.xml 2009-11-02 07:36:12 UTC (rev 680) +++ branches/1.1.0-Javabuilder/eugene-test/pom.xml 2009-11-02 12:04:19 UTC (rev 681) @@ -27,7 +27,6 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.7</version> <scope>test</scope> </dependency> </dependencies> @@ -173,3 +172,4 @@ </project> +
participants (1)
-
fdesbois@users.nuiton.org