package org.junit.tests.assertion; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.Collection; import org.junit.ComparisonFailure; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class ComparisonFailureTest { private String expected, actual, message; public ComparisonFailureTest(String e, String a, String m) { expected = e; actual = a; message = m; } @Parameters(name = "compact-msg-{index}, exp=\"{1}\"") public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { // simple base case { "a", "b", "expected:<[a]> but was:<[b]>" }, // common prefix { "ba", "bc", "expected:<b[a]> but was:<b[c]>" }, // common suffix { "ab", "cb", "expected:<[a]b> but was:<[c]b>" }, // common pre and suffix { "abc", "adc", "expected:<a[b]c> but was:<a[d]c>" }, // expected is subset of actual { "ab", "abc", "expected:<ab[]> but was:<ab[c]>" }, // expected is superset of actual { "abc", "ab", "expected:<ab[c]> but was:<ab[]>" }, // overlapping matches. { "abc", "abbc", "expected:<ab[]c> but was:<ab[b]c>" }, // long prefix yielding "..." { "01234567890123456789PRE:hello:POST", "01234567890123456789PRE:world:POST", "expected:<...4567890123456789PRE:[hello]:POST> but was:<...4567890123456789PRE:[world]:POST>" }, // long suffix yielding "..." { "PRE:hello:01234567890123456789POST", "PRE:world:01234567890123456789POST", "expected:<PRE:[hello]:0123456789012345678...> but was:<PRE:[world]:0123456789012345678...>" }, // bug609972 { "S&P500", "0", "expected:<[S&P50]0> but was:<[]0>" }, // empty expected string { "", "a", "expected:<[]> but was:<[a]>" }, // empty actual string { "a", "", "expected:<[a]> but was:<[]>" } }); } @Test public void compactFailureMessage() { ComparisonFailure failure = new ComparisonFailure("", expected, actual); assertEquals(message, failure.getMessage()); } }