184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnerpackage org.junit.internal; 284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnerimport org.hamcrest.Description; 484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnerimport org.hamcrest.Matcher; 584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnerimport org.hamcrest.SelfDescribing; 684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnerimport org.hamcrest.StringDescription; 784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnerpublic class AssumptionViolatedException extends RuntimeException implements SelfDescribing { 984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner private static final long serialVersionUID= 1L; 1084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 1184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner private final Object fValue; 1284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 1384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner private final Matcher<?> fMatcher; 1484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 1584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner public AssumptionViolatedException(Object value, Matcher<?> matcher) { 1684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner super(value instanceof Throwable ? (Throwable) value : null); 1784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner fValue= value; 1884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner fMatcher= matcher; 1984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner } 2084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 2184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner public AssumptionViolatedException(String assumption) { 2284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner this(assumption, null); 2384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner } 2484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 2584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner @Override 2684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner public String getMessage() { 2784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner return StringDescription.asString(this); 2884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner } 2984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 3084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner public void describeTo(Description description) { 3184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner if (fMatcher != null) { 3284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner description.appendText("got: "); 3384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner description.appendValue(fValue); 3484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner description.appendText(", expected: "); 3584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner description.appendDescriptionOf(fMatcher); 3684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner } else { 3784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner description.appendText("failed assumption: " + fValue); 3884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner } 3984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner } 4084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner}