You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2006/02/17 06:41:25 UTC

svn commit: r378439 - in /myfaces/core/trunk/impl: ./ src/test/java/org/apache/myfaces/config/

Author: dennisbyrne
Date: Thu Feb 16 21:41:24 2006
New Revision: 378439

URL: http://svn.apache.org/viewcvs?rev=378439&view=rev
Log:
New tests for old bug, and dependency on shale-test

Added:
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/AbstractManagedBeanBuilderTestCase.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/MangedBeanExample.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/Myfaces889TestCase.java
Modified:
    myfaces/core/trunk/impl/pom.xml

Modified: myfaces/core/trunk/impl/pom.xml
URL: http://svn.apache.org/viewcvs/myfaces/core/trunk/impl/pom.xml?rev=378439&r1=378438&r2=378439&view=diff
==============================================================================
--- myfaces/core/trunk/impl/pom.xml (original)
+++ myfaces/core/trunk/impl/pom.xml Thu Feb 16 21:41:24 2006
@@ -88,6 +88,13 @@
       <scope>test</scope>
     </dependency>
 
+    <dependency>
+      <groupId>struts</groupId>
+      <artifactId>shale-test</artifactId>
+      <version>1.0.1-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 
   <build>

Added: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/AbstractManagedBeanBuilderTestCase.java
URL: http://svn.apache.org/viewcvs/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/AbstractManagedBeanBuilderTestCase.java?rev=378439&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/AbstractManagedBeanBuilderTestCase.java (added)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/AbstractManagedBeanBuilderTestCase.java Thu Feb 16 21:41:24 2006
@@ -0,0 +1,133 @@
+package org.apache.myfaces.config;
+
+/**
+ * Creates an environment to easily test the creation and initialization of
+ * managed beans.
+ * 
+ * @author Dennis C. Byrne
+ */
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+
+import javax.faces.application.Application;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.application.ApplicationImpl;
+import org.apache.myfaces.config.ManagedBeanBuilder;
+import org.apache.myfaces.config.impl.digester.elements.ListEntries;
+import org.apache.myfaces.config.impl.digester.elements.ManagedBean;
+import org.apache.myfaces.config.impl.digester.elements.ManagedProperty;
+import org.apache.myfaces.config.impl.digester.elements.MapEntries;
+import org.apache.myfaces.config.impl.digester.elements.ListEntries.Entry;
+import org.apache.myfaces.el.PropertyResolverImpl;
+import org.apache.shale.test.mock.MockFacesContext;
+
+import junit.framework.TestCase;
+
+public abstract class AbstractManagedBeanBuilderTestCase extends TestCase {
+
+	private static Log log = LogFactory.getLog(AbstractManagedBeanBuilderTestCase.class);
+	protected MangedBeanExample example;
+	
+	// managed property values
+	protected static final List MANAGED_LIST = new ArrayList();
+	protected static final Map MANAGED_MAP = new HashMap();
+	protected static final String INJECTED_VALUE = "tatiana";
+	
+	/**
+	 * Skips digester and manually builds and configures a managed bean.
+	 */
+	
+	protected void setUp() throws Exception {
+		ManagedBeanBuilder managedBeanBuilder = new ManagedBeanBuilder();
+		ManagedBean managedBean = new ManagedBean();
+		
+		managedBean.setBeanClass(MangedBeanExample.class.getName());
+		managedBean.setName("managed");
+		managedBean.setScope("request");
+		
+		// test methods of children will want to make sure these values come 
+		// out on the other end of this.
+		MANAGED_LIST.add("0");
+		MANAGED_LIST.add("1");
+		MANAGED_LIST.add("2");
+		MANAGED_MAP.put("0", "0");
+		MANAGED_MAP.put("1", "1");
+		MANAGED_MAP.put("2", "2");
+		
+		ManagedProperty managedProperty = new ManagedProperty();
+		managedProperty.setPropertyName("managedProperty");
+		managedProperty.setValue(INJECTED_VALUE);
+		
+		ManagedProperty managedList = new ManagedProperty();
+		managedList.setPropertyName("managedList");
+		ListEntries listEntries = makeListEntries();
+		managedList.setListEntries(listEntries);
+		
+		ManagedProperty writeOnlyList = new ManagedProperty();
+		writeOnlyList.setPropertyName("writeOnlyList");
+		ListEntries writeOnlyListEntries = makeListEntries();
+		writeOnlyList.setListEntries(writeOnlyListEntries);
+		
+		ManagedProperty managedMap = new ManagedProperty();
+		managedMap.setPropertyName("managedMap");
+		MapEntries mapEntries = makeMapEntries();
+		managedMap.setMapEntries(mapEntries);
+		
+		ManagedProperty writeOnlyMap = new ManagedProperty();
+		writeOnlyMap.setPropertyName("writeOnlyMap");
+		MapEntries writeOnlyMapEntries = makeMapEntries();
+		writeOnlyMap.setMapEntries(writeOnlyMapEntries);		
+		
+		managedBean.addProperty(managedProperty);
+		managedBean.addProperty(managedList);
+		managedBean.addProperty(writeOnlyList);
+		managedBean.addProperty(managedMap);
+		managedBean.addProperty(writeOnlyMap);
+
+		// provide the minimal environment 
+		Application application = null;
+		application = new ApplicationImpl();
+		application.setPropertyResolver(new PropertyResolverImpl());
+		MockFacesContext facesContext = new MockFacesContext();
+		facesContext.setApplication(application);
+		
+		// simulate a managed bean creation
+		example = (MangedBeanExample) managedBeanBuilder
+			.buildManagedBean(facesContext, managedBean);
+	}
+	
+	protected void tearDown() throws Exception {
+		example = null;
+		MANAGED_LIST.clear();
+		MANAGED_MAP.clear();
+	}
+	
+	private ListEntries makeListEntries(){
+		ListEntries listEntries = new ListEntries();
+		
+		for(int i = 0; i < MANAGED_LIST.size(); i++){
+			Entry entry = new Entry();
+			entry.setValue((String) MANAGED_LIST.get(i));
+			listEntries.addEntry(entry);
+		}
+		return listEntries;
+	}
+	
+	private MapEntries makeMapEntries(){
+		MapEntries mapEntries = new MapEntries();
+		
+		for(int i = 0 ; i < MANAGED_MAP.size(); i++){
+			MapEntries.Entry mapEntry = new MapEntries.Entry();
+			mapEntry.setKey((String) MANAGED_MAP.get(i + ""));
+			mapEntry.setValue((String) MANAGED_MAP.get(i + ""));
+			mapEntries.addEntry(mapEntry);
+		}
+		return mapEntries;
+	}
+	
+}

Added: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/MangedBeanExample.java
URL: http://svn.apache.org/viewcvs/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/MangedBeanExample.java?rev=378439&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/MangedBeanExample.java (added)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/MangedBeanExample.java Thu Feb 16 21:41:24 2006
@@ -0,0 +1,58 @@
+package org.apache.myfaces.config;
+
+/**
+ * @author Dennis C. Byrne
+ */
+
+import java.util.List;
+import java.util.Map;
+
+public class MangedBeanExample {
+
+	private String managedProperty ;
+	private List managedList;
+	private List writeOnlyList;
+	private Map managedMap;
+	private Map writeOnlyMap;
+	
+	public List getManagedList() {
+		return managedList;
+	}
+
+	public void setManagedList(List managedList) {
+		this.managedList = managedList;
+	}
+
+	public String getManagedProperty() {
+		return managedProperty;
+	}
+
+	public void setManagedProperty(String managedProperty) {
+		this.managedProperty = managedProperty;
+	}
+
+	public Map getManagedMap() {
+		return managedMap;
+	}
+
+	public void setManagedMap(Map managedMap) {
+		this.managedMap = managedMap;
+	}
+
+	public void setWriteOnlyList(List writeOnlyList) {
+		this.writeOnlyList = writeOnlyList;
+	}
+
+	public void setWriteOnlyMap(Map writeOnlyMap) {
+		this.writeOnlyMap = writeOnlyMap;
+	}
+
+	public Map getHiddenWriteOnlyMap() {
+		return writeOnlyMap;
+	}
+
+	public List getHiddenWriteOnlyList() {
+		return writeOnlyList;
+	}
+
+}

Added: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/Myfaces889TestCase.java
URL: http://svn.apache.org/viewcvs/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/Myfaces889TestCase.java?rev=378439&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/Myfaces889TestCase.java (added)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/Myfaces889TestCase.java Thu Feb 16 21:41:24 2006
@@ -0,0 +1,98 @@
+package org.apache.myfaces.config;
+
+/**
+ * http://issues.apache.org/jira/browse/MYFACES-889?page=all
+ * 
+ * @author Dennis C. Byrne
+ */
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class Myfaces889TestCase extends AbstractManagedBeanBuilderTestCase {
+
+	private static Log log = LogFactory.getLog(Myfaces889TestCase.class);
+	
+	public void testWriteOnlyMap(){
+		assertTrue(example != null);
+		log.debug("managed bean successfully created");
+		
+		Map writeOnlyMap = example.getHiddenWriteOnlyMap();
+		
+		assertTrue(writeOnlyMap != null);
+		log.debug("managed map is not null");
+		
+		scrutinizeMap(writeOnlyMap);
+	}
+	
+	public void testManagedMap(){
+		assertTrue(example != null);
+		log.debug("managed bean successfully created");
+		
+		Map managedMap = example.getManagedMap();
+		
+		assertTrue(managedMap != null);
+		log.debug("managed map is not null");
+		
+		scrutinizeMap(managedMap);
+	}
+	
+	private void scrutinizeMap(Map map){
+		assertTrue(map.size() == 3);
+		log.debug("managed map has the correct size " + map.size());
+		
+		for(int i = 0; i < map.size(); i++){
+			String entry = (String) map.get(i + "");
+			String config = (String) MANAGED_MAP.get(i + "");
+			log.debug("looking @ " + config + " and " + entry);
+			assertTrue(config.equals(entry));
+		}
+		
+	}
+	
+	public void testManagedList(){
+		assertTrue(example != null);
+		log.debug("managed bean successfully created");
+		
+		List managedList = example.getManagedList();
+		
+		scrutinizeList(managedList);
+	}
+	
+	public void testWriteOnlyList(){
+		assertTrue(example != null);
+		log.debug("managed bean successfully created");
+		
+		List writeOnlyList = example.getHiddenWriteOnlyList();
+		
+		scrutinizeList(writeOnlyList);
+	}
+	
+	private void scrutinizeList(List list){
+		assertTrue(list != null);
+		log.debug("managed list is not null " + list.size());
+		assertTrue(list.size() == 3);
+		log.debug("managed list has the correct size " + list.size());
+		
+		for(int i = 0 ; i < list.size(); i++){
+			String entry = (String) list.get(i);
+			String config = (String) MANAGED_LIST.get(i);
+			log.debug("looking @ " + config + " and " + entry);
+			assertTrue(config.equals(entry));
+		}
+	}
+	
+	public void testManagedProperty(){
+		assertTrue(example != null);
+		log.debug("managed bean successfully created");
+		
+		String managedPropertyValue = example.getManagedProperty();
+		
+		assertTrue(INJECTED_VALUE.equals(managedPropertyValue));
+		log.debug("managed property String has the correct value ");
+	}
+	
+}