/*
* Created on Apr 20, 2005
*/
package cyrille.lang.exception;
import junit.framework.TestCase;
/**
* @author <a href="mailto:cleclerc@pobox.com">Cyrille Le Clerc </a>
*/
public class StackTraceUtilsTest extends TestCase {
private String m_nestedStackTrace = "com.osa.mdsp.testing.NestableAssertionFailedError: type=EnablerGatewayIn,description=mspvp528,url=http://mspvp528_a:3200/wsgwsoaphttp1/soaphttpengine/urn:mdspwsgw%23ProxyService?enabler=MMSEnabler/V1.0/SenderSEI,httpHeaderHost=EnablerGatewayIn:3200,proxyHost=<null>,proxyPort=0 Unable to retrieve Enabler Gateway Client information [GTW_GC_TP_GEN] : com.osa.mdsp.csp.fwk.error.MDSPCmnFwkException - 625/com.osa.mdsp.csp.fwk.asyncevent.AsyncEventDatabaseAccess/select TECID, EVENT_DATE, EVENT_TYPE, TARGET_RESOURCE from T_FWK_EVENT_BRDCST where EVENT_DATE>=? order by EVENT_DATE asc/SQL error select TECID, EVENT_DATE, EVENT_TYPE, TARGET_RESOURCE from T_FWK_EVENT_BRDCST where EVENT_DATE>=? order by EVENT_DATE asc;\r\n"
+ " at com.osa.mdsp.testing.MultiFailureTestCase.failAndContinueTest(MultiFailureTestCaseOld.java:74);\r\n"
+ " at com.osa.mdsp.testing.enablers.MMSSenderEnablerRemoteServiceTestCase.testMMSSenderEnablerSendMMS(MMSSenderEnablerRemoteServiceTestCase.java:44);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79);\r\n"
+ " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code));\r\n"
+ " at com.osa.mdsp.testing.MultiFailureTestCase.run(MultiFailureTestCaseOld.java:109);\r\n"
+ " at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:198);\r\n"
+ " at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279);\r\n"
+ " at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110);\r\n"
+ " at com.werken.werkz.Goal.fire(Goal.java:639);\r\n"
+ " at com.werken.werkz.Goal.attain(Goal.java:575);\r\n"
+ " at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127);\r\n"
+ " at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279);\r\n"
+ " at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110);\r\n"
+ " at com.werken.werkz.Goal.fire(Goal.java:639);\r\n"
+ " at com.werken.werkz.Goal.attain(Goal.java:575);\r\n"
+ " at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127);\r\n"
+ " at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279);\r\n"
+ " at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110);\r\n"
+ " at com.werken.werkz.Goal.fire(Goal.java:639);\r\n"
+ " at com.werken.werkz.Goal.attain(Goal.java:575);\r\n"
+ " at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671);\r\n"
+ " at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263);\r\n"
+ " at org.apache.maven.cli.App.doMain(App.java:488);\r\n"
+ " at org.apache.maven.cli.App.main(App.java:1239);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79);\r\n"
+ " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41);\r\n"
+ " at com.werken.forehead.Forehead.run(Forehead.java:551);\r\n"
+ " at com.werken.forehead.Forehead.main(Forehead.java:581);\r\n"
+ "Caused by: Unable to retrieve Enabler Gateway Client information [GTW_GC_TP_GEN] : com.osa.mdsp.csp.fwk.error.MDSPCmnFwkException - 625/com.osa.mdsp.csp.fwk.asyncevent.AsyncEventDatabaseAccess/select TECID, EVENT_DATE, EVENT_TYPE, TARGET_RESOURCE from T_FWK_EVENT_BRDCST where EVENT_DATE>=? order by EVENT_DATE asc/SQL error select TECID, EVENT_DATE, EVENT_TYPE, TARGET_RESOURCE from T_FWK_EVENT_BRDCST where EVENT_DATE>=? order by EVENT_DATE asc;\r\n"
+ " at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221);\r\n"
+ " at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128);\r\n"
+ " at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087);\r\n"
+ " at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source);\r\n"
+ " at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source);\r\n"
+ " at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source);\r\n"
+ " at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source);\r\n"
+ " at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source);\r\n"
+ " at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source);\r\n"
+ " at org.apache.xerces.parsers.XMLParser.parse(Unknown Source);\r\n"
+ " at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source);\r\n"
+ " at javax.xml.parsers.SAXParser.parse(Unknown Source);\r\n"
+ " at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227);\r\n"
+ " at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696);\r\n"
+ " at org.apache.axis.Message.getSOAPEnvelope(Message.java:424);\r\n"
+ " at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62);\r\n"
+ " at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206);\r\n"
+ " at org.apache.axis.client.Call.invokeEngine(Call.java:2754);\r\n"
+ " at org.apache.axis.client.Call.invoke(Call.java:2737);\r\n"
+ " at org.apache.axis.client.Call.invoke(Call.java:2413);\r\n"
+ " at org.apache.axis.client.Call.invoke(Call.java:2336);\r\n"
+ " at org.apache.axis.client.Call.invoke(Call.java:1793);\r\n"
+ " at com.osa.mdsp.csp.smms.mms.enabler.sei.MMSSenderEnablerRemoteSoapBindingStub.sendMMS(MMSSenderEnablerRemoteSoapBindingStub.java:262);\r\n"
+ " at com.osa.mdsp.testing.enablers.MMSSenderEnablerRemoteServiceTestCase.testMMSSenderEnablerSendMMS(MMSSenderEnablerRemoteServiceTestCase.java:87);\r\n"
+ " at com.osa.mdsp.testing.enablers.MMSSenderEnablerRemoteServiceTestCase.testMMSSenderEnablerSendMMS(MMSSenderEnablerRemoteServiceTestCase.java:41);\r\n"
+ " ... 51 more";
private String m_stackTrace = "com.osa.mdsp.testing.NestableAssertionFailedError: type=EnablerGatewayIn,description=mspvp528,url=http://mspvp528_a:3200/wsgwsoaphttp1/soaphttpengine/urn:mdspwsgw%23ProxyService?enabler=MMSEnabler/V1.0/SenderSEI,httpHeaderHost=EnablerGatewayIn:3200,proxyHost=<null>,proxyPort=0 Unable to retrieve Enabler Gateway Client information [GTW_GC_TP_GEN] : com.osa.mdsp.csp.fwk.error.MDSPCmnFwkException - 625/com.osa.mdsp.csp.fwk.asyncevent.AsyncEventDatabaseAccess/select TECID, EVENT_DATE, EVENT_TYPE, TARGET_RESOURCE from T_FWK_EVENT_BRDCST where EVENT_DATE>=? order by EVENT_DATE asc/SQL error select TECID, EVENT_DATE, EVENT_TYPE, TARGET_RESOURCE from T_FWK_EVENT_BRDCST where EVENT_DATE>=? order by EVENT_DATE asc;\r\n"
+ " at com.osa.mdsp.testing.MultiFailureTestCase.failAndContinueTest(MultiFailureTestCaseOld.java:74);\r\n"
+ " at com.osa.mdsp.testing.enablers.MMSSenderEnablerRemoteServiceTestCase.testMMSSenderEnablerSendMMS(MMSSenderEnablerRemoteServiceTestCase.java:44);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79);\r\n"
+ " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code));\r\n"
+ " at com.osa.mdsp.testing.MultiFailureTestCase.run(MultiFailureTestCaseOld.java:109);\r\n"
+ " at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:198);\r\n"
+ " at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279);\r\n"
+ " at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110);\r\n"
+ " at com.werken.werkz.Goal.fire(Goal.java:639);\r\n"
+ " at com.werken.werkz.Goal.attain(Goal.java:575);\r\n"
+ " at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127);\r\n"
+ " at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279);\r\n"
+ " at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110);\r\n"
+ " at com.werken.werkz.Goal.fire(Goal.java:639);\r\n"
+ " at com.werken.werkz.Goal.attain(Goal.java:575);\r\n"
+ " at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127);\r\n"
+ " at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279);\r\n"
+ " at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79);\r\n"
+ " at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110);\r\n"
+ " at com.werken.werkz.Goal.fire(Goal.java:639);\r\n"
+ " at com.werken.werkz.Goal.attain(Goal.java:575);\r\n"
+ " at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671);\r\n"
+ " at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263);\r\n"
+ " at org.apache.maven.cli.App.doMain(App.java:488);\r\n"
+ " at org.apache.maven.cli.App.main(App.java:1239);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method);\r\n"
+ " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79);\r\n"
+ " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41);\r\n"
+ " at com.werken.forehead.Forehead.run(Forehead.java:551);\r\n"
+ " at com.werken.forehead.Forehead.main(Forehead.java:581);\r\n";
public static void main(String[] args) {
junit.textui.TestRunner.run(StackTraceUtilsTest.class);
}
public void testSplitNestedStackTraces() {
String[] stackTraces = StackTraceUtils.splitNestedStackTraces(this.m_nestedStackTrace);
for (String nestedStackTrace : stackTraces) {
System.out.println(nestedStackTrace);
}
}
public void testTruncateStackTrace() {
String searchedString = "at org.apache.commons.jelly.tags.ant.AntTag.doTag";
String actual = StackTraceUtils.truncateStackTrace(this.m_stackTrace, searchedString);
System.out.println(actual);
}
public void testTruncateNestedStackTrace() {
String searchedString = "at org.apache.commons.jelly.tags.ant.AntTag.doTag";
String actual = StackTraceUtils.truncateNestedStackTrace(this.m_nestedStackTrace, searchedString);
System.out.println(actual);
}
public void testSplit() {
String str = "value 1 separator value 2 separator value 3 separator value 4 separator value 5";
String[] expected = new String[] { "value 1 ", " value 2 ", " value 3 ", " value 4 ", " value 5" };
String[] actual = StackTraceUtils.split(str, "separator");
assertEquals("result size", expected.length, actual.length);
for (int i = 0; i < actual.length; i++) {
assertEquals("value " + i, expected[i], actual[i]);
}
}
public void testSplitWithNoTrailingValue() {
String str = "value 1 separator value 2 separator value 3 separator value 4 separator value 5separator";
String[] expected = new String[] { "value 1 ", " value 2 ", " value 3 ", " value 4 ", " value 5" };
String[] actual = StackTraceUtils.split(str, "separator");
assertEquals("result size", expected.length, actual.length);
for (int i = 0; i < actual.length; i++) {
assertEquals("value " + i, expected[i], actual[i]);
}
}
public void testSplitWithNoSeparator() {
String str = "value 1 ";
String[] expected = new String[] { "value 1 " };
String[] actual = StackTraceUtils.split(str, "separator");
assertEquals("result size", expected.length, actual.length);
for (int i = 0; i < actual.length; i++) {
assertEquals("value " + i, expected[i], actual[i]);
}
}
}