| 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()); |
| } |
| |
| } |