/*
|
* CDDL HEADER START
|
*
|
* The contents of this file are subject to the terms of the
|
* Common Development and Distribution License, Version 1.0 only
|
* (the "License"). You may not use this file except in compliance
|
* with the License.
|
*
|
* You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
|
* or http://forgerock.org/license/CDDLv1.0.html.
|
* See the License for the specific language governing permissions
|
* and limitations under the License.
|
*
|
* When distributing Covered Code, include this CDDL HEADER in each
|
* file and include the License file at legal-notices/CDDLv1_0.txt.
|
* If applicable, add the following below this CDDL HEADER, with the
|
* fields enclosed by brackets "[]" replaced with your own identifying
|
* information:
|
* Portions Copyright [yyyy] [name of copyright owner]
|
*
|
* CDDL HEADER END
|
*
|
* Copyright 2014 ForgeRock AS
|
*/
|
package org.opends.server.util;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import org.testng.annotations.DataProvider;
|
import org.testng.annotations.Test;
|
|
import static org.assertj.core.api.Assertions.*;
|
|
@SuppressWarnings("javadoc")
|
public class StaticUtilsTest extends UtilTestCase
|
{
|
|
@DataProvider
|
public Object[][] stackTraceToSingleLineString()
|
{
|
final String message = "This is a tremendous error message";
|
final String noMessageStackTrace = "Exception (" + getClass().getSimpleName() + ".java:";
|
final String messageStackTrace = "Exception: " + message + " (" + getClass().getSimpleName() + ".java:";
|
return new Object[][] {
|
{ null, "" },
|
{ new Exception(), noMessageStackTrace },
|
{ new Exception(message), messageStackTrace },
|
{ new Exception(new Exception()), "Exception: java.lang.Exception (" + getClass().getSimpleName() + ".java:" },
|
{ new Exception(message, new Exception()), messageStackTrace },
|
{ new InvocationTargetException(null), "InvocationTargetException (" + getClass().getSimpleName() + ".java:" },
|
{ new InvocationTargetException(new Exception()), noMessageStackTrace },
|
{ new InvocationTargetException(new Exception(message)), messageStackTrace },
|
};
|
}
|
|
@Test(dataProvider = "stackTraceToSingleLineString")
|
public void stackTraceToSingleLineString(Throwable t, String startOfOutput)
|
{
|
assertThat(StaticUtils.stackTraceToSingleLineString(t)).startsWith(startOfOutput);
|
}
|
|
@DataProvider
|
public Object[][] stackTraceToSingleLineStringInDebugBuild()
|
{
|
final String message = "This is a tremendous error message";
|
final String messageStackTrace = "java.lang.Exception: " + message + " / " + getClass().getSimpleName() + ".java:";
|
return new Object[][] {
|
{ null, "" },
|
{ new Exception(), "java.lang.Exception / " + getClass().getSimpleName() + ".java:" },
|
{ new Exception(message), messageStackTrace },
|
{ new Exception(new Exception()), "java.lang.Exception: java.lang.Exception / " + getClass().getSimpleName() + ".java:" },
|
{ new Exception(message, new Exception()), messageStackTrace },
|
};
|
}
|
|
@Test(dataProvider = "stackTraceToSingleLineStringInDebugBuild")
|
public void stackTraceToSingleLineStringInDebugBuild(Throwable t, String startOfOutput)
|
{
|
final boolean orig = DynamicConstants.DEBUG_BUILD;
|
DynamicConstants.DEBUG_BUILD = true;
|
try
|
{
|
assertThat(StaticUtils.stackTraceToSingleLineString(t)).startsWith(startOfOutput);
|
}
|
finally
|
{
|
DynamicConstants.DEBUG_BUILD = orig;
|
}
|
}
|
|
}
|