Author: dbiatenia
Date: 2007-04-11 14:27:44 -0400 (Wed, 11 Apr 2007)
New Revision: 73
Added:
trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm
trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm
trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm
trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
Log:
new test templates for component and tag
Added: trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm
(rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm 2007-04-11
18:27:44 UTC (rev 73)
@@ -0,0 +1,143 @@
+/**
+ * License Agreement.
+ *
+ * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package $package;
+
+#foreach($import in $imports)
+import $import ;
+#end
+
+import com.gargoylesoftware.htmlunit.Page;
+import javax.faces.component.UIForm;
+import javax.faces.component.html.HtmlForm;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.component.UIViewRoot;
+//import ${component.classname};
+#if(${generator.key})
+
+import java.io.IOException;
+import javax.faces.FacesException;
+import org.ajax4jsf.framework.util.base64.Codec;
+#end
+
+public class $component.test.simpleClassName extends $component.test.superclassname {
+
+// public static final String COMPONENT_TYPE = "${component.name}";
+
+
+#set( $fiedCounter = 1 )
+#foreach( $prop in $component.properties )
+ #if( !$prop.exist )
+ #if($prop.simpleType)
+ private boolean _${prop.name}Set = false;
+ #set( $fiedCounter = $fiedCounter+2)
+ #else
+ #set( $fiedCounter = $fiedCounter+1)
+ #end
+#end
+#end
+
+ private $component.simpleClassName component;
+ private UIForm form;
+// private FacesContext context;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public $component.test.simpleClassName (String name){
+ super(name);
+ }
+
+ /*
+ * setup the tets
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ component = new ${component.simpleClassName}();
+ form = new HtmlForm();
+ form.setId("form");
+ facesContext.getViewRoot().getChildren().add(form);
+
+ component.setId("component");
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ component.${prop.setterName}( " __$prop.name" );
+ #end
+#end
+
+ form.getChildren().add(component);
+
+ }
+
+ /*
+ * setup the tets
+ */
+ public void tearDown() throws Exception{
+ super.tearDown();
+ component = null;
+ form = null;
+ }
+
+ public void testComponent() throws Exception {
+
+ HtmlPage renderedView = renderView();
+ assertNotNull(renderedView);
+ System.out.println(renderedView.getWebResponse().getContentAsString());
+ HtmlElement element = renderedView.getHtmlElementById(form.getId() + ":" +
component.getId());
+ assertNotNull(element);
+
+// values[0] = component.saveState(facesContext);
+
+ }
+/*
+ public void testDefaultValues(){
+
+ }
+*/
+ public void testContext(){
+
+ Object state = component.saveState(facesContext);
+
+ UIViewRoot root = facesContext.getViewRoot();
+ root.processDecodes(facesContext);
+ root.processValidators(facesContext);
+ root.processUpdates(facesContext);
+ root.processApplication(facesContext);
+
+ testRestoreState(state);
+ }
+
+ private void testRestoreState(Object state){
+ ${component.simpleClassName} restoredComponent = new ${component.simpleClassName}();
+ restoredComponent.restoreState(facesContext, state);
+
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ assertEquals(component.${prop.getterName}(), restoredComponent.${prop.getterName}());
+ #end
+#end
+
+ }
+
+}
\ No newline at end of file
Added: trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm
(rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm 2007-04-11
18:27:44 UTC (rev 73)
@@ -0,0 +1,142 @@
+/**
+ * GENERATED FILE - DO NOT EDIT
+ *
+ */
+package ${tag.packageName};
+
+#foreach($import in $imports)
+import $import ;
+#end
+import javax.faces.component.UIComponent;
+import javax.faces.webapp.UIComponentTag;
+import ${component.classname};
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.el.ExpressionEvaluator;
+import javax.servlet.jsp.el.VariableResolver;
+import javax.servlet.jsp.tagext.Tag;
+import java.io.IOException;
+import java.util.Enumeration;
+
+
+
+/**
+ * @author shura (latest modification by $Author: alexsmirnov $)
+ * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
+ *
+ */
+public class $tag.test.simpleClassName extends $tag.test.superclassname {
+
+
+ private $tag.simpleClassName tag;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public ${tag.test.simpleClassName} (String name){
+ super(name);
+ }
+
+
+ public void setUp() throws Exception {
+ super.setUp();
+ tag = new ${tag.simpleClassName}();
+ tag.setParent(new UIComponentTag(){
+
+ public String getComponentType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getRendererType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int doStartTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ public int doEndTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ });
+
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ tag = null;
+ }
+
+
+ public void testSetPropertiesUIComponent() {
+ ${component.simpleClassName} component = new ${component.simpleClassName}();
+/*
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag )
+ #if(!$prop.el)
+ if(isValueReference(this._${prop.name})){
+ throw new IllegalArgumentException("Component ${component.name} with Id " +
component.getClientId(getFacesContext() +" not allowed EL expression for property
${prop.name}")
+ }
+ #end
+ #if($prop.name == "action")
+
+ setActionProperty(component, tag._${prop.name});
+ #elseif($prop.name == "actionListener")
+ setActionListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "converter")
+ setConverterProperty(component, this._${prop.name});
+ #elseif($prop.name == "validator")
+ setValidatorProperty(component, this._${prop.name});
+ #elseif($prop.name == "valueChangeListener")
+ setValueChangedListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "value")
+ setValueProperty(component, this._${prop.name});
+ #elseif($prop.elOnly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
+ setValueBinding(component, "${prop.name}",this._${prop.name});
+ #elseif(${prop.simpleType})
+ // Simple type - ${prop.simpleClassName}
+ set${prop.boxingClass}Property(component,
"${prop.name}",this._${prop.name});
+ #elseif($prop.classname == "java.lang.Boolean" || $prop.classname ==
"java.lang.Integer" || $prop.classname == "java.lang.Long")
+ set${prop.simpleClassName}Property(component,
"${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.String")
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.Object")
+ // TODO - handle object
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
+ if(null != this._${prop.name}){
+ if (isValueReference(this._${prop.name}))
+ {
+ MethodBinding mb =
getFacesContext().getApplication().createMethodBinding(this._${prop.name},
+ new
Class[]{${prop.methodargs}});
+ ((${component.simpleClassName})component).${prop.setterName}(mb);
+ }
+ else
+ {
+ getFacesContext().getExternalContext().log("Component " +
component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " +
this._${prop.name});
+ }
+ }
+ #else
+ // TODO - setup properties for other cases.
+ // name ${prop.name} with type $prop.classname
+ #end
+ #end
+ #end
+*/
+ }
+}
Added: trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm
(rev 0)
+++
trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm 2007-04-11
18:27:44 UTC (rev 73)
@@ -0,0 +1,143 @@
+/**
+ * License Agreement.
+ *
+ * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package $package;
+
+#foreach($import in $imports)
+import $import ;
+#end
+
+import com.gargoylesoftware.htmlunit.Page;
+import javax.faces.component.UIForm;
+import javax.faces.component.html.HtmlForm;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.component.UIViewRoot;
+//import ${component.classname};
+#if(${generator.key})
+
+import java.io.IOException;
+import javax.faces.FacesException;
+import org.ajax4jsf.framework.util.base64.Codec;
+#end
+
+public class $component.test.simpleClassName extends $component.test.superclassname {
+
+// public static final String COMPONENT_TYPE = "${component.name}";
+
+
+#set( $fiedCounter = 1 )
+#foreach( $prop in $component.properties )
+ #if( !$prop.exist )
+ #if($prop.simpleType)
+ private boolean _${prop.name}Set = false;
+ #set( $fiedCounter = $fiedCounter+2)
+ #else
+ #set( $fiedCounter = $fiedCounter+1)
+ #end
+#end
+#end
+
+ private $component.simpleClassName component;
+ private UIForm form;
+// private FacesContext context;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public $component.test.simpleClassName (String name){
+ super(name);
+ }
+
+ /*
+ * setup the tets
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ component = new ${component.simpleClassName}();
+ form = new HtmlForm();
+ form.setId("form");
+ facesContext.getViewRoot().getChildren().add(form);
+
+ component.setId("component");
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ component.${prop.setterName}( " __$prop.name" );
+ #end
+#end
+
+ form.getChildren().add(component);
+
+ }
+
+ /*
+ * setup the tets
+ */
+ public void tearDown() throws Exception{
+ super.tearDown();
+ component = null;
+ form = null;
+ }
+
+ public void testComponent() throws Exception {
+
+ HtmlPage renderedView = renderView();
+ assertNotNull(renderedView);
+ System.out.println(renderedView.getWebResponse().getContentAsString());
+ HtmlElement element = renderedView.getHtmlElementById(form.getId() + ":" +
component.getId());
+ assertNotNull(element);
+
+// values[0] = component.saveState(facesContext);
+
+ }
+/*
+ public void testDefaultValues(){
+
+ }
+*/
+ public void testContext(){
+
+ Object state = component.saveState(facesContext);
+
+ UIViewRoot root = facesContext.getViewRoot();
+ root.processDecodes(facesContext);
+ root.processValidators(facesContext);
+ root.processUpdates(facesContext);
+ root.processApplication(facesContext);
+
+ testRestoreState(state);
+ }
+
+ private void testRestoreState(Object state){
+ ${component.simpleClassName} restoredComponent = new ${component.simpleClassName}();
+ restoredComponent.restoreState(facesContext, state);
+
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ assertEquals(component.${prop.getterName}(), restoredComponent.${prop.getterName}());
+ #end
+#end
+
+ }
+
+}
\ No newline at end of file
Added: trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
(rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm 2007-04-11
18:27:44 UTC (rev 73)
@@ -0,0 +1,142 @@
+/**
+ * GENERATED FILE - DO NOT EDIT
+ *
+ */
+package ${tag.packageName};
+
+#foreach($import in $imports)
+import $import ;
+#end
+import javax.faces.component.UIComponent;
+import javax.faces.webapp.UIComponentTag;
+import ${component.classname};
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.el.ExpressionEvaluator;
+import javax.servlet.jsp.el.VariableResolver;
+import javax.servlet.jsp.tagext.Tag;
+import java.io.IOException;
+import java.util.Enumeration;
+
+
+
+/**
+ * @author shura (latest modification by $Author: alexsmirnov $)
+ * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
+ *
+ */
+public class $tag.test.simpleClassName extends $tag.test.superclassname {
+
+
+ private $tag.simpleClassName tag;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public ${tag.test.simpleClassName} (String name){
+ super(name);
+ }
+
+
+ public void setUp() throws Exception {
+ super.setUp();
+ tag = new ${tag.simpleClassName}();
+ tag.setParent(new UIComponentTag(){
+
+ public String getComponentType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getRendererType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int doStartTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ public int doEndTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ });
+
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ tag = null;
+ }
+
+
+ public void testSetPropertiesUIComponent() {
+ ${component.simpleClassName} component = new ${component.simpleClassName}();
+/*
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag )
+ #if(!$prop.el)
+ if(isValueReference(this._${prop.name})){
+ throw new IllegalArgumentException("Component ${component.name} with Id " +
component.getClientId(getFacesContext() +" not allowed EL expression for property
${prop.name}")
+ }
+ #end
+ #if($prop.name == "action")
+
+ setActionProperty(component, tag._${prop.name});
+ #elseif($prop.name == "actionListener")
+ setActionListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "converter")
+ setConverterProperty(component, this._${prop.name});
+ #elseif($prop.name == "validator")
+ setValidatorProperty(component, this._${prop.name});
+ #elseif($prop.name == "valueChangeListener")
+ setValueChangedListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "value")
+ setValueProperty(component, this._${prop.name});
+ #elseif($prop.elOnly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
+ setValueBinding(component, "${prop.name}",this._${prop.name});
+ #elseif(${prop.simpleType})
+ // Simple type - ${prop.simpleClassName}
+ set${prop.boxingClass}Property(component,
"${prop.name}",this._${prop.name});
+ #elseif($prop.classname == "java.lang.Boolean" || $prop.classname ==
"java.lang.Integer" || $prop.classname == "java.lang.Long")
+ set${prop.simpleClassName}Property(component,
"${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.String")
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.Object")
+ // TODO - handle object
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
+ if(null != this._${prop.name}){
+ if (isValueReference(this._${prop.name}))
+ {
+ MethodBinding mb =
getFacesContext().getApplication().createMethodBinding(this._${prop.name},
+ new
Class[]{${prop.methodargs}});
+ ((${component.simpleClassName})component).${prop.setterName}(mb);
+ }
+ else
+ {
+ getFacesContext().getExternalContext().log("Component " +
component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " +
this._${prop.name});
+ }
+ }
+ #else
+ // TODO - setup properties for other cases.
+ // name ${prop.name} with type $prop.classname
+ #end
+ #end
+ #end
+*/
+ }
+}