r673 - in branches/1.1.0-Javabuilder: eugene eugene/src/test/java/org/nuiton/eugene eugene/src/test/java/org/nuiton/eugene/java eugene-test/src/test/java/org/nuiton/eugene/java
Author: fdesbois Date: 2009-10-30 18:51:08 +0100 (Fri, 30 Oct 2009) New Revision: 673 Added: branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/ branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java Removed: branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/java/JavaBuilderHelperTest.java Modified: branches/1.1.0-Javabuilder/eugene/ Log: - Add exhaustive JUnit test for JavaBuilder Property changes on: branches/1.1.0-Javabuilder/eugene ___________________________________________________________________ Modified: svn:ignore - maven.log target velocity.log .eclipse lutingenerator.ipr .classpath .project .settings + eugene (1) (org.nuiton.eugene).iml velocity.log .classpath .project .eclipse target lutingenerator.ipr maven.log eugene (1).iml .settings Added: 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 (rev 0) +++ branches/1.1.0-Javabuilder/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2009-10-30 17:51:08 UTC (rev 673) @@ -0,0 +1,420 @@ + +package org.nuiton.eugene.java; + +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 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; +import org.nuiton.eugene.models.object.ObjectModelOperation; +import org.nuiton.eugene.models.object.ObjectModelParameter; +import org.nuiton.eugene.models.object.xml.ObjectModelAttributeImpl; + +/** + * + * @author fdesbois + */ +public class JavaBuilderTest { + + public JavaBuilderTest() { + } + + @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. + * Prerequisite : instanciation of JavaBuilder. + * - ObjectModel created in JavaBuilder constructor. ObjectModel name will be set. + */ + @Test + public void testGetModel() { + System.out.println("getModel"); + + JavaBuilder builder = new JavaBuilder("TestModel"); + assertNotNull(builder.getModel()); + assertEquals(builder.getModel().getName(), "TestModel"); + } + + /** + * 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. + * - 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 org.nuiton.eugene.ImportsManagerTest#testAddImport() + * @see org.nuiton.eugene.GeneratorUtilTest#testGetTypesList() + */ + @Test + public void testAddImport() { + System.out.println("addImport"); + JavaBuilder builder = new JavaBuilder("TestModel"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + String imports = "java.beans.PropertyChangeListener"; + builder.addImport(classifier, imports); + + ImportsManager manager = builder.getImportsManager(classifier); + + 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); + } + + /** + * Test of createClass method, of class JavaBuilder. + * Prerequisite : none. + * - Create a class with name and packageName. Qualified name of the class = name + packageName. + */ + @Test + public void testCreateClass() { + System.out.println("createClass"); + + JavaBuilder builder = new JavaBuilder("TestModel"); + + ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms"); + + assertNotNull(clazz); + assertEquals(clazz.getName(), "Person"); + assertEquals(clazz.getPackageName(), "org.chorem.bonzoms"); + assertEquals(clazz.getQualifiedName(), "org.chorem.bonzoms.Person"); + } + + /** + * Test of createAbstractClass method, of class JavaBuilder. + * Prerequisite : none. + * - Create an abstract class. + */ + @Test + public void testCreateAbstractClass() { + System.out.println("createAbstractClass"); + JavaBuilder builder = new JavaBuilder("TestModel"); + + ObjectModelClass clazz = builder.createAbstractClass("Person", "org.chorem.bonzoms"); + assertTrue(clazz.isAbstract()); + } + +// /** +// * Test of setSuperClass method, of class JavaBuilder. +// */ +// @Test +// public void testSetSuperClass() { +// System.out.println("setSuperClass"); +// JavaBuilder builder = new JavaBuilder("TestModel"); +// +// ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms"); +// +// String superclassQualifiedName = "org.chorem.bonzoms.Party"; +// +// //builder.setSuperClass(clazz, superclassQualifiedName); +// //assertNotNull(clazz.getSuperclasses()); +// //assertEquals(clazz.getSuperclasses().size(), 1); +// } +// + /** + * Test of addInterface method, of class JavaBuilder. + * Prerequisite : existing classifier in model. + * - Add an interface not included in the model to a classifier. + * - TODO : Add an existing interface in the model to a classfier. + */ + @Test + public void testAddInterface() { + System.out.println("addInterface"); + JavaBuilder builder = new JavaBuilder("TestModel"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + String interfaceQualifiedName = "java.io.Serializable"; + builder.addInterface(classifier, interfaceQualifiedName); + + assertNotNull(classifier.getInterfaces()); + assertEquals(classifier.getInterfaces().size(), 1); + } + + /** + * Test of addAttribute(ObjectModelClassifier, String) method, of class JavaBuilder. + * Prerequisite : existing classifier in model. + * - Add attribute simple attribute (visibility, type, name) + * - Add attribute with defaultValue + * - Add attribute with defaultValue as new instance of object + * - Add attribute with defaultValue which contains a '.' (double) + */ + @Test + public void testAddAttributeObjectModelClassifierString() { + System.out.println("addAttribute"); + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + String parse = "public java.lang.String bilou"; + ObjectModelAttribute result = builder.addAttribute(classifier, parse); + assertNotNull(result); + assertEquals(result.getName(), "bilou"); + assertEquals(result.getType(), "java.lang.String"); + assertEquals(result.getVisibility(), "public"); + + parse = "public static final long uid = 12534sdf78ef9"; + result = builder.addAttribute(classifier, parse); + assertNotNull(result); + assertTrue(result.isFinal()); + assertTrue(result.isStatic()); + assertEquals(result.getName(), "uid"); + assertEquals(result.getType(), "long"); + assertEquals(result.getVisibility(), "public"); + assertEquals(result.getDefaultValue(), "12534sdf78ef9"); + + parse = "private java.util.Date publicDate = new java.util.Date()"; + result = builder.addAttribute(classifier, parse); + assertNotNull(result); + assertEquals(result.getName(), "publicDate"); + assertEquals(result.getType(), "java.util.Date"); + assertEquals(result.getVisibility(), "private"); + assertEquals(result.getDefaultValue(), "new java.util.Date()"); + + parse = "private double age = 2.0"; + result = builder.addAttribute(classifier, parse); + assertNotNull(result); + assertEquals(result.getName(), "age"); + assertEquals(result.getType(), "double"); + assertEquals(result.getVisibility(), "private"); + assertEquals(result.getDefaultValue(), "2.0"); + } + + /** + * Test of addAttribute method, of class JavaBuilder. + * Prerequisite : existing classifier in model. + * - Add an attribute from an existing one + */ + @Test + public void testAddAttributeObjectModelClassifierObjectModelAttribute() { + System.out.println("addAttribute"); + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelAttributeImpl attribute = new ObjectModelAttributeImpl(); + attribute.setName("name"); + attribute.setType("java.lang.String"); + attribute.setVisibility("public"); + attribute.setStatic(false); + attribute.setFinal(true); + attribute.setDefaultValue("\"\""); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + ObjectModelAttribute result = builder.addAttribute(classifier, attribute); + assertNotNull(result); + assertEquals(result.getName(), "name"); + assertEquals(result.getType(), "java.lang.String"); + assertEquals(result.getVisibility(), "public"); + assertEquals(result.getDefaultValue(), "\"\""); + assertTrue(result.isFinal()); + assertFalse(result.isStatic()); + } + + /** + * Test of addConstructor method, of class JavaBuilder. + * Prerequisite : existing class in model. + * - Add a constructor to an existing class. + * NOTE : operation.getReturnType doesn't get the good type (ie. "void") + */ + @Test + public void testAddConstructor() { + System.out.println("addConstructor"); + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms"); + + ObjectModelOperation operation = builder.addConstructor(clazz, "public"); + assertNotNull(operation); + assertEquals(operation.getName(), "Person"); + assertNull(operation.getReturnParameter()); + assertFalse(operation.isAbstract()); + } + + /** + * Test of addOperation method, of class JavaBuilder. + * Prerequisite : existing classifier in model. + * - Add simple method without parameters + * - Add method with one parameter + * NOTE : unsupported generic and exceptions + */ + @Test + public void testAddOperationObjectModelClassifierString() { + System.out.println("addOperation"); + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + String parse = "public abstract java.util.List<java.lang.String> methodName"; + ObjectModelOperation result = builder.addOperation(classifier, parse); + assertNotNull(result); + assertTrue(result.isAbstract()); + assertEquals(result.getName(), "methodName"); + assertEquals(result.getReturnType(), "java.util.List<java.lang.String>"); + assertEquals(result.getVisibility(), "public"); + + /*parse = "public <T extends blob> T myMethod"; // UNSUPPORTED*/ + + parse = "public void addPropertyChangeListener(java.lang.String propertyName)"; + result = builder.addOperation(classifier, parse); + assertNotNull(result); + assertEquals(result.getName(), "addPropertyChangeListener"); + assertEquals(result.getReturnType(), "void"); + assertEquals(result.getVisibility(), "public"); + assertEquals(result.getParameters().size(), 1); + + List<ObjectModelParameter> listParams = (List<ObjectModelParameter>)result.getParameters(); + ObjectModelParameter param1 = listParams.get(0); + assertEquals(param1.getName(), "propertyName"); + assertEquals(param1.getType(), "java.lang.String"); + } + + /** + * Test of addOperation method, of class JavaBuilder. + * Prerequisite : existing classifier in model. + * - Add simple method without parameters + * - Add method with one parameter + */ + @Test + public void testAddOperation5args() { + System.out.println("addOperation"); + + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + ObjectModelOperation result = builder.addOperation(classifier, + "public", "java.util.List<java.lang.String>", "methodName"); + assertNotNull(result); + assertEquals(result.getName(), "methodName"); + assertEquals(result.getReturnType(), "java.util.List<java.lang.String>"); + assertEquals(result.getVisibility(), "public"); + + result = builder.addOperation(classifier, "public", "void", "addPropertyChangeListener", + "java.lang.String", "propertyName"); + assertNotNull(result); + assertEquals(result.getName(), "addPropertyChangeListener"); + assertEquals(result.getReturnType(), "void"); + assertEquals(result.getVisibility(), "public"); + assertEquals(result.getParameters().size(), 1); + + List<ObjectModelParameter> listParams = (List<ObjectModelParameter>)result.getParameters(); + ObjectModelParameter param1 = listParams.get(0); + assertEquals(param1.getName(), "propertyName"); + assertEquals(param1.getType(), "java.lang.String"); + } + + /** + * Test of addParameter method, of class JavaBuilder. + * Prerequisite : existing classifier in model and operation associated to this classifier. + * - Add a parameter to an existing operation in a classifier + */ + @Test + public void testAddParameter() { + System.out.println("addParameter"); + + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + ObjectModelOperation operation = builder.addOperation(classifier, + "public java.lang.String setName"); + + 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(); + ObjectModelParameter param1 = listParams.get(0); + assertEquals(param1, param); + } + + /** + * Test of addException method, of class JavaBuilder. + * Prerequisite : existing classifier in model and operation associated to this classifier. + * - Add an exception to an existing operation in a classifier + */ + @Test + public void testAddException() { + System.out.println("addException"); + + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + ObjectModelOperation operation = builder.addOperation(classifier, + "public java.lang.String setName"); + + builder.addException(operation, "java.lang.IllegalArgumentException"); + Set<String> exceptions = operation.getExceptions(); + assertNotNull(exceptions); + assertEquals(exceptions.size(), 1); + Iterator<String> it = exceptions.iterator(); + assertNotNull(it.hasNext()); + assertEquals(it.next(), "java.lang.IllegalArgumentException"); + } + + /** + * Test of setOperationBody method, of class JavaBuilder. + * Prerequisite : existing classifier in model and operation associated to this classifier. + * - Add a body to an existing operation in a classifier + * NOTE : No complex test for adding body to an operation (no use of processor) + */ + @Test + public void testSetOperationBody() { + System.out.println("setOperationBody"); + + JavaBuilder builder = new JavaBuilder("modelName"); + + ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms"); + + ObjectModelOperation operation = builder.addOperation(classifier, + "public java.lang.String setName"); + + builder.setOperationBody(operation, "this.name = name"); + assertNotNull(operation.getBodyCode()); + assertEquals(operation.getBodyCode(), "this.name = name"); + } + +} \ No newline at end of file Deleted: branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/java/JavaBuilderHelperTest.java =================================================================== --- branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/java/JavaBuilderHelperTest.java 2009-10-29 19:02:32 UTC (rev 672) +++ branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/java/JavaBuilderHelperTest.java 2009-10-30 17:51:08 UTC (rev 673) @@ -1,124 +0,0 @@ - -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.junit.Test; -import static org.junit.Assert.*; -import org.nuiton.eugene.models.object.ObjectModelAttribute; -import org.nuiton.eugene.models.object.ObjectModelClassifier; -import org.nuiton.eugene.models.object.ObjectModelOperation; -import org.nuiton.eugene.models.object.ObjectModelParameter; -import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl; - -/** - * - * @author fdesbois - */ -public class JavaBuilderHelperTest { - - public JavaBuilderHelperTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - - /** - * Test of addAttribute method, of class JavaBuilderHelper. - */ - @Test - public void testAddAttribute() { - System.out.println("addAttribute"); - JavaBuilder instance = new JavaBuilder("modelName"); - - ObjectModelClassifier classifier = new ObjectModelClassImpl(); - - String parse = "public java.lang.String bilou"; - ObjectModelAttribute result = instance.addAttribute(classifier, parse); - assertNotNull(result); - assertEquals(result.getName(), "bilou"); - assertEquals(result.getType(), "java.lang.String"); - assertEquals(result.getVisibility(), "public"); - - parse = "public static final long uid = 12534sdf78ef9"; - result = instance.addAttribute(classifier, parse); - assertNotNull(result); - assertTrue(result.isFinal()); - assertTrue(result.isStatic()); - assertEquals(result.getName(), "uid"); - assertEquals(result.getType(), "long"); - assertEquals(result.getVisibility(), "public"); - assertEquals(result.getDefaultValue(), "12534sdf78ef9"); - - parse = "private java.util.Date publicDate = new java.util.Date()"; - result = instance.addAttribute(classifier, parse); - assertNotNull(result); - assertEquals(result.getName(), "publicDate"); - assertEquals(result.getType(), "java.util.Date"); - assertEquals(result.getVisibility(), "private"); - assertEquals(result.getDefaultValue(), "new java.util.Date()"); - - parse = "private double age = 2.0"; - result = instance.addAttribute(classifier, parse); - assertNotNull(result); - assertEquals(result.getName(), "age"); - assertEquals(result.getType(), "double"); - assertEquals(result.getVisibility(), "private"); - assertEquals(result.getDefaultValue(), "2.0"); - - } - - @Test - public void testAddOperation() { - System.out.println("addOperation"); - - JavaBuilder instance = new JavaBuilder("modelName"); - - ObjectModelClassifier classifier = new ObjectModelClassImpl(); - - String parse = "public abstract java.util.List<java.lang.String> methodName"; - ObjectModelOperation result = instance.addOperation(classifier, parse); - assertNotNull(result); - assertTrue(result.isAbstract()); - assertEquals(result.getName(), "methodName"); - assertEquals(result.getReturnType(), "java.util.List<java.lang.String>"); - assertEquals(result.getVisibility(), "public"); - - /*parse = "public <T extends blob> T myMethod"; // UNSUPPORTED - result = instance.addOperation(classifier, parse); - assertNotNull(result); - assertEquals(result.getName(), "myMethod"); - assertEquals(result.getReturnType(), "<T extends blob> T"); - assertEquals(result.getVisibility(), "public");*/ - - parse = "public void addPropertyChangeListener(java.lang.String propertyName)"; - result = instance.addOperation(classifier, parse); - assertNotNull(result); - assertEquals(result.getName(), "addPropertyChangeListener"); - assertEquals(result.getReturnType(), "void"); - assertEquals(result.getVisibility(), "public"); - assertEquals(result.getParameters().size(), 1); - - List<ObjectModelParameter> listParams = (List<ObjectModelParameter>)result.getParameters(); - ObjectModelParameter param1 = listParams.get(0); - assertEquals(param1.getName(), "propertyName"); - assertEquals(param1.getType(), "java.lang.String"); - } - -} \ No newline at end of file
participants (1)
-
fdesbois@users.nuiton.org