You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bd...@apache.org on 2005/07/21 17:58:42 UTC
svn commit: r220121 - in /myfaces:
api/trunk/src/java/javax/faces/application/StateManager.java
api/trunk/src/test/javax/faces/application/MockStateManager.java
api/trunk/src/test/javax/faces/application/StateManagerTest.java
build/trunk/build.xml
Author: bdudney
Date: Thu Jul 21 08:58:42 2005
New Revision: 220121
URL: http://svn.apache.org/viewcvs?rev=220121&view=rev
Log:
initial pass at integrating mock objects into the test cycle
Added:
myfaces/api/trunk/src/test/javax/faces/application/MockStateManager.java
Modified:
myfaces/api/trunk/src/java/javax/faces/application/StateManager.java
myfaces/api/trunk/src/test/javax/faces/application/StateManagerTest.java
myfaces/build/trunk/build.xml
Modified: myfaces/api/trunk/src/java/javax/faces/application/StateManager.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/java/javax/faces/application/StateManager.java?rev=220121&r1=220120&r2=220121&view=diff
==============================================================================
--- myfaces/api/trunk/src/java/javax/faces/application/StateManager.java (original)
+++ myfaces/api/trunk/src/java/javax/faces/application/StateManager.java Thu Jul 21 08:58:42 2005
@@ -53,6 +53,7 @@
public boolean isSavingStateInClient(javax.faces.context.FacesContext context)
{
+ if(context == null) throw new NullPointerException("context");
if (_savingStateInClient != null) return _savingStateInClient.booleanValue();
String stateSavingMethod = context.getExternalContext().getInitParameter(STATE_SAVING_METHOD_PARAM_NAME);
if (stateSavingMethod == null)
Added: myfaces/api/trunk/src/test/javax/faces/application/MockStateManager.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/test/javax/faces/application/MockStateManager.java?rev=220121&view=auto
==============================================================================
--- myfaces/api/trunk/src/test/javax/faces/application/MockStateManager.java (added)
+++ myfaces/api/trunk/src/test/javax/faces/application/MockStateManager.java Thu Jul 21 08:58:42 2005
@@ -0,0 +1,54 @@
+package javax.faces.application;
+
+import java.io.IOException;
+
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+
+public class MockStateManager extends StateManager {
+
+ public MockStateManager() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public SerializedView saveSerializedView(FacesContext context) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ protected Object getTreeStructureToSave(FacesContext context) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ protected Object getComponentStateToSave(FacesContext context) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void writeState(FacesContext context, SerializedView state)
+ throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ public UIViewRoot restoreView(FacesContext context, String viewId,
+ String renderKitId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ protected UIViewRoot restoreTreeStructure(FacesContext context,
+ String viewId, String renderKitId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ protected void restoreComponentState(FacesContext context,
+ UIViewRoot viewRoot, String renderKitId) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Modified: myfaces/api/trunk/src/test/javax/faces/application/StateManagerTest.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/test/javax/faces/application/StateManagerTest.java?rev=220121&r1=220120&r2=220121&view=diff
==============================================================================
--- myfaces/api/trunk/src/test/javax/faces/application/StateManagerTest.java (original)
+++ myfaces/api/trunk/src/test/javax/faces/application/StateManagerTest.java Thu Jul 21 08:58:42 2005
@@ -1,7 +1,13 @@
package javax.faces.application;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+
import junit.framework.TestCase;
+import org.easymock.MockControl;
+import org.easymock.classextension.MockClassControl;
+
public class StateManagerTest extends TestCase {
public static void main(String[] args) {
@@ -21,59 +27,101 @@
}
/*
- * Test method for 'javax.faces.application.StateManager.saveSerializedView(FacesContext)'
- */
- public void testSaveSerializedView() {
-
- }
-
- /*
- * Test method for 'javax.faces.application.StateManager.getTreeStructureToSave(FacesContext)'
- */
- public void testGetTreeStructureToSave() {
-
- }
-
- /*
- * Test method for 'javax.faces.application.StateManager.getComponentStateToSave(FacesContext)'
+ * Test method for 'javax.faces.application.StateManager.isSavingStateInClient(FacesContext)'
*/
- public void testGetComponentStateToSave() {
-
+ public void testNullThrowsIsSavingStateInClient() {
+ MockStateManager subject = new MockStateManager();
+ try {
+ subject.isSavingStateInClient(null);
+ fail("should have thrown an exception");
+ } catch (RuntimeException e) {
+ }
}
/*
- * Test method for 'javax.faces.application.StateManager.writeState(FacesContext, SerializedView)'
- */
- public void testWriteState() {
-
- }
-
- /*
- * Test method for 'javax.faces.application.StateManager.restoreView(FacesContext, String, String)'
+ * Test method for 'javax.faces.application.StateManager.isSavingStateInClient(FacesContext)'
*/
- public void testRestoreView() {
+ public void testIsSavingStateInClientTrue() {
+ MockControl contextControl = MockClassControl.createControl(FacesContext.class);
+ MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
+ FacesContext context = (FacesContext)contextControl.getMock();
+ ExternalContext external = (ExternalContext)externalControl.getMock();
+ context.getExternalContext();
+ contextControl.setReturnValue(external);
+ contextControl.replay();
+ external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
+ externalControl.setReturnValue("client");
+ externalControl.replay();
+ MockStateManager subject = new MockStateManager();
+ assertEquals(true, subject.isSavingStateInClient(context));
}
/*
- * Test method for 'javax.faces.application.StateManager.restoreTreeStructure(FacesContext, String, String)'
+ * Test method for 'javax.faces.application.StateManager.isSavingStateInClient(FacesContext)'
*/
- public void testRestoreTreeStructure() {
-
+ public void testIsSavingStateInClientFalse() {
+ MockControl contextControl = MockClassControl.createControl(FacesContext.class);
+ MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
+ FacesContext context = (FacesContext)contextControl.getMock();
+ ExternalContext external = (ExternalContext)externalControl.getMock();
+ context.getExternalContext();
+ contextControl.setReturnValue(external);
+ contextControl.replay();
+ external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
+ externalControl.setReturnValue("server");
+ externalControl.replay();
+
+ MockStateManager subject = new MockStateManager();
+ assertEquals(false, subject.isSavingStateInClient(context));
+ // calling a second time asserts that the code is caching the value correctly
+ assertEquals(false, subject.isSavingStateInClient(context));
}
/*
- * Test method for 'javax.faces.application.StateManager.restoreComponentState(FacesContext, UIViewRoot, String)'
+ * Test method for 'javax.faces.application.StateManager.isSavingStateInClient(FacesContext)'
*/
- public void testRestoreComponentState() {
+ public void testIsSavingStateInClientBogus() {
+ MockControl contextControl = MockClassControl.createControl(FacesContext.class);
+ MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
+ FacesContext context = (FacesContext)contextControl.getMock();
+ ExternalContext external = (ExternalContext)externalControl.getMock();
+ context.getExternalContext();
+ contextControl.setReturnValue(external);
+ context.getExternalContext();
+ contextControl.setReturnValue(external);
+ contextControl.replay();
+ external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
+ externalControl.setReturnValue("blorf");
+ external.log("Illegal state saving method 'blorf', default server state saving will be used");
+ externalControl.setVoidCallable();
+ externalControl.replay();
+ MockStateManager subject = new MockStateManager();
+ assertEquals(false, subject.isSavingStateInClient(context));
}
/*
* Test method for 'javax.faces.application.StateManager.isSavingStateInClient(FacesContext)'
*/
- public void testIsSavingStateInClient() {
+ public void testIsSavingStateInClientNull() {
+ MockControl contextControl = MockClassControl.createControl(FacesContext.class);
+ MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
+ FacesContext context = (FacesContext)contextControl.getMock();
+ ExternalContext external = (ExternalContext)externalControl.getMock();
+ context.getExternalContext();
+ contextControl.setReturnValue(external);
+ context.getExternalContext();
+ contextControl.setReturnValue(external);
+ contextControl.replay();
+ external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
+ externalControl.setReturnValue(null);
+ external.log("No state saving method defined, assuming default server state saving");
+ externalControl.setVoidCallable();
+ externalControl.replay();
+ MockStateManager subject = new MockStateManager();
+ assertEquals(false, subject.isSavingStateInClient(context));
}
}
Modified: myfaces/build/trunk/build.xml
URL: http://svn.apache.org/viewcvs/myfaces/build/trunk/build.xml?rev=220121&r1=220120&r2=220121&view=diff
==============================================================================
--- myfaces/build/trunk/build.xml (original)
+++ myfaces/build/trunk/build.xml Thu Jul 21 08:58:42 2005
@@ -338,10 +338,26 @@
usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xjavadoc/jars/xjavadoc-1.1.jar"/>
- <get dest="${lib.dir}/junit.jar"
- usetimestamp="true" ignoreerrors="true"
- src="http://www.ibiblio.org/maven/junit/jars/junit-3.8.1.jar"/>
+ <get dest="${lib.dir}/junit.jar"
+ usetimestamp="true" ignoreerrors="true"
+ src="http://www.ibiblio.org/maven/junit/jars/junit-3.8.1.jar"/>
+ <get dest="${lib.dir}/easymock.jar"
+ usetimestamp="true" ignoreerrors="true"
+ src="http://www.ibiblio.org/maven/easymock/jars/easymock-1.1.jar"/>
+
+ <get dest="${lib.dir}/easymock-classextension.jar"
+ usetimestamp="true" ignoreerrors="true"
+ src="http://www.ibiblio.org/maven/easymock/jars/easymockclassextension-1.1.jar"/>
+
+ <get dest="${lib.dir}/cglib.jar"
+ usetimestamp="true" ignoreerrors="true"
+ src="http://www.ibiblio.org/maven/cglib/jars/cglib-2.1_2.jar"/>
+
+ <get dest="${lib.dir}/asm.jar"
+ usetimestamp="true" ignoreerrors="true"
+ src="http://www.ibiblio.org/maven/asm/jars/asm-1.5.3.jar"/>
+
<property name="commons-beanutils.jar" value="${lib.dir}/commons-beanutils.jar"/>
<property name="commons-codec.jar" value="${lib.dir}/commons-codec.jar"/>
<property name="commons-collections.jar" value="${lib.dir}/commons-collections.jar"/>