@Test(expectedExceptions = IllegalStateException.class) public void failure_getValue() { Result<String> test = Result.failure(new IllegalArgumentException()); test.getValue(); }
public void success() { Result<String> test = Result.success("success"); assertEquals(test.isSuccess(), true); assertEquals(test.isFailure(), false); assertEquals(test.getValue(), "success"); assertEquals(test.getValueOrElse("blue"), "success"); assertThrowsIllegalArg(() -> test.getValueOrElse(null)); assertThrowsIllegalArg(() -> test.getValueOrElseApply(null)); }
private static <T> Result<?> evaluate( CalculationFunctions functions, List<String> tokens, TokenEvaluator<T> evaluator, T target) { List<String> remaining = tokens.subList(1, tokens.size()); EvaluationResult evaluationResult = evaluator.evaluate(target, functions, tokens.get(0), remaining); if (evaluationResult.isComplete()) { return evaluationResult.getResult(); } Object value = evaluationResult.getResult().getValue(); Optional<TokenEvaluator<Object>> nextEvaluator = getEvaluator(value.getClass()); return nextEvaluator.isPresent() ? evaluate(functions, evaluationResult.getRemainingTokens(), nextEvaluator.get(), value) : noEvaluatorResult(remaining, value); }
/** * Assert that the {@code Result} is a success and contains the specified value. * * @param value the value the {@code Result} is expected to contain * @return this, if the wrapped object is a success and has the specified value * @throws AssertionError if the wrapped object is a failure, or does not have the specified value */ public ResultAssert hasValue(Object value) { isSuccess(); if (!actual.getValue().equals(value)) { failWithMessage("Expected Success with value: <%s> but was: <%s>", value, actual.getValue()); } return this; }
public void ofNullable_nonNull() { Result<Integer> test = Result.ofNullable(6); assertFalse(test.isFailure()); assertEquals(test.getValue().intValue(), 6); }
public void success_map() { Result<String> success = Result.success("success"); Result<Integer> test = success.map(MAP_STRLEN); assertEquals(test.isSuccess(), true); assertEquals(test.getValue(), Integer.valueOf(7)); }
public void of_with_success() { Result<String> test = Result.of(() -> "success"); assertEquals(test.isSuccess(), true); assertEquals(test.isFailure(), false); assertEquals(test.getValue(), "success"); }
public void success_flatMap() { Result<String> success = Result.success("success"); Result<Integer> test = success.flatMap(FUNCTION_STRLEN); assertEquals(test.isSuccess(), true); assertEquals(test.getValue(), Integer.valueOf(7)); }
public void wrap_with_success() { Result<String> test = Result.wrap(() -> Result.success("success")); assertEquals(test.isSuccess(), true); assertEquals(test.isFailure(), false); assertEquals(test.getValue(), "success"); }
public void success_combineWith_success() { Result<String> success1 = Result.success("Hello"); Result<String> success2 = Result.success("World"); Result<String> test = success1.combineWith(success2, FUNCTION_MERGE); assertEquals(test.isSuccess(), true); assertEquals(test.getValue(), "Hello World"); }
public void test_of() { ReportCalculationResults test = sut(); assertEquals(test.getValuationDate(), VAL_DATE); assertEquals(test.getTargets(), ImmutableList.of(TRADE)); assertEquals(test.getColumns(), ImmutableList.of(COLUMN)); assertEquals(test.getCalculationResults().get(0, 0).getValue(), PV); assertEquals(test.getReferenceData(), ReferenceData.standard()); }
@Override protected String formatData(TradeReport report, int rowIdx, int colIdx, ReportOutputFormat format) { TradeReportColumn templateColumn = report.getColumns().get(colIdx); Result<?> result = report.getData().get(rowIdx, colIdx); if (result.isFailure()) { return templateColumn.isIgnoreFailures() ? "" : Messages.format("FAIL: {}", result.getFailure().getMessage()); } Object value = result.getValue(); return formatValue(value, format); }
@Override public Report runReport(ReportCalculationResults calculationResults, CashFlowReportTemplate reportTemplate) { int tradeCount = calculationResults.getCalculationResults().getRowCount(); if (tradeCount == 0) { throw new IllegalArgumentException("Calculation results is empty"); } if (tradeCount > 1) { throw new IllegalArgumentException( Messages.format("Unable to show cashflow report for {} trades at once. " + "Please filter the portfolio to a single trade.", tradeCount)); } int columnIdx = calculationResults.getColumns().indexOf(Column.of(Measures.EXPLAIN_PRESENT_VALUE)); if (columnIdx == -1) { throw new IllegalArgumentException( Messages.format("Unable to find column for required measure '{}' in calculation results", Measures.EXPLAIN_PRESENT_VALUE)); } Result<?> result = calculationResults.getCalculationResults().get(0, columnIdx); if (result.isFailure()) { throw new IllegalArgumentException( Messages.format("Failure result found for required measure '{}': {}", Measures.EXPLAIN_PRESENT_VALUE, result.getFailure().getMessage())); } ExplainMap explainMap = (ExplainMap) result.getValue(); return runReport(explainMap, calculationResults.getValuationDate()); }
/** * Assert that the {@code Result} is a Failure. * * @return this, if the wrapped object is a failure * @throws AssertionError if the wrapped object is a success */ public ResultAssert isFailure() { isNotNull(); if (!actual.isFailure()) { failWithMessage("Expected Failure but was Success with value: <%s>", actual.getValue()); } return this; }
EvaluationResult result1 = evaluator.evaluate(sensitivities, FUNCTIONS, "aud", ImmutableList.of()); assertThat(result1.getResult()).isSuccess(); CurrencyParameterSensitivities result1Value = (CurrencyParameterSensitivities) result1.getResult().getValue(); assertThat(result1Value.getSensitivities()).containsAll(expected1.getSensitivities()); EvaluationResult result2 = evaluator.evaluate(sensitivities, FUNCTIONS, "curve2", ImmutableList.of()); assertThat(result2.getResult()).isSuccess(); CurrencyParameterSensitivities result2Value = (CurrencyParameterSensitivities) result2.getResult().getValue(); assertThat(result2Value.getSensitivities()).containsAll(expected2.getSensitivities());