@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 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 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 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 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_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 generatedStackTrace_Failure() { Failure test = Failure.of(FailureReason.INVALID, "my {} {} failure", "big", "bad"); assertEquals(test.getReason(), FailureReason.INVALID); assertEquals(test.getMessage(), "my big bad failure"); assertEquals(test.getItems().size(), 1); FailureItem item = test.getItems().iterator().next(); assertFalse(item.getCauseType().isPresent()); assertFalse(item.getStackTrace().contains(".FailureItem.of(")); assertFalse(item.getStackTrace().contains(".Failure.of(")); assertTrue(item.getStackTrace().startsWith("com.opengamma.strata.collect.result.FailureItem: my big bad failure")); assertTrue(item.getStackTrace().contains(".generatedStackTrace_Failure(")); assertEquals(item.toString(), "INVALID: my big bad failure"); }
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 success_combineWith_failure() { Result<String> success = Result.success("Hello"); Result<String> failure = Result.failure(new IllegalArgumentException()); Result<String> test = success.combineWith(failure, FUNCTION_MERGE); assertEquals(test.isSuccess(), false); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getItems().size(), 1); }
public void generatedStackTrace() { Result<Object> test = Result.failure(FailureReason.INVALID, "my {} {} failure", "big", "bad"); assertEquals(test.getFailure().getReason(), FailureReason.INVALID); assertEquals(test.getFailure().getMessage(), "my big bad failure"); assertEquals(test.getFailure().getItems().size(), 1); FailureItem item = test.getFailure().getItems().iterator().next(); assertFalse(item.getCauseType().isPresent()); assertFalse(item.getStackTrace().contains(".FailureItem.of(")); assertFalse(item.getStackTrace().contains(".Failure.of(")); assertTrue(item.getStackTrace().startsWith("com.opengamma.strata.collect.result.FailureItem: my big bad failure")); assertTrue(item.getStackTrace().contains(".generatedStackTrace(")); assertEquals(item.toString(), "INVALID: my big bad failure"); }
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"); }
/** * Assert that the {@code Result} is a failure with the specified reason. * * @param expected the expected failure reason * @return this, if the wrapped object is a failure with the specified reason * @throws AssertionError if the wrapped object is a success, or does not have the expected reason */ public ResultAssert isFailure(FailureReason expected) { isFailure(); FailureReason actualReason = actual.getFailure().getReason(); if (actualReason != expected) { failWithMessage("Expected Failure with reason: <%s> but was Failure with reason: <%s>", expected, actualReason); } return this; }
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"); }
public void failureDifferentTypes() { Result<Object> failure1 = Result.failure(MISSING_DATA, "message 1"); Result<Object> failure2 = Result.failure(CALCULATION_FAILED, "message 2"); Result<Object> failure3 = Result.failure(ERROR, "message 3"); Result<?> composite = Result.failure(failure1, failure2, failure3); assertEquals(composite.getFailure().getReason(), FailureReason.MULTIPLE); assertEquals(composite.getFailure().getMessage(), "message 1, message 2, message 3"); }
public void failure() { IllegalArgumentException ex = new IllegalArgumentException("failure"); Result<String> test = Result.failure(ex); assertEquals(test.isSuccess(), false); assertEquals(test.isFailure(), true); assertEquals(test.getValueOrElse("blue"), "blue"); assertEquals(test.getValueOrElseApply(f -> "blue"), "blue"); assertEquals(test.getValueOrElseApply(Failure::getMessage), "failure"); assertThrowsIllegalArg(() -> test.getValueOrElse(null)); assertThrowsIllegalArg(() -> test.getValueOrElseApply(null)); assertEquals(test.getFailure().getReason(), ERROR); assertEquals(test.getFailure().getMessage(), "failure"); assertEquals(test.getFailure().getItems().size(), 1); FailureItem item = test.getFailure().getItems().iterator().next(); assertEquals(item.getReason(), ERROR); assertEquals(item.getMessage(), "failure"); assertEquals(item.getCauseType().get(), ex.getClass()); assertEquals(item.getStackTrace(), Throwables.getStackTraceAsString(ex).replace(System.lineSeparator(), "\n")); }
if (result.isFailure() && result.getFailure().getReason() == FailureReason.ERROR) { return Result.failure( FailureReason.INVALID,
/** * Assert that the {@code Result} is a Success. * * @return this, if the wrapped object is a success * @throws AssertionError if the wrapped object is a failure */ public ResultAssert isSuccess() { isNotNull(); if (!actual.isSuccess()) { Failure failure = actual.getFailure(); failWithMessage("Expected Success but was Failure with reason: <%s> and message: <%s>", failure.getReason(), failure.getMessage()); } return this; }