1 package org.junit.tests.experimental.results; 2 3 import static java.util.Arrays.asList; 4 import static org.hamcrest.CoreMatchers.allOf; 5 import static org.hamcrest.CoreMatchers.containsString; 6 import static org.junit.Assert.assertThat; 7 8 import java.util.Arrays; 9 10 import org.junit.experimental.results.PrintableResult; 11 import org.junit.experimental.theories.DataPoint; 12 import org.junit.experimental.theories.Theories; 13 import org.junit.experimental.theories.Theory; 14 import org.junit.runner.Description; 15 import org.junit.runner.RunWith; 16 import org.junit.runner.notification.Failure; 17 18 @RunWith(Theories.class) 19 public class PrintableResultTest { 20 @Theory(nullsAccepted = false) 21 public void backTraceHasGoodToString(String descriptionName, 22 final String stackTraceClassName) { 23 Failure failure = new Failure(Description 24 .createSuiteDescription(descriptionName), new Throwable() { 25 private static final long serialVersionUID = 1L; 26 27 @Override 28 public StackTraceElement[] getStackTrace() { 29 return new StackTraceElement[]{new StackTraceElement( 30 stackTraceClassName, "methodName", "fileName", 1)}; 31 } 32 }); 33 34 assertThat(new PrintableResult(asList(failure)).toString(), allOf( 35 containsString(descriptionName), containsString(stackTraceClassName))); 36 } 37 38 @DataPoint 39 public static String SHELL_POINT = "Shell Point"; 40 41 @Theory 42 public void includeMultipleFailures(String secondExceptionName) { 43 PrintableResult backtrace = new PrintableResult(Arrays.asList( 44 new Failure(Description.createSuiteDescription("firstName"), 45 new RuntimeException("firstException")), new Failure( 46 Description.createSuiteDescription("secondName"), 47 new RuntimeException(secondExceptionName)))); 48 assertThat(backtrace.toString(), containsString(secondExceptionName)); 49 } 50 }