- Revision
- 121
- Author
- mward
- Date
- 2007-05-31 07:53:44 -0500 (Thu, 31 May 2007)
Log Message
replaced tabs with spaces
Modified Paths
- trunk/core/src/main/java/org/codehaus/waffle/servlet/WaffleXMLServlet.java
- trunk/core/src/main/java/org/codehaus/waffle/view/GetterXMLConverter.java
- trunk/core/src/main/java/org/codehaus/waffle/view/ResponderView.java
- trunk/core/src/main/java/org/codehaus/waffle/view/XMLView.java
- trunk/core/src/test/java/org/codehaus/waffle/servlet/WaffleXMLServletTest.java
- trunk/core/src/test/java/org/codehaus/waffle/view/GetterXMLConverterTest.java
- trunk/core/src/test/java/org/codehaus/waffle/view/XMLViewTest.java
Diff
Modified: trunk/core/src/main/java/org/codehaus/waffle/servlet/WaffleXMLServlet.java (120 => 121)
--- trunk/core/src/main/java/org/codehaus/waffle/servlet/WaffleXMLServlet.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/main/java/org/codehaus/waffle/servlet/WaffleXMLServlet.java 2007-05-31 12:53:44 UTC (rev 121) @@ -21,9 +21,9 @@ */ public class WaffleXMLServlet extends WaffleServlet { - protected void buildViewToReferrer( - ControllerDefinition controllerDefinition, - ActionMethodResponse actionMethodResponse) { - actionMethodResponse.setReturnValue(new XMLView()); - } + protected void buildViewToReferrer( + ControllerDefinition controllerDefinition, + ActionMethodResponse actionMethodResponse) { + actionMethodResponse.setReturnValue(new XMLView()); + } }
Modified: trunk/core/src/main/java/org/codehaus/waffle/view/GetterXMLConverter.java (120 => 121)
--- trunk/core/src/main/java/org/codehaus/waffle/view/GetterXMLConverter.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/main/java/org/codehaus/waffle/view/GetterXMLConverter.java 2007-05-31 12:53:44 UTC (rev 121) @@ -19,112 +19,112 @@ */ public class GetterXMLConverter implements Converter { - private static final String IS_INITIALS = "is"; + private static final String IS_INITIALS = "is"; - private static final String GET_INITIALS = "get"; + private static final String GET_INITIALS = "get"; - private static final Object[] NO_ARGUMENTS = {}; + private static final Object[] NO_ARGUMENTS = {}; - public void marshal(Object o, HierarchicalStreamWriter writer, - MarshallingContext context) { + public void marshal(Object o, HierarchicalStreamWriter writer, + MarshallingContext context) { - Map<String, Method> getters = getGetters(o.getClass()); - for (String name : getters.keySet()) { - Method getter = getters.get(name); - writer.startNode(name); - try { - Object got = getter.invoke(o, NO_ARGUMENTS); - if (got != null) - - context.convertAnother(got); - } catch (IllegalArgumentException e) { - throw new IllegalStateException(e); - } catch (IllegalAccessException e) { - throw new IllegalStateException(e); - } catch (InvocationTargetException e) { - throw new IllegalStateException(e); - } - writer.endNode(); + Map<String, Method> getters = getGetters(o.getClass()); + for (String name : getters.keySet()) { + Method getter = getters.get(name); + writer.startNode(name); + try { + Object got = getter.invoke(o, NO_ARGUMENTS); + if (got != null) - } - } + context.convertAnother(got); + } catch (IllegalArgumentException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e); + } + writer.endNode(); - public Object unmarshal(HierarchicalStreamReader arg0, - UnmarshallingContext arg1) { - throw new UnsupportedOperationException( - "Converter only available for marshaling"); - } + } + } - public boolean canConvert(Class clazz) { - return true; - } + public Object unmarshal(HierarchicalStreamReader arg0, + UnmarshallingContext arg1) { + throw new UnsupportedOperationException( + "Converter only available for marshaling"); + } - public static Map<String, Method> getGetters(Class clazz) { - Map<String, Method> methods = new TreeMap<String, Method>(); - for (Method m : clazz.getMethods()) { - if (!isGetter(m)) { - continue; - } - if (m.getDeclaringClass().equals(Object.class)) { - // hack: removing getClass() - continue; - } - String propertyName = ""; - if (m.getName().startsWith(GET_INITIALS)) { - propertyName = m.getName().substring(GET_INITIALS.length()); + public boolean canConvert(Class clazz) { + return true; + } - } else if (m.getName().startsWith(IS_INITIALS)) { - propertyName = m.getName().substring(IS_INITIALS.length()); - } - // ok, this is a hack, cause we can have a problem - // with classes with a get() method - // (the propertyname would be an empty string) - if (propertyName.length() != 0) { - if (propertyName.length() == 1 - || Character.isLowerCase(propertyName.charAt(1))) { - propertyName = decapitalize(propertyName); - } - methods.put(propertyName, m); - } - } - return methods; - } + public static Map<String, Method> getGetters(Class clazz) { + Map<String, Method> methods = new TreeMap<String, Method>(); + for (Method m : clazz.getMethods()) { + if (!isGetter(m)) { + continue; + } + if (m.getDeclaringClass().equals(Object.class)) { + // hack: removing getClass() + continue; + } + String propertyName = ""; + if (m.getName().startsWith(GET_INITIALS)) { + propertyName = m.getName().substring(GET_INITIALS.length()); - private static String decapitalize(String name) { - if (name == null || name.length() == 0) { - return name; - } - if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) - && Character.isUpperCase(name.charAt(0))) { - return name; - } - char chars[] = name.toCharArray(); - chars[0] = Character.toLowerCase(chars[0]); - return new String(chars); - } + } else if (m.getName().startsWith(IS_INITIALS)) { + propertyName = m.getName().substring(IS_INITIALS.length()); + } + // ok, this is a hack, cause we can have a problem + // with classes with a get() method + // (the propertyname would be an empty string) + if (propertyName.length() != 0) { + if (propertyName.length() == 1 + || Character.isLowerCase(propertyName.charAt(1))) { + propertyName = decapitalize(propertyName); + } + methods.put(propertyName, m); + } + } + return methods; + } - public static boolean isGetter(Method m) { - if (m.getParameterTypes().length != 0 - || !Modifier.isPublic(m.getModifiers()) - || m.getReturnType().equals(Void.TYPE)) { - return false; - } - if (Modifier.isStatic(m.getModifiers()) - || !Modifier.isPublic(m.getModifiers()) - || Modifier.isAbstract(m.getModifiers())) { - return false; - } - if (m.getName().startsWith(GET_INITIALS) - && m.getName().length() > GET_INITIALS.length()) { - return true; - } - if (m.getName().startsWith(IS_INITIALS) - && m.getName().length() > IS_INITIALS.length() - && (m.getReturnType().equals(boolean.class) || m - .getReturnType().equals(Boolean.class))) { - return true; - } - return false; - } + private static String decapitalize(String name) { + if (name == null || name.length() == 0) { + return name; + } + if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) + && Character.isUpperCase(name.charAt(0))) { + return name; + } + char chars[] = name.toCharArray(); + chars[0] = Character.toLowerCase(chars[0]); + return new String(chars); + } + public static boolean isGetter(Method m) { + if (m.getParameterTypes().length != 0 + || !Modifier.isPublic(m.getModifiers()) + || m.getReturnType().equals(Void.TYPE)) { + return false; + } + if (Modifier.isStatic(m.getModifiers()) + || !Modifier.isPublic(m.getModifiers()) + || Modifier.isAbstract(m.getModifiers())) { + return false; + } + if (m.getName().startsWith(GET_INITIALS) + && m.getName().length() > GET_INITIALS.length()) { + return true; + } + if (m.getName().startsWith(IS_INITIALS) + && m.getName().length() > IS_INITIALS.length() + && (m.getReturnType().equals(boolean.class) || m + .getReturnType().equals(Boolean.class))) { + return true; + } + return false; + } + }
Modified: trunk/core/src/main/java/org/codehaus/waffle/view/ResponderView.java (120 => 121)
--- trunk/core/src/main/java/org/codehaus/waffle/view/ResponderView.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/main/java/org/codehaus/waffle/view/ResponderView.java 2007-05-31 12:53:44 UTC (rev 121) @@ -13,17 +13,17 @@ */ public abstract class ResponderView extends View { - public ResponderView() { - super(null, ""); - } + public ResponderView() { + super(null, ""); + } - /** - * Renders the output directly into servlet response - * - * @param request the ServletRequest - * @param response the HttpServletResponse - * @throws IOException - */ - public abstract void respond(ServletRequest request, HttpServletResponse response) - throws IOException; + /** + * Renders the output directly into servlet response + * + * @param request the ServletRequest + * @param response the HttpServletResponse + * @throws IOException + */ + public abstract void respond(ServletRequest request, HttpServletResponse response) + throws IOException; }
Modified: trunk/core/src/main/java/org/codehaus/waffle/view/XMLView.java (120 => 121)
--- trunk/core/src/main/java/org/codehaus/waffle/view/XMLView.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/main/java/org/codehaus/waffle/view/XMLView.java 2007-05-31 12:53:44 UTC (rev 121) @@ -20,27 +20,27 @@ */ public class XMLView extends ResponderView { - public static final String CONTENT_TYPE = "text/plain"; + public static final String CONTENT_TYPE = "text/plain"; - @Override - public void respond(ServletRequest request, HttpServletResponse response) - throws IOException { - XStream xs = new WaffleXStream(); - xs.registerConverter(new GetterXMLConverter(), -19); - xs.registerConverter(new CollectionConverter(xs.getMapper()) { - public boolean canConvert(Class c) { - return Collection.class.isAssignableFrom(c); - } - }, -18); + @Override + public void respond(ServletRequest request, HttpServletResponse response) + throws IOException { + XStream xs = new WaffleXStream(); + xs.registerConverter(new GetterXMLConverter(), -19); + xs.registerConverter(new CollectionConverter(xs.getMapper()) { + public boolean canConvert(Class c) { + return Collection.class.isAssignableFrom(c); + } + }, -18); - // TODO: should we stream.setMode(XStream.NO_REFERENCES); ? + // TODO: should we stream.setMode(XStream.NO_REFERENCES); ? - String data = "" - response.setContentType(CONTENT_TYPE); + String data = "" + response.setContentType(CONTENT_TYPE); - // TODO: char encoding? - response.getOutputStream().print(data); - } + // TODO: char encoding? + response.getOutputStream().print(data); + } } @@ -52,22 +52,22 @@ */ class WaffleXStream extends XStream { - public WaffleXStream() { - super(new DomDriver()); - } + public WaffleXStream() { + super(new DomDriver()); + } - @Override - protected MapperWrapper wrapMapper(MapperWrapper next) { - return new MapperWrapper(next) { - @Override - public String serializedClass(Class type) { - String value = super.serializedClass(type); - if (type.getName().replace('$', '-').equals(value)) { - return type.getSimpleName(); - } - return value; - } - }; - } + @Override + protected MapperWrapper wrapMapper(MapperWrapper next) { + return new MapperWrapper(next) { + @Override + public String serializedClass(Class type) { + String value = super.serializedClass(type); + if (type.getName().replace('$', '-').equals(value)) { + return type.getSimpleName(); + } + return value; + } + }; + } } \ No newline at end of file
Modified: trunk/core/src/test/java/org/codehaus/waffle/servlet/WaffleXMLServletTest.java (120 => 121)
--- trunk/core/src/test/java/org/codehaus/waffle/servlet/WaffleXMLServletTest.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/test/java/org/codehaus/waffle/servlet/WaffleXMLServletTest.java 2007-05-31 12:53:44 UTC (rev 121) @@ -7,14 +7,14 @@ public class WaffleXMLServletTest { - @Test - public void testOverridenActionMethodResponse() { - ActionMethodResponse response = new ActionMethodResponse(); - response.setReturnValue("a value that will be overriden...."); - - WaffleXMLServlet servlet = new WaffleXMLServlet(); - servlet.buildViewToReferrer(null, response); - Assert.assertTrue((response.getReturnValue() instanceof XMLView)); - } + @Test + public void testOverridenActionMethodResponse() { + ActionMethodResponse response = new ActionMethodResponse(); + response.setReturnValue("a value that will be overriden...."); + WaffleXMLServlet servlet = new WaffleXMLServlet(); + servlet.buildViewToReferrer(null, response); + Assert.assertTrue((response.getReturnValue() instanceof XMLView)); + } + }
Modified: trunk/core/src/test/java/org/codehaus/waffle/view/GetterXMLConverterTest.java (120 => 121)
--- trunk/core/src/test/java/org/codehaus/waffle/view/GetterXMLConverterTest.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/test/java/org/codehaus/waffle/view/GetterXMLConverterTest.java 2007-05-31 12:53:44 UTC (rev 121) @@ -8,199 +8,199 @@ public class GetterXMLConverterTest { - @Test - public void testChecksIfGetIsAGetter() throws SecurityException, - NoSuchMethodException { - Method get = GetterXMLConverterTestClass.class.getMethod("get", - new Class[0]); - Assert.assertFalse(GetterXMLConverter.isGetter(get)); - } + @Test + public void testChecksIfGetIsAGetter() throws SecurityException, + NoSuchMethodException { + Method get = GetterXMLConverterTestClass.class.getMethod("get", + new Class[0]); + Assert.assertFalse(GetterXMLConverter.isGetter(get)); + } - @Test - public void testChecksIfIsIsAGetter() throws SecurityException, - NoSuchMethodException { - Method is = GetterXMLConverterTestClass.class.getMethod("is", - new Class[0]); - Assert.assertFalse(GetterXMLConverter.isGetter(is)); - } + @Test + public void testChecksIfIsIsAGetter() throws SecurityException, + NoSuchMethodException { + Method is = GetterXMLConverterTestClass.class.getMethod("is", + new Class[0]); + Assert.assertFalse(GetterXMLConverter.isGetter(is)); + } - @Test - public void testChecksIfANonReturnMethodIsAGetter() - throws SecurityException, NoSuchMethodException { - Method getVoidProperty = GetterXMLConverterTestClass.class.getMethod( - "getVoidProperty", new Class[0]); - Assert.assertFalse(GetterXMLConverter.isGetter(getVoidProperty)); - } + @Test + public void testChecksIfANonReturnMethodIsAGetter() + throws SecurityException, NoSuchMethodException { + Method getVoidProperty = GetterXMLConverterTestClass.class.getMethod( + "getVoidProperty", new Class[0]); + Assert.assertFalse(GetterXMLConverter.isGetter(getVoidProperty)); + } - @Test - public void testChecksIfAMethodWhichReceivesAParameterIsAGetter() - throws SecurityException, NoSuchMethodException { - Method getBizarre = GetterXMLConverterTestClass.class.getMethod( - "getBizarre", new Class[] { Integer.TYPE }); - Assert.assertFalse(GetterXMLConverter.isGetter(getBizarre)); - } + @Test + public void testChecksIfAMethodWhichReceivesAParameterIsAGetter() + throws SecurityException, NoSuchMethodException { + Method getBizarre = GetterXMLConverterTestClass.class.getMethod( + "getBizarre", new Class[] { Integer.TYPE }); + Assert.assertFalse(GetterXMLConverter.isGetter(getBizarre)); + } - @Test - public void testChecksIfAMethodNotStartingWithGetIsAGetter() - throws SecurityException, NoSuchMethodException { - Method bizarreGetter3 = GetterXMLConverterTestClass.class.getMethod( - "bizarreGetter3", new Class[0]); - Assert.assertFalse(GetterXMLConverter.isGetter(bizarreGetter3)); - } + @Test + public void testChecksIfAMethodNotStartingWithGetIsAGetter() + throws SecurityException, NoSuchMethodException { + Method bizarreGetter3 = GetterXMLConverterTestClass.class.getMethod( + "bizarreGetter3", new Class[0]); + Assert.assertFalse(GetterXMLConverter.isGetter(bizarreGetter3)); + } - @Test - public void testChecksIfAnIsMethodReturningStringIsAGetter() - throws SecurityException, NoSuchMethodException { - Method isBizarre = GetterXMLConverterTestClass.class.getMethod( - "isBizarre", new Class[0]); - Assert.assertFalse(GetterXMLConverter.isGetter(isBizarre)); - } + @Test + public void testChecksIfAnIsMethodReturningStringIsAGetter() + throws SecurityException, NoSuchMethodException { + Method isBizarre = GetterXMLConverterTestClass.class.getMethod( + "isBizarre", new Class[0]); + Assert.assertFalse(GetterXMLConverter.isGetter(isBizarre)); + } - @Test - public void testChecksForAValidGetter() throws SecurityException, - NoSuchMethodException { - Method getInternal = GetterXMLConverterTestClass.class.getMethod( - "getInternal", new Class[0]); - Assert.assertTrue(GetterXMLConverter.isGetter(getInternal)); - } + @Test + public void testChecksForAValidGetter() throws SecurityException, + NoSuchMethodException { + Method getInternal = GetterXMLConverterTestClass.class.getMethod( + "getInternal", new Class[0]); + Assert.assertTrue(GetterXMLConverter.isGetter(getInternal)); + } - @Test - public void testChecksForAValidIs() throws SecurityException, - NoSuchMethodException { - Method isClosed = GetterXMLConverterTestClass.class.getMethod( - "isClosed", new Class[0]); - Assert.assertTrue(GetterXMLConverter.isGetter(isClosed)); - } + @Test + public void testChecksForAValidIs() throws SecurityException, + NoSuchMethodException { + Method isClosed = GetterXMLConverterTestClass.class.getMethod( + "isClosed", new Class[0]); + Assert.assertTrue(GetterXMLConverter.isGetter(isClosed)); + } - @Test - public void testChecksForAStaticMethodGetter() throws SecurityException, - NoSuchMethodException { - Method getStatic = GetterXMLConverterTestClass.class.getMethod( - "getStatic", new Class[0]); - Assert.assertFalse(GetterXMLConverter.isGetter(getStatic)); - } + @Test + public void testChecksForAStaticMethodGetter() throws SecurityException, + NoSuchMethodException { + Method getStatic = GetterXMLConverterTestClass.class.getMethod( + "getStatic", new Class[0]); + Assert.assertFalse(GetterXMLConverter.isGetter(getStatic)); + } - @Test - public void testGetGettersIgnoresGetClass() { - Map<String, Method> x = GetterXMLConverter - .getGetters(GetterXMLConverterTestClass.class); - Assert.assertFalse(x.containsKey("class")); - } + @Test + public void testGetGettersIgnoresGetClass() { + Map<String, Method> x = GetterXMLConverter + .getGetters(GetterXMLConverterTestClass.class); + Assert.assertFalse(x.containsKey("class")); + } - @Test - public void testGetGettersIgnoresGettersAndIsersWithoutAName() { - Map<String, Method> x = GetterXMLConverter - .getGetters(GetterXMLConverterTestClass.class); - Assert.assertFalse(x.containsKey("")); - } + @Test + public void testGetGettersIgnoresGettersAndIsersWithoutAName() { + Map<String, Method> x = GetterXMLConverter + .getGetters(GetterXMLConverterTestClass.class); + Assert.assertFalse(x.containsKey("")); + } - @Test - public void testGetGettersIgnoresGettersReturningVoid() { - Map<String, Method> x = GetterXMLConverter - .getGetters(GetterXMLConverterTestClass.class); - Assert.assertFalse(x.containsKey("voidProperty")); - } + @Test + public void testGetGettersIgnoresGettersReturningVoid() { + Map<String, Method> x = GetterXMLConverter + .getGetters(GetterXMLConverterTestClass.class); + Assert.assertFalse(x.containsKey("voidProperty")); + } - @Test - public void testGetGettersFindsIs() { - Map<String, Method> x = GetterXMLConverter - .getGetters(GetterXMLConverterTestClass.class); - Assert.assertTrue(x.containsKey("closed")); - } + @Test + public void testGetGettersFindsIs() { + Map<String, Method> x = GetterXMLConverter + .getGetters(GetterXMLConverterTestClass.class); + Assert.assertTrue(x.containsKey("closed")); + } - @Test - public void testGetGettersForCapsPROPERTIES() { - Map<String, Method> x = GetterXMLConverter - .getGetters(GetterXMLConverterTestClass.class); - Assert.assertTrue(x.containsKey("URLocationFoo")); - } + @Test + public void testGetGettersForCapsPROPERTIES() { + Map<String, Method> x = GetterXMLConverter + .getGetters(GetterXMLConverterTestClass.class); + Assert.assertTrue(x.containsKey("URLocationFoo")); + } - @Test - public void testGetGettersForFieldWithLiength1() { - Map<String, Method> x = GetterXMLConverter - .getGetters(GetterXMLConverterTestClass.class); - Assert.assertTrue(x.containsKey("a")); - } + @Test + public void testGetGettersForFieldWithLiength1() { + Map<String, Method> x = GetterXMLConverter + .getGetters(GetterXMLConverterTestClass.class); + Assert.assertTrue(x.containsKey("a")); + } - public static class GetterXMLConverterTestClass { + public static class GetterXMLConverterTestClass { - @SuppressWarnings("unused") - private int internal; + @SuppressWarnings("unused") + private int internal; - private boolean closed; + private boolean closed; - public int getA() { - return 0; - } + public int getA() { + return 0; + } - public void getVoidProperty() { - } + public void getVoidProperty() { + } - public void simpleMethod() { - } + public void simpleMethod() { + } - public String getURLocationFoo() { - return ""; - } + public String getURLocationFoo() { + return ""; + } - public String is() { - return null; - } + public String is() { + return null; + } - public void simpleWrongMethod() { - @SuppressWarnings("unused") - int i = 1 / 0; - } + public void simpleWrongMethod() { + @SuppressWarnings("unused") + int i = 1 / 0; + } - public void argumentMethod(int i) { - } + public void argumentMethod(int i) { + } - public String isBizarre() { - return null; - } + public String isBizarre() { + return null; + } - @SuppressWarnings("unused") - private String value; + @SuppressWarnings("unused") + private String value; - public void setValue(String value) { - this.value = value; - } + public void setValue(String value) { + this.value = value; + } - public static int getStatic() { - return 0; - } + public static int getStatic() { + return 0; + } - protected int getProtected() { - return 0; - } + protected int getProtected() { + return 0; + } - public int getInternal() { - return internal; - } + public int getInternal() { + return internal; + } - public boolean isClosed() { - return closed; - } + public boolean isClosed() { + return closed; + } - public void bizarreGetter1() { - } + public void bizarreGetter1() { + } - public int bizarreGetter2(int x) { - return x; - } + public int bizarreGetter2(int x) { + return x; + } - public int bizarreGetter3() { - return 0; - } + public int bizarreGetter3() { + return 0; + } - public int getBizarre(int x) { - return x; - } + public int getBizarre(int x) { + return x; + } - public void get() { + public void get() { - } + } - } + } }
Modified: trunk/core/src/test/java/org/codehaus/waffle/view/XMLViewTest.java (120 => 121)
--- trunk/core/src/test/java/org/codehaus/waffle/view/XMLViewTest.java 2007-05-31 09:04:46 UTC (rev 120) +++ trunk/core/src/test/java/org/codehaus/waffle/view/XMLViewTest.java 2007-05-31 12:53:44 UTC (rev 121) @@ -1,15 +1,7 @@ package org.codehaus.waffle.view; -import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - +import com.thoughtworks.xstream.converters.javabean.BeanProperty; +import com.thoughtworks.xstream.converters.javabean.PropertyDictionary; import org.codehaus.waffle.Constants; import org.jmock.Expectations; import org.jmock.MockObjectTestCase; @@ -18,189 +10,191 @@ import org.junit.Test; import org.junit.runner.RunWith; -import com.thoughtworks.xstream.converters.javabean.BeanProperty; -import com.thoughtworks.xstream.converters.javabean.PropertyDictionary; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; /** - * * @author Paulo Silveira - * */ @RunWith(JMock.class) public class XMLViewTest extends MockObjectTestCase { - private Mockery mockery = new Mockery(); + private Mockery mockery = new Mockery(); - private HttpServletRequest mockRequest = mockRequest(); + private HttpServletRequest mockRequest = mockRequest(); - private HttpServletResponse mockResponse = mockResponse(); + private HttpServletResponse mockResponse = mockResponse(); - private MockServletOutputStream mockOutput = new MockServletOutputStream(); + private MockServletOutputStream mockOutput = new MockServletOutputStream(); - @Test - public void testStripsPackageNameForNonAliasedType() throws IOException { - final MyObject object = new MyObject(); + @Test + public void testStripsPackageNameForNonAliasedType() throws IOException { + final MyObject object = new MyObject(); - buildExpectationsFor(object); + buildExpectationsFor(object); - new XMLView().respond(mockRequest, mockResponse); - assertEquals("<MyObject/>", mockOutput.getContent()); - } + new XMLView().respond(mockRequest, mockResponse); + assertEquals("<MyObject/>", mockOutput.getContent()); + } - @Test - public void testObjectsWithRelationships() throws IOException { - final MyOtherObject object = new MyOtherObject(); + @Test + public void testObjectsWithRelationships() throws IOException { + final MyOtherObject object = new MyOtherObject(); - buildExpectationsFor(object); + buildExpectationsFor(object); - new XMLView().respond(mockRequest, mockResponse); - assertEquals("<MyOtherObject>\n <myGetter/>\n</MyOtherObject>", - mockOutput.getContent()); - } + new XMLView().respond(mockRequest, mockResponse); + assertEquals("<MyOtherObject>\n <myGetter/>\n</MyOtherObject>", + mockOutput.getContent()); + } - @Test - public void testObjectsWithRelationshipsAndNullAttributes() - throws IOException { - final MyOtherObject object = new MyOtherObject(); - object.my = null; + @Test + public void testObjectsWithRelationshipsAndNullAttributes() + throws IOException { + final MyOtherObject object = new MyOtherObject(); + object.my = null; - buildExpectationsFor(object); + buildExpectationsFor(object); - new XMLView().respond(mockRequest, mockResponse); - assertEquals("<MyOtherObject>\n <myGetter/>\n</MyOtherObject>", - mockOutput.getContent()); - } + new XMLView().respond(mockRequest, mockResponse); + assertEquals("<MyOtherObject>\n <myGetter/>\n</MyOtherObject>", + mockOutput.getContent()); + } - @Test - public void testObjectsCollections() throws IOException { - final BeanWithCollection object = new BeanWithCollection(); - buildExpectationsFor(object); + @Test + public void testObjectsCollections() throws IOException { + final BeanWithCollection object = new BeanWithCollection(); + buildExpectationsFor(object); - new XMLView().respond(mockRequest, mockResponse); - assertEquals( - "<BeanWithCollection>\n <collection>\n <MyObject/>\n <MyObject/>\n </collection>\n</BeanWithCollection>", - mockOutput.getContent()); - } + new XMLView().respond(mockRequest, mockResponse); + assertEquals( + "<BeanWithCollection>\n <collection>\n <MyObject/>\n <MyObject/>\n </collection>\n</BeanWithCollection>", + mockOutput.getContent()); + } - @Test - public void testDoesntStripPackageNameForWrapperTypes() throws IOException { - final Number[] numbers = new Number[] { new Byte((byte) 0), - new Short((short) 0), new Integer(0), new Long(0), - new Float(0), new Double(0) }; - String expected = "<number-array>\n" + " <byte>0</byte>\n" - + " <short>0</short>\n" + " <int>0</int>\n" - + " <long>0</long>\n" + " <float>0.0</float>\n" - + " <double>0.0</double>\n" + "</number-array>"; + @Test + public void testDoesntStripPackageNameForWrapperTypes() throws IOException { + final Number[] numbers = new Number[]{(byte) 0, (short) 0, 0, 0L, 0f, 0d}; + String expected = "<number-array>\n" + " <byte>0</byte>\n" + + " <short>0</short>\n" + " <int>0</int>\n" + + " <long>0</long>\n" + " <float>0.0</float>\n" + + " <double>0.0</double>\n" + "</number-array>"; - buildExpectationsFor(numbers); + buildExpectationsFor(numbers); - new XMLView().respond(mockRequest, mockResponse); - assertEquals(expected, mockOutput.getContent()); - } + new XMLView().respond(mockRequest, mockResponse); + assertEquals(expected, mockOutput.getContent()); + } - private void buildExpectationsFor(final Object object) throws IOException { - Expectations expectations = new Expectations() { - { - one(mockRequest).getAttribute(Constants.CONTROLLER_KEY); - will(returnValue(object)); - one(mockResponse).setContentType(with(any(String.class))); - one(mockResponse).getOutputStream(); - will(returnValue(mockOutput)); - } - }; - mockery.checking(expectations); - } + private void buildExpectationsFor(final Object object) throws IOException { + Expectations expectations = new Expectations() { + { + one(mockRequest).getAttribute(Constants.CONTROLLER_KEY); + will(returnValue(object)); + one(mockResponse).setContentType(with(any(String.class))); + one(mockResponse).getOutputStream(); + will(returnValue(mockOutput)); + } + }; + mockery.checking(expectations); + } - private HttpServletResponse mockResponse() { - return mockery.mock(HttpServletResponse.class); - } + private HttpServletResponse mockResponse() { + return mockery.mock(HttpServletResponse.class); + } - private HttpServletRequest mockRequest() { - return mockery.mock(HttpServletRequest.class); - } + private HttpServletRequest mockRequest() { + return mockery.mock(HttpServletRequest.class); + } - // JMock 2 is not able to mock concrete classes yet - class MockServletOutputStream extends ServletOutputStream { - private String content; + // JMock 2 is not able to mock concrete classes yet + class MockServletOutputStream extends ServletOutputStream { + private String content; - public void write(int b) { + public void write(int b) { - } + } - @Override - public void print(String s) { - this.content = s; - } + @Override + public void print(String s) { + this.content = s; + } - public String getContent() { - return content; - } - } + public String getContent() { + return content; + } + } - class SomeClass { - private String a; + class SomeClass { + private String a; - private String URL; + private String URL; - private String c; + private String c; - private String d; + private String d; - private String e; + private String e; - private String f; + private String f; - public String getA() { - return a; - } + public String getA() { + return a; + } - public void setA(String a) { - this.a = a; - } + public void setA(String a) { + this.a = a; + } - public String getURL() { - return URL; - } + public String getURL() { + return URL; + } - public void setURL(String url) { - this.URL = "" - } + public void setURL(String url) { + this.URL = "" + } - public String getC() { - return c; - } + public String getC() { + return c; + } - public void setC(String c) { - this.c = c; - } + public void setC(String c) { + this.c = c; + } - public String getD() { - return d; - } + public String getD() { + return d; + } - public void setE(String e) { - this.e = e; - } - } + public void setE(String e) { + this.e = e; + } + } - @Test - public void testListsFieldsInClassInDefinitionOrder() { - Iterator properties = new PropertyDictionary() - .serializablePropertiesFor(SomeClass.class); - assertEquals("URL", ((BeanProperty) properties.next()).getName()); - assertEquals("a", ((BeanProperty) properties.next()).getName()); - assertEquals("c", ((BeanProperty) properties.next()).getName()); - assertFalse("No more fields should be present", properties.hasNext()); - } + @Test + public void testListsFieldsInClassInDefinitionOrder() { + Iterator properties = new PropertyDictionary() + .serializablePropertiesFor(SomeClass.class); + assertEquals("URL", ((BeanProperty) properties.next()).getName()); + assertEquals("a", ((BeanProperty) properties.next()).getName()); + assertEquals("c", ((BeanProperty) properties.next()).getName()); + assertFalse("No more fields should be present", properties.hasNext()); + } } class MyOtherObject { - MyObject my = new MyObject(); + MyObject my = new MyObject(); - public MyObject getMyGetter() { - return my; - } + public MyObject getMyGetter() { + return my; + } } class MyObject { @@ -209,14 +203,15 @@ class BeanWithCollection { - private Map<Object, Object> map = new HashMap<Object, Object>(); - { - map.put("1", new MyObject()); - map.put("2", new MyObject()); - } + private Map<Object, Object> map = new HashMap<Object, Object>(); - public Collection<Object> getCollection() { - return map.values(); - } + { + map.put("1", new MyObject()); + map.put("2", new MyObject()); + } + public Collection<Object> getCollection() { + return map.values(); + } + } \ No newline at end of file
To unsubscribe from this list please visit:
