/* * Copyright (C) 2004 Joe Walnes. * Copyright (C) 2006, 2007 XStream Committers. * All rights reserved. * * The software in this package is published under the terms of the BSD * style license a copy of which has been included with this distribution in * the LICENSE.txt file. * * Created on 29. May 2004 by Joe Walnes */ package com.thoughtworks.xstream.converters.extended; import com.thoughtworks.acceptance.AbstractAcceptanceTest; /** * @author <a href="mailto:boxley@thoughtworks.com">B. K. Oxley (binkley)</a> * @author Joe Walnes */ public class StackTraceElementConverterTest extends AbstractAcceptanceTest { private StackTraceElementFactory factory = new StackTraceElementFactory(); public void testSerializesStackTraceElement() { StackTraceElement trace = factory.unknownSourceElement("com.blah.SomeClass", "someMethod"); String expectedXml = "<trace>com.blah.SomeClass.someMethod(Unknown Source)</trace>"; assertBothWays(trace, expectedXml); } public void testIncludesDebugInformation() { StackTraceElement trace = factory.element("com.blah.SomeClass", "someMethod", "SomeClass.java", 22); String expectedXml = "<trace>com.blah.SomeClass.someMethod(SomeClass.java:22)</trace>"; assertBothWays(trace, expectedXml); } public void testIncludesPartialDebugInformation() { StackTraceElement trace = factory.element("com.blah.SomeClass", "someMethod", "SomeClass.java"); String expectedXml = "<trace>com.blah.SomeClass.someMethod(SomeClass.java)</trace>"; assertBothWays(trace, expectedXml); } public void testIncludesNativeMethods() { StackTraceElement trace = factory.nativeMethodElement("com.blah.SomeClass", "someMethod"); String expectedXml = "<trace>com.blah.SomeClass.someMethod(Native Method)</trace>"; assertBothWays(trace, expectedXml); } public void testSupportsInnerClasses() { StackTraceElement trace = factory.unknownSourceElement("com.blah.SomeClass$Inner$2", "someMethod"); String expectedXml = "<trace>com.blah.SomeClass$Inner$2.someMethod(Unknown Source)</trace>"; assertBothWays(trace, expectedXml); } }