Author: apetrelli
Date: Sat May 8 15:36:51 2010
New Revision: 942404
URL: http://svn.apache.org/viewvc?rev=942404&view=rev
Log:
TILESSB-31
Refactored Freemarker request support.
Moved IteratorEnumeration to tiles-request-api.
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/IteratorEnumeration.java
- copied, changed from r931641,
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/IteratorEnumeration.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
(with props)
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
(with props)
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
(with props)
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
(with props)
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
(with props)
Removed:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/AbstractEnumerationMap.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/AbstractEnumerationMapTest.java
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java
Copied:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/IteratorEnumeration.java
(from r931641,
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/IteratorEnumeration.java)
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/IteratorEnumeration.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/IteratorEnumeration.java&p1=tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/IteratorEnumeration.java&r1=931641&r2=942404&rev=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/IteratorEnumeration.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/IteratorEnumeration.java
Sat May 8 15:36:51 2010
@@ -19,7 +19,7 @@
* under the License.
*/
-package org.apache.tiles.util;
+package org.apache.tiles.request.collection;
import java.util.Enumeration;
import java.util.Iterator;
@@ -74,7 +74,8 @@ public class IteratorEnumeration<E> impl
public E nextElement() {
return iterator.next();
}
-
- // Properties
- //
-------------------------------------------------------------------------
+
+ public Iterator<E> getIterator() {
+ return iterator;
+ }
}
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java?rev=942404&r1=942403&r2=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java
Sat May 8 15:36:51 2010
@@ -139,7 +139,7 @@ public class ReadOnlyEnumerationMap<V> i
@SuppressWarnings("unchecked")
@Override
public boolean equals(Object o) {
- HasKeys<V> otherRequest = ((AbstractEnumerationMap<V>) o).request;
+ HasKeys<V> otherRequest = ((ReadOnlyEnumerationMap<V>) o).request;
boolean retValue = true;
Set<String> otherKeys = new HashSet<String>();
for (Enumeration<String> attribs = otherRequest.getKeys(); attribs
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java?rev=942404&r1=942403&r2=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java
Sat May 8 15:36:51 2010
@@ -234,8 +234,8 @@ public class ReadOnlyEnumerationMapTest
@Test
public void testEqualsObject() {
HasKeys<Integer> otherRequest = createMock(HasKeys.class);
- AbstractEnumerationMap<Integer> otherMap = createMockBuilder(
- AbstractEnumerationMap.class).withConstructor(otherRequest)
+ ReadOnlyEnumerationMap<Integer> otherMap = createMockBuilder(
+ ReadOnlyEnumerationMap.class).withConstructor(otherRequest)
.createMock();
Enumeration<String> keys = createMock(Enumeration.class);
Enumeration<String> otherKeys = createMock(Enumeration.class);
@@ -273,8 +273,8 @@ public class ReadOnlyEnumerationMapTest
@Test
public void testEqualsObjectFalse() {
HasKeys<Integer> otherRequest = createMock(HasKeys.class);
- AbstractEnumerationMap<Integer> otherMap = createMockBuilder(
- AbstractEnumerationMap.class).withConstructor(otherRequest)
+ ReadOnlyEnumerationMap<Integer> otherMap = createMockBuilder(
+ ReadOnlyEnumerationMap.class).withConstructor(otherRequest)
.createMock();
Enumeration<String> keys = createMock(Enumeration.class);
Enumeration<String> otherKeys = createMock(Enumeration.class);
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java?rev=942404&r1=942403&r2=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java
Sat May 8 15:36:51 2010
@@ -20,20 +20,13 @@
*/
package org.apache.tiles.request.freemarker;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
import java.util.Set;
-import org.apache.tiles.request.util.MapEntry;
+import org.apache.tiles.request.collection.ScopeMap;
+import org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor;
import freemarker.core.Environment;
-import freemarker.template.TemplateModel;
import freemarker.template.TemplateModelException;
-import freemarker.template.utility.DeepUnwrap;
/**
* <p>
@@ -43,7 +36,7 @@ import freemarker.template.utility.DeepU
* @version $Rev$ $Date$
*/
-final class EnvironmentScopeMap implements Map<String, Object> {
+final class EnvironmentScopeMap extends ScopeMap {
/**
* The request object to use.
@@ -56,186 +49,18 @@ final class EnvironmentScopeMap implemen
* @param request The request object to use.
*/
public EnvironmentScopeMap(Environment request) {
+ super(new EnvironmentScopeExtractor(request));
this.request = request;
}
- /** {...@inheritdoc} */
- public void clear() {
- Iterator<String> keys = keySet().iterator();
- while (keys.hasNext()) {
- request.setVariable(keys.next(), null);
- }
- }
-
- /** {...@inheritdoc} */
- public boolean containsKey(Object key) {
- return getAttribute(key(key)) != null;
- }
-
- /** {...@inheritdoc} */
- public boolean containsValue(Object value) {
- if (value == null) {
- return (false);
- }
- Set<String> keys;
- keys = getAttributeNames();
- for (String name : keys) {
- Object next = getAttribute(name);
- if (next == value) {
- return (true);
- }
- }
- return (false);
- }
-
- /** {...@inheritdoc} */
@SuppressWarnings("unchecked")
- public Set<Map.Entry<String, Object>> entrySet() {
- Set<Map.Entry<String, Object>> set = new HashSet<Map.Entry<String,
Object>>();
- Set<String> keys;
- keys = getAttributeNames();
- for (String name : keys) {
- Object next = getAttribute(name);
- set.add(new MapEntry(name, next, false));
- }
- return (set);
- }
-
- /** {...@inheritdoc} */
- @Override
- public boolean equals(Object o) {
- Environment otherRequest = ((EnvironmentScopeMap) o).request;
- boolean retValue = true;
- Set<String> keys;
- try {
- keys = getAttributeNames();
- for (String name : keys) {
- Object next = getAttribute(name);
- TemplateModel otherVariable = otherRequest.getVariable(name);
- if (otherVariable != null) {
- Object otherObj = DeepUnwrap.unwrap(otherVariable);
- retValue = (next == null && otherObj == null)
- || (next != null && next.equals(otherObj));
- }
- }
- } catch (TemplateModelException e) {
- throw new FreemarkerRequestException("Cannot get the entry set",
e);
- }
-
- return retValue;
- }
-
- /** {...@inheritdoc} */
- public Object get(Object key) {
- return getAttribute(key(key));
- }
-
- /** {...@inheritdoc} */
@Override
- public int hashCode() {
- return (request.hashCode());
- }
-
- /** {...@inheritdoc} */
- public boolean isEmpty() {
- return (size() < 1);
- }
-
- /** {...@inheritdoc} */
public Set<String> keySet() {
- return getAttributeNames();
- }
-
- /** {...@inheritdoc} */
- public Object put(String key, Object value) {
- if (value == null) {
- return (remove(key));
- }
- String skey = key(key);
- Object previous = getAttribute(skey);
- setAttribute(skey, value);
- return (previous);
- }
-
- /** {...@inheritdoc} */
- public void putAll(Map<? extends String, ? extends Object> map) {
- Iterator<? extends String> keys = map.keySet().iterator();
- while (keys.hasNext()) {
- String key = keys.next();
- setAttribute(key, map.get(key));
- }
- }
-
- /** {...@inheritdoc} */
- public Object remove(Object key) {
- String skey = key(key);
- Object previous = getAttribute(skey);
- setAttribute(skey, null);
- return (previous);
- }
-
- /** {...@inheritdoc} */
- public int size() {
- return getAttributeNames().size();
- }
-
- /** {...@inheritdoc} */
- public Collection<Object> values() {
- List<Object> list = new ArrayList<Object>();
- for(String name : getAttributeNames()) {
- list.add(getAttribute(name));
- }
- return (list);
- }
-
- /**
- * Returns the string representation of the key.
- *
- * @param key The key.
- * @return The string representation of the key.
- * @throws IllegalArgumentException If the key is <code>null</code>.
- */
- private String key(Object key) {
- if (key == null) {
- throw new IllegalArgumentException();
- } else if (key instanceof String) {
- return ((String) key);
- } else {
- return (key.toString());
- }
- }
-
- private Object getAttribute(String name) {
- try {
- TemplateModel variable = request.getVariable(name);
- if (variable != null) {
- return DeepUnwrap.unwrap(variable);
- }
- return null;
- } catch (TemplateModelException e) {
- throw new FreemarkerRequestException(
- "Cannot get attribute with name '" + name + "'", e);
- }
- }
-
- private void setAttribute(String name, Object value) {
- try {
- TemplateModel model = request.getObjectWrapper().wrap(value);
- request.setVariable(name, model);
- } catch (TemplateModelException e) {
- throw new FreemarkerRequestException(
- "Error when wrapping an object setting the '" + name
- + "' attribute", e);
- }
- }
-
- @SuppressWarnings("unchecked")
- private Set<String> getAttributeNames() {
try {
return request.getKnownVariableNames();
} catch (TemplateModelException e) {
throw new FreemarkerRequestException(
- "Cannot get variable names from request", e);
+ "Cannot get known variable names", e);
}
}
}
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java?rev=942404&r1=942403&r2=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
Sat May 8 15:36:51 2010
@@ -6,22 +6,17 @@ public class NotAvailableFreemarkerServl
NotAvailableFeatureException {
public NotAvailableFreemarkerServletException() {
- // TODO Auto-generated constructor stub
}
public NotAvailableFreemarkerServletException(String message) {
super(message);
- // TODO Auto-generated constructor stub
}
public NotAvailableFreemarkerServletException(Throwable e) {
super(e);
- // TODO Auto-generated constructor stub
}
public NotAvailableFreemarkerServletException(String message, Throwable e)
{
super(message, e);
- // TODO Auto-generated constructor stub
}
-
}
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java?rev=942404&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
(added)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
Sat May 8 15:36:51 2010
@@ -0,0 +1,64 @@
+package org.apache.tiles.request.freemarker.extractor;
+
+import java.util.Enumeration;
+
+import org.apache.tiles.request.collection.IteratorEnumeration;
+import org.apache.tiles.request.collection.extractor.AttributeExtractor;
+import org.apache.tiles.request.freemarker.FreemarkerRequestException;
+
+import freemarker.core.Environment;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.utility.DeepUnwrap;
+
+public class EnvironmentScopeExtractor implements AttributeExtractor {
+
+ private Environment request;
+
+ public EnvironmentScopeExtractor(Environment request) {
+ this.request = request;
+ }
+
+ @Override
+ public void removeValue(String name) {
+ request.setVariable(name, null);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Enumeration<String> getKeys() {
+ try {
+ return new IteratorEnumeration<String>(request
+ .getKnownVariableNames().iterator());
+ } catch (TemplateModelException e) {
+ throw new FreemarkerRequestException(
+ "Cannot iterate variable names correctly", e);
+ }
+ }
+
+ @Override
+ public Object getValue(String key) {
+ try {
+ TemplateModel variable = request.getVariable(key);
+ if (variable != null) {
+ return DeepUnwrap.unwrap(variable);
+ }
+ return null;
+ } catch (TemplateModelException e) {
+ throw new FreemarkerRequestException(
+ "Cannot get attribute with name '" + key + "'", e);
+ }
+ }
+
+ @Override
+ public void setValue(String key, Object value) {
+ try {
+ TemplateModel model = request.getObjectWrapper().wrap(value);
+ request.setVariable(key, model);
+ } catch (TemplateModelException e) {
+ throw new FreemarkerRequestException(
+ "Error when wrapping an object setting the '" + key
+ + "' attribute", e);
+ }
+ }
+}
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java?rev=942404&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
(added)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
Sat May 8 15:36:51 2010
@@ -0,0 +1,82 @@
+/**
+ *
+ */
+package org.apache.tiles.request.freemarker;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Set;
+
+import org.junit.Test;
+
+import freemarker.core.Environment;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateHashModelEx;
+import freemarker.template.TemplateModelException;
+
+/**
+ * Tests {...@link EnvironmentScopeMap}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class EnvironmentScopeMapTest {
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.EnvironmentScopeMap#keySet()}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testKeySet() {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ Set<String> names = createMock(Set.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(template.getConfiguration()).andReturn(configuration);
+ expect(configuration.getSharedVariableNames()).andReturn(names);
+
+ replay(template, model, configuration, names);
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeMap map = new EnvironmentScopeMap(env);
+ assertEquals(names, map.keySet());
+ verify(template, model, configuration, names);
+ }
+
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.EnvironmentScopeMap#keySet()}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @SuppressWarnings("unchecked")
+ @Test(expected=FreemarkerRequestException.class)
+ public void testKeySetException() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModelEx model = createMock(TemplateHashModelEx.class);
+ Configuration configuration = createMock(Configuration.class);
+ Set<String> names = createMock(Set.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(model.keys()).andThrow(new TemplateModelException());
+ expect(template.getConfiguration()).andReturn(configuration);
+ expect(configuration.getSharedVariableNames()).andReturn(names);
+
+ try {
+ replay(template, model, configuration, names);
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeMap map = new EnvironmentScopeMap(env);
+ map.keySet();
+ } finally {
+ verify(template, model, configuration, names);
+ }
+ }
+}
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java?rev=942404&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
(added)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
Sat May 8 15:36:51 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.request.freemarker;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {...@link FreemarkerRequestException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FreemarkerRequestExceptionTest {
+
+ /**
+ * Test method for {...@link
FreemarkerRequestException#FreemarkerRequestException()}.
+ */
+ @Test
+ public void testFreemarkerRequestException() {
+ FreemarkerRequestException exception = new
FreemarkerRequestException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
FreemarkerRequestException#FreemarkerRequestException(java.lang.String)}.
+ */
+ @Test
+ public void testFreemarkerRequestExceptionString() {
+ FreemarkerRequestException exception = new
FreemarkerRequestException("my message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
FreemarkerRequestException#FreemarkerRequestException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testFreemarkerRequestExceptionThrowable() {
+ Throwable cause = new Throwable();
+ FreemarkerRequestException exception = new
FreemarkerRequestException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
FreemarkerRequestException#FreemarkerRequestException(java.lang.String,
java.lang.Throwable)}.
+ */
+ @Test
+ public void testFreemarkerRequestExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ FreemarkerRequestException exception = new
FreemarkerRequestException("my message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java?rev=942404&r1=942403&r2=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
Sat May 8 15:36:51 2010
@@ -21,26 +21,34 @@
package org.apache.tiles.request.freemarker;
-import static org.junit.Assert.*;
+import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
import java.io.IOException;
+import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
-import org.apache.tiles.request.freemarker.FreemarkerRequest;
import org.apache.tiles.request.scope.ContextResolver;
+import org.apache.tiles.request.servlet.ServletRequest;
import org.apache.tiles.request.util.ApplicationAccess;
import org.junit.Before;
import org.junit.Test;
import freemarker.core.Environment;
+import freemarker.ext.servlet.HttpRequestHashModel;
+import freemarker.template.ObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateModelException;
/**
* Tests {...@link FreemarkerRequest}.
@@ -85,6 +93,38 @@ public class FreemarkerRequestTest {
}
/**
+ * Tests {...@link
FreemarkerRequest#createServletFreemarkerRequest(ApplicationContext,
Environment)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test
+ public void testCreateServletFreemarkerRequest() throws
TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ PrintWriter writer = new PrintWriter(new StringWriter());
+ HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
+ HttpServletResponse httpResponse =
createMock(HttpServletResponse.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ ApplicationContext applicationContext =
createMock(ApplicationContext.class);
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+
+ replay(httpRequest, httpResponse, objectWrapper);
+ HttpRequestHashModel requestHashModel = new
HttpRequestHashModel(httpRequest, httpResponse, objectWrapper);
+ expect(model.get("Request")).andReturn(requestHashModel);
+
+ replay(template, model, applicationContext);
+ Environment env = new Environment(template, model, writer);
+ Locale locale = Locale.ITALY;
+ env.setLocale(locale);
+
+ FreemarkerRequest request =
FreemarkerRequest.createServletFreemarkerRequest(applicationContext, env);
+ ServletRequest servletRequest = (ServletRequest)
request.getWrappedRequest();
+ assertEquals(httpRequest, servletRequest.getRequest());
+ assertEquals(httpResponse, servletRequest.getResponse());
+ verify(template, model, httpRequest, httpResponse, objectWrapper,
applicationContext);
+ }
+
+ /**
* Tests {...@link FreemarkerRequest#dispatch(String)}.
*
* @throws IOException If something goes wrong.
@@ -111,6 +151,30 @@ public class FreemarkerRequestTest {
}
/**
+ * Tests {...@link FreemarkerRequest#getPageScope()}.
+ */
+ @Test
+ public void testGetPageScope() {
+ Request enclosedRequest = createMock(Request.class);
+ replay(enclosedRequest);
+ context = new FreemarkerRequest(enclosedRequest, env);
+ assertTrue(context.getPageScope() instanceof EnvironmentScopeMap);
+ verify(enclosedRequest);
+ }
+
+ /**
+ * Tests {...@link FreemarkerRequest#getNativeScopes()}.
+ */
+ @Test
+ public void testGetNativeScopes() {
+ Request enclosedRequest = createMock(Request.class);
+ replay(enclosedRequest);
+ context = new FreemarkerRequest(enclosedRequest, env);
+ assertArrayEquals(new String[] {"page"}, context.getNativeScopes());
+ verify(enclosedRequest);
+ }
+
+ /**
* Tests {...@link FreemarkerRequest#getRequestLocale()}.
*/
@Test
@@ -163,6 +227,30 @@ public class FreemarkerRequestTest {
}
/**
+ * Tests {...@link FreemarkerRequest#getPrintWriter()}.
+ *
+ * @throws IOException If something goes wrong.
+ */
+ @Test
+ public void testGetPrintWriterPrintWriter() {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ PrintWriter writer = new PrintWriter(new StringWriter());
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ replay(template, model);
+ Environment env = new Environment(template, model, writer);
+ Locale locale = Locale.ITALY;
+ env.setLocale(locale);
+ Request enclosedRequest = createMock(Request.class);
+
+ replay(enclosedRequest);
+ context = new FreemarkerRequest(enclosedRequest, env);
+ assertSame(writer, context.getPrintWriter());
+ verify(enclosedRequest, template, model);
+ }
+
+
+ /**
* Tests {...@link FreemarkerRequest#getWriter()}.
*
* @throws IOException If something goes wrong.
@@ -177,7 +265,6 @@ public class FreemarkerRequestTest {
assertNotNull(context.getWriter());
verify(enclosedRequest);
}
-
/**
* Tests {...@link FreemarkerRequest#getRequestObjects()}.
*/
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java?rev=942404&r1=942403&r2=942404&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java
(original)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java
Sat May 8 15:36:51 2010
@@ -15,7 +15,9 @@ import javax.servlet.GenericServlet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.freemarker.FreemarkerRequestUtil;
+import org.apache.tiles.request.util.ApplicationAccess;
import org.junit.Before;
import org.junit.Test;
@@ -89,6 +91,28 @@ public class FreemarkerRequestUtilTest {
verify(template, model, request, objectWrapper);
}
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.FreemarkerRequestUtil#getRequestHashModel(freemarker.core.Environment)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test(expected=NotAvailableFreemarkerServletException.class)
+ public void testGetRequestHashModelException() throws
TemplateModelException {
+ HttpServletRequest request = createMock(HttpServletRequest.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+
+ expect(model.get("Request")).andThrow(new TemplateModelException());
+
+ replay(template, model, request, objectWrapper);
+ try {
+ env = new Environment(template, model, writer);
+ locale = Locale.ITALY;
+ env.setLocale(locale);
+ FreemarkerRequestUtil.getRequestHashModel(env);
+ } finally {
+ verify(template, model, request, objectWrapper);
+ }
+ }
+
/**
* Test method for {...@link
org.apache.tiles.request.freemarker.FreemarkerRequestUtil
@@ -113,4 +137,57 @@ public class FreemarkerRequestUtilTest {
assertEquals(servletContextModel,
FreemarkerRequestUtil.getServletContextHashModel(env));
verify(template, model, servlet, servletContext, objectWrapper);
}
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.FreemarkerRequestUtil
+ * #getServletContextHashModel(freemarker.core.Environment)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test(expected=NotAvailableFreemarkerServletException.class)
+ public void testGetServletContextHashModelException() throws
TemplateModelException {
+ GenericServlet servlet = createMock(GenericServlet.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ replay(servlet, objectWrapper);
+
+ expect(model.get("Application")).andThrow(new
TemplateModelException());
+
+ replay(template, model);
+ try {
+ env = new Environment(template, model, writer);
+ locale = Locale.ITALY;
+ env.setLocale(locale);
+ FreemarkerRequestUtil.getServletContextHashModel(env);
+ } finally {
+ verify(template, model, servlet, objectWrapper);
+ }
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.FreemarkerRequestUtil
+ * #getApplicationContext(Environment)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test
+ public void testGetApplicationContext() throws TemplateModelException {
+ GenericServlet servlet = createMock(GenericServlet.class);
+ ServletContext servletContext = createMock(ServletContext.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ ApplicationContext applicationContext =
createMock(ApplicationContext.class);
+
+ expect(servlet.getServletContext()).andReturn(servletContext).times(2);
+ expect(servletContext.getAttribute(ApplicationAccess
+ .APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext);
+
+ replay(servlet, objectWrapper);
+ ServletContextHashModel servletContextModel = new
ServletContextHashModel(servlet, objectWrapper);
+
+ expect(model.get("Application")).andReturn(servletContextModel);
+
+ replay(template, model, servletContext);
+ env = new Environment(template, model, writer);
+ locale = Locale.ITALY;
+ env.setLocale(locale);
+ assertEquals(applicationContext,
FreemarkerRequestUtil.getApplicationContext(env));
+ verify(template, model, servlet, servletContext, objectWrapper);
+ }
}
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java?rev=942404&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
(added)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
Sat May 8 15:36:51 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.request.freemarker;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {...@link NotAvailableFreemarkerServletException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class NotAvailableFreemarkerServletExceptionTest {
+
+ /**
+ * Test method for {...@link
NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException()}.
+ */
+ @Test
+ public void testNotAvailableFreemarkerServletException() {
+ NotAvailableFreemarkerServletException exception = new
NotAvailableFreemarkerServletException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException(java.lang.String)}.
+ */
+ @Test
+ public void testNotAvailableFreemarkerServletExceptionString() {
+ NotAvailableFreemarkerServletException exception = new
NotAvailableFreemarkerServletException("my message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testNotAvailableFreemarkerServletExceptionThrowable() {
+ Throwable cause = new Throwable();
+ NotAvailableFreemarkerServletException exception = new
NotAvailableFreemarkerServletException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException(java.lang.String,
java.lang.Throwable)}.
+ */
+ @Test
+ public void testNotAvailableFreemarkerServletExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ NotAvailableFreemarkerServletException exception = new
NotAvailableFreemarkerServletException("my message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java?rev=942404&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
(added)
+++
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
Sat May 8 15:36:51 2010
@@ -0,0 +1,246 @@
+/**
+ *
+ */
+package org.apache.tiles.request.freemarker.extractor;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.apache.tiles.request.collection.IteratorEnumeration;
+import org.apache.tiles.request.freemarker.FreemarkerRequestException;
+import org.junit.Test;
+
+import freemarker.core.Environment;
+import freemarker.template.Configuration;
+import freemarker.template.ObjectWrapper;
+import freemarker.template.Template;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateHashModelEx;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.TemplateScalarModel;
+
+/**
+ * Tests {...@link EnvironmentScopeExtractor}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class EnvironmentScopeExtractorTest {
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#removeValue(java.lang.String)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test
+ public void testRemoveValue() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateModel valueModel = createMock(TemplateModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(model.get("key")).andReturn(null);
+ expect(template.getConfiguration()).andReturn(configuration);
+ expect(configuration.getSharedVariable("key")).andReturn(null);
+
+ replay(template, model, valueModel, configuration);
+ Environment env = new Environment(template, model, writer);
+ env.setVariable("key", valueModel);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ extractor.removeValue("key");
+ assertNull(env.getVariable("key"));
+ verify(template, model, valueModel, configuration);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#getKeys()}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetKeys() {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateModel valueModel = createMock(TemplateModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ Set<String> names = createMock(Set.class);
+ Iterator<String> namesIt = createMock(Iterator.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(template.getConfiguration()).andReturn(configuration);
+ expect(configuration.getSharedVariableNames()).andReturn(names);
+ expect(names.iterator()).andReturn(namesIt);
+
+ replay(template, model, valueModel, configuration, names, namesIt);
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ assertEquals(namesIt, ((IteratorEnumeration)
extractor.getKeys()).getIterator());
+ verify(template, model, valueModel, configuration, names, namesIt);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#getKeys()}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @SuppressWarnings("unchecked")
+ @Test(expected=FreemarkerRequestException.class)
+ public void testGetKeysException() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModelEx model = createMock(TemplateHashModelEx.class);
+ TemplateModel valueModel = createMock(TemplateModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ Set<String> names = createMock(Set.class);
+ Iterator<String> namesIt = createMock(Iterator.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(model.keys()).andThrow(new TemplateModelException());
+ expect(template.getConfiguration()).andReturn(configuration);
+ expect(configuration.getSharedVariableNames()).andReturn(names);
+
+ replay(template, model, valueModel, configuration, names, namesIt);
+ try {
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ extractor.getKeys();
+ } finally {
+ verify(template, model, valueModel, configuration, names, namesIt);
+ }
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#getValue(java.lang.String)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test
+ public void testGetValue() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateScalarModel valueModel = createMock(TemplateScalarModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(valueModel.getAsString()).andReturn("value");
+
+ replay(template, model, valueModel, configuration, objectWrapper);
+ Environment env = new Environment(template, model, writer);
+ env.setVariable("key", valueModel);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ assertEquals("value", extractor.getValue("key"));
+ verify(template, model, valueModel, configuration, objectWrapper);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#getValue(java.lang.String)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test
+ public void testGetValueNull() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateScalarModel valueModel = createMock(TemplateScalarModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(model.get("key")).andReturn(null);
+ expect(template.getConfiguration()).andReturn(configuration);
+ expect(configuration.getSharedVariable("key")).andReturn(null);
+
+ replay(template, model, valueModel, configuration, objectWrapper);
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ assertNull(extractor.getValue("key"));
+ verify(template, model, valueModel, configuration, objectWrapper);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#getValue(java.lang.String)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test(expected=FreemarkerRequestException.class)
+ public void testGetValueException() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateScalarModel valueModel = createMock(TemplateScalarModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(model.get("key")).andThrow(new TemplateModelException());
+
+ replay(template, model, valueModel, configuration, objectWrapper);
+ try {
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ extractor.getValue("key");
+ } finally {
+ verify(template, model, valueModel, configuration, objectWrapper);
+ }
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#setValue(java.lang.String,
java.lang.Object)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test
+ public void testSetValue() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateModel valueModel = createMock(TemplateModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(template.getObjectWrapper()).andReturn(objectWrapper);
+ expect(objectWrapper.wrap("value")).andReturn(valueModel);
+
+ replay(template, model, valueModel, configuration, objectWrapper);
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ extractor.setValue("key", "value");
+ assertEquals(valueModel, env.getVariable("key"));
+ verify(template, model, valueModel, configuration, objectWrapper);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor#setValue(java.lang.String,
java.lang.Object)}.
+ * @throws TemplateModelException If something goes wrong.
+ */
+ @Test(expected=FreemarkerRequestException.class)
+ public void testSetValueException() throws TemplateModelException {
+ Template template = createMock(Template.class);
+ TemplateHashModel model = createMock(TemplateHashModel.class);
+ TemplateModel valueModel = createMock(TemplateModel.class);
+ Configuration configuration = createMock(Configuration.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+ Writer writer = new StringWriter();
+
+ expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
+ expect(template.getObjectWrapper()).andReturn(objectWrapper);
+ expect(objectWrapper.wrap("value")).andThrow(new
TemplateModelException());
+
+ replay(template, model, valueModel, configuration, objectWrapper);
+ try {
+ Environment env = new Environment(template, model, writer);
+ EnvironmentScopeExtractor extractor = new
EnvironmentScopeExtractor(env);
+ extractor.setValue("key", "value");
+ assertEquals(valueModel, env.getVariable("key"));
+ } finally {
+ verify(template, model, valueModel, configuration, objectWrapper);
+ }
+ }
+}
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL