/** * Returns an exception wrapping a failure that couldn't be handled. * * @param failure a failure that couldn't be handled */ public FailureException(Failure failure) { super(failure.getMessage()); this.failure = ArgChecker.notNull(failure, "failure"); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case -934964668: // reason return ((Failure) bean).getReason(); case 954925063: // message return ((Failure) bean).getMessage(); case 100526016: // items return ((Failure) bean).getItems(); } return super.propertyGet(bean, propertyName, quiet); }
public void measurePath_failure_unknownMeasure() { ReportCalculationResults reportResults = reportResults(); List<Result<?>> results = ValuePathEvaluator.evaluate("Measures.Wibble", reportResults); Result<?> result = results.get(0); assertThat(result.isFailure()).isTrue(); assertThat(result.getFailure().getMessage()).contains("Wibble"); assertThat(result.getFailure().getMessage()).contains("PresentValue"); assertThat(result.getFailure().getMessage()).contains("ParRate"); }
public void generateFailureFromExceptionWithMessage() { Exception exception = new Exception("something went wrong"); Result<Object> test = Result.failure(exception, "my message"); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "my message"); }
public void generateFailureFromException() { Exception exception = new Exception("something went wrong"); Result<Object> test = Result.failure(exception); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "something went wrong"); }
public void measurePath_failure_noDot() { ReportCalculationResults reportResults = reportResults(); List<Result<?>> results = ValuePathEvaluator.evaluate("Measures", reportResults); Result<?> result = results.get(0); assertThat(result.isFailure()).isTrue(); assertThat(result.getFailure().getMessage()).contains("PresentValue"); assertThat(result.getFailure().getMessage()).contains("ParRate"); }
public void measurePath_failure_noMeasureName() { ReportCalculationResults reportResults = reportResults(); List<Result<?>> results = ValuePathEvaluator.evaluate("Measures.", reportResults); Result<?> result = results.get(0); assertThat(result.isFailure()).isTrue(); assertThat(result.getFailure().getMessage()).contains("PresentValue"); assertThat(result.getFailure().getMessage()).contains("ParRate"); }
public void measurePath_failure_nonQueriedMeasure() { ReportCalculationResults reportResults = reportResults(); List<Result<?>> results = ValuePathEvaluator.evaluate("Measures.ParSpread", reportResults); Result<?> result = results.get(0); assertThat(result.isFailure()).isTrue(); assertThat(result.getFailure().getMessage()).contains("PresentValue"); assertThat(result.getFailure().getMessage()).contains("ParRate"); }
public void generateFailureFromExceptionWithCustomStatus() { Exception exception = new Exception("something went wrong"); Result<Object> test = Result.failure(CALCULATION_FAILED, exception); assertEquals(test.getFailure().getReason(), CALCULATION_FAILED); assertEquals(test.getFailure().getMessage(), "something went wrong"); }
public void generateFailureFromExceptionWithCustomStatusAndMessage() { Exception exception = new Exception("something went wrong"); Result<Object> test = Result.failure(CALCULATION_FAILED, exception, "my message"); assertEquals(test.getFailure().getReason(), CALCULATION_FAILED); assertEquals(test.getFailure().getMessage(), "my message"); }
public void failure_fromStatusMessageArgs_placeholdersLessThanArgs1() { Result<String> failure = Result.failure(ERROR, "my {} failure", "blue", "rabbit"); Result<Integer> test = Result.failure(failure); assertTrue(test.isFailure()); assertEquals(test.getFailure().getMessage(), "my blue failure - [rabbit]"); }
public void failure_flatMap_throwing() { Result<String> success = Result.failure(new IllegalArgumentException("failure")); Result<Integer> test = success.flatMap(r -> { throw new IllegalArgumentException("Big bad error"); }); assertEquals(test.isSuccess(), false); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "failure"); }
public void failure_map_throwing() { Result<String> success = Result.failure(new IllegalArgumentException("failure")); Result<Integer> test = success.map(r -> { throw new IllegalArgumentException("Big bad error"); }); assertEquals(test.isSuccess(), false); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "failure"); }
public void failure_fromStatusMessageArgs_placeholdersMatchArgs2() { Result<String> failure = Result.failure(ERROR, "my {} {} failure", "blue", "rabbit"); Result<Integer> test = Result.failure(failure); assertTrue(test.isFailure()); assertEquals(test.getFailure().getMessage(), "my blue rabbit failure"); }
public void failure_fromStatusMessageArgs_placeholdersExceedArgs() { Result<String> failure = Result.failure(ERROR, "my {} {} failure", "blue"); Result<Integer> test = Result.failure(failure); assertTrue(test.isFailure()); assertEquals(test.getFailure().getMessage(), "my blue {} failure"); }
public void failure_fromStatusMessageArgs_placeholdersLessThanArgs2() { Result<String> failure = Result.failure(ERROR, "my {} failure", "blue", "rabbit", "carrot"); Result<Integer> test = Result.failure(failure); assertTrue(test.isFailure()); assertEquals(test.getFailure().getMessage(), "my blue failure - [rabbit, carrot]"); }
public void failure_combineWith_failure() { Result<String> failure1 = Result.failure(new IllegalArgumentException("failure")); Result<String> failure2 = Result.failure(new IllegalArgumentException("fail")); Result<String> test = failure1.combineWith(failure2, FUNCTION_MERGE); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "failure, fail"); }
public void failure_combineWith_success() { Result<String> failure = Result.failure(new IllegalArgumentException("failure")); Result<String> success = Result.success("World"); Result<String> test = failure.combineWith(success, FUNCTION_MERGE); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "failure"); }
public void failure_fromFailure() { Failure failure = Failure.of(ERROR, "my failure"); Result<Integer> test = Result.failure(failure); assertTrue(test.isFailure()); assertEquals(test.getFailure().getMessage(), "my failure"); assertEquals(test.getFailure().getItems().size(), 1); FailureItem item = test.getFailure().getItems().iterator().next(); assertEquals(item.getReason(), ERROR); assertEquals(item.getMessage(), "my failure"); assertEquals(item.getCauseType().isPresent(), false); assertTrue(item.getStackTrace() != null); }
public void failureSameType() { Result<Object> failure1 = Result.failure(MISSING_DATA, "message 1"); Result<Object> failure2 = Result.failure(MISSING_DATA, "message 2"); Result<Object> failure3 = Result.failure(MISSING_DATA, "message 3"); Result<?> composite = Result.failure(failure1, failure2, failure3); assertEquals(composite.getFailure().getReason(), MISSING_DATA); assertEquals(composite.getFailure().getMessage(), "message 1, message 2, message 3"); }