package com.etsy.statsd.profiler.util;
import org.junit.Test;
import static org.junit.Assert.*;
public class StackTraceFormatterTest {
@Test
public void testFormatStackTraceElement() {
StackTraceElement element = new StackTraceElement("com.etsy.statsd.profiler.util.StackTraceFormatter",
"formatStackTraceElement", "StackTraceFormatter.java", 21);
StackTraceElement elementNoFile = new StackTraceElement("com.etsy.statsd.profiler.util.StackTraceFormatter",
"formatStackTraceElement", null, 21);
String expected = "com-etsy-statsd-profiler-util-StackTraceFormatter-formatStackTraceElement-21";
assertEquals(expected, StackTraceFormatter.formatStackTraceElement(element));
assertEquals(expected, StackTraceFormatter.formatStackTraceElement(elementNoFile));
}
@Test
public void testFormatEmptyStackTrace() {
StackTraceElement[] stack = new StackTraceElement[0];
assertEquals("cpu.trace", StackTraceFormatter.formatStackTrace(stack));
}
@Test
public void testFormatStackTrace() {
StackTraceElement[] stack = new StackTraceElement[2];
stack[0] = new StackTraceElement("com.etsy.statsd.profiler.util.StackTraceFormatter",
"formatStackTraceElement", "StackTraceFormatter.java", 21);
stack[1] = new StackTraceElement("com.etsy.statsd.profiler.util.StackTraceFormatterTest",
"testFormatStackTraceElement", "StackTraceFormatterTest.java", 17);
String expected = "cpu.trace.com-etsy-statsd-profiler-util-StackTraceFormatter-formatStackTraceElement-21.com-etsy-statsd-profiler-util-StackTraceFormatterTest-testFormatStackTraceElement-17";
assertEquals(expected, StackTraceFormatter.formatStackTrace(stack));
}
}