1 package junit.framework;
2 
3 /**
4  * Thrown when an assert equals for Strings failed.
5  *
6  * Inspired by a patch from Alex Chaffee mailto:alex@purpletech.com
7  */
8 public class ComparisonFailure extends AssertionFailedError {
9 	private static final int MAX_CONTEXT_LENGTH= 20;
10 	private static final long serialVersionUID= 1L;
11 
12 	private String fExpected;
13 	private String fActual;
14 
15 	/**
16 	 * Constructs a comparison failure.
17 	 * @param message the identifying message or null
18 	 * @param expected the expected string value
19 	 * @param actual the actual string value
20 	 */
ComparisonFailure(String message, String expected, String actual)21 	public ComparisonFailure (String message, String expected, String actual) {
22 		super (message);
23 		fExpected= expected;
24 		fActual= actual;
25 	}
26 
27 	/**
28 	 * Returns "..." in place of common prefix and "..." in
29 	 * place of common suffix between expected and actual.
30 	 *
31 	 * @see Throwable#getMessage()
32 	 */
33 	@Override
getMessage()34 	public String getMessage() {
35 		return new ComparisonCompactor(MAX_CONTEXT_LENGTH, fExpected, fActual).compact(super.getMessage());
36 	}
37 
38 	/**
39 	 * Gets the actual string value
40 	 * @return the actual string value
41 	 */
getActual()42 	public String getActual() {
43 		return fActual;
44 	}
45 	/**
46 	 * Gets the expected string value
47 	 * @return the expected string value
48 	 */
getExpected()49 	public String getExpected() {
50 		return fExpected;
51 	}
52 }