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"/>