/*
* 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 07. November 2006 by Joerg Schaible
*/
package com.thoughtworks.xstream.converters;
import com.thoughtworks.xstream.mapper.CannotResolveClassException;
import junit.framework.TestCase;
import java.util.StringTokenizer;
/**
* @author Jörg Schaible
*/
public class ConversionExceptionTest extends TestCase {
public void testDebugMessageIsNotNested() {
Exception ex = new CannotResolveClassException("JUnit");
ConversionException innerEx = new ConversionException("Inner", ex);
ConversionException outerEx = new ConversionException("Outer", innerEx);
StringTokenizer tokenizer = new StringTokenizer(outerEx.getMessage(), "\n\r");
int ends = 0;
while(tokenizer.hasMoreTokens()) {
if (tokenizer.nextToken().startsWith("---- Debugging information ----")) {
++ends;
}
}
assertEquals(1, ends);
}
public void testInfoRetainsOrder() {
ConversionException ex = new ConversionException("Message");
ex.add("1st", "first");
ex.add("2nd", "second");
ex.add("3rd", "third");
StringTokenizer tokenizer = new StringTokenizer(ex.getMessage(), "\n\r");
tokenizer.nextToken();
tokenizer.nextToken();
assertEquals("1st : first", tokenizer.nextToken());
assertEquals("2nd : second", tokenizer.nextToken());
assertEquals("3rd : third", tokenizer.nextToken());
}
}