/** * Returns the position from the row. * * @return the position from the row */ Result<Position> getPosition() { CalculationTarget target = getTarget(); if (target instanceof Position) { return Result.success((Position) target); } return Result.failure(FailureReason.INVALID, "Calculaton target is not a position"); }
/** * Returns the trade from the row. * * @return the trade from the row */ Result<Trade> getTrade() { CalculationTarget target = getTarget(); if (target instanceof Trade) { return Result.success((Trade) target); } return Result.failure(FailureReason.INVALID, "Calculaton target is not a trade"); }
public void flatCombine_iterableWithSuccesses_combineFails() { Result<Integer> success1 = Result.success(1); Result<Integer> success2 = Result.success(2); Result<Integer> success3 = Result.success(3); Result<Integer> success4 = Result.success(4); Set<Result<Integer>> results = ImmutableSet.of(success1, success2, success3, success4); Result<String> combined = Result.flatCombine( results, s -> Result.failure(CALCULATION_FAILED, "Could not do it")); assertThat(combined) .isFailure(CALCULATION_FAILED); }
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 countFailures_collection() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 1"); Result<Object> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<Object> failure2 = Result.failure(ERROR, "failure 2"); assertEquals(Result.countFailures(ImmutableList.of(failure1, failure2)), 2); assertEquals(Result.countFailures(ImmutableList.of(failure1, success1)), 1); assertEquals(Result.countFailures(ImmutableList.of(success1, success2)), 0); }
public void allSuccess_collection() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 1"); Result<Object> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<Object> failure2 = Result.failure(ERROR, "failure 2"); assertFalse(Result.allSuccessful(ImmutableList.of(failure1, failure2))); assertFalse(Result.allSuccessful(ImmutableList.of(failure1, success1))); assertTrue(Result.allSuccessful(ImmutableList.of(success1, success2))); }
public void anyFailures_collection() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 1"); Result<Object> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<Object> failure2 = Result.failure(ERROR, "failure 2"); assertTrue(Result.anyFailures(ImmutableList.of(failure1, failure2))); assertTrue(Result.anyFailures(ImmutableList.of(failure1, success1))); assertFalse(Result.anyFailures(ImmutableList.of(success1, success2))); }
public void getColumnTypes() { ArrayTable<Integer, Integer, Result<?>> table = ArrayTable.create(INDICES, INDICES); table.put(0, 0, Result.success(1)); table.put(0, 1, Result.success("abc")); table.put(1, 0, Result.success(2)); table.put(1, 1, Result.success("def")); List<Class<?>> columnTypes = TradeReportFormatter.INSTANCE.getColumnTypes(report(table)); assertThat(columnTypes).isEqualTo(ImmutableList.of(Integer.class, String.class)); }
public void anyFailures_varargs() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 1"); Result<Object> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<Object> failure2 = Result.failure(ERROR, "failure 2"); assertTrue(Result.anyFailures(failure1, failure2)); assertTrue(Result.anyFailures(failure1, success1)); assertFalse(Result.anyFailures(success1, success2)); }
public void combine_iterableWithFailures() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 2"); Result<String> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<String> failure2 = Result.failure(ERROR, "failure 2"); Set<Result<String>> results = ImmutableSet.of(success1, success2, failure1, failure2); assertThat(Result.combine(results, s -> s)) .isFailure(FailureReason.MULTIPLE); }
public void failure_fromResults_varargs1() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 1"); Result<Object> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<Object> failure2 = Result.failure(ERROR, "failure 2"); Result<Object> test = Result.failure(success1, success2, failure1, failure2); Set<FailureItem> expected = new HashSet<>(); expected.addAll(failure1.getFailure().getItems()); expected.addAll(failure2.getFailure().getItems()); assertEquals(test.getFailure().getItems(), expected); }
public void failure_fromResults_varargs2() { Result<String> success1 = Result.success("success 1"); Result<String> success2 = Result.success("success 1"); Result<Object> failure1 = Result.failure(MISSING_DATA, "failure 1"); Result<Object> failure2 = Result.failure(ERROR, "failure 2"); Result<Object> test = Result.failure(success1, failure1, success2, failure2); Set<FailureItem> expected = new HashSet<>(); expected.addAll(failure1.getFailure().getItems()); expected.addAll(failure2.getFailure().getItems()); assertEquals(test.getFailure().getItems(), expected); }
public void success_map_throwing() { Result<String> success = Result.success("success"); Result<Integer> test = success.map(r -> { throw new IllegalArgumentException("Big bad error"); }); assertEquals(test.isSuccess(), false); assertThat(test) .isFailure(ERROR) .hasFailureMessageMatching("Big bad error"); }
public void assert_success() { Result<String> test = Result.success("success"); assertThat(test) .isSuccess() .hasValue("success"); }
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)); }
public void assert_success_combineWith_failure() { Result<String> success = Result.success("Hello"); Result<String> failure = Result.failure(new IllegalArgumentException()); Result<String> test = success.combineWith(failure, FUNCTION_MERGE); assertThat(test).isFailure(ERROR); assertThat(test.getFailure().getItems().size()).isEqualTo(1); }
public void assert_success_flatMap() { Result<String> success = Result.success("success"); Result<Integer> test = success.flatMap(FUNCTION_STRLEN); assertThat(test).isSuccess().hasValue(7); }
public void coverage() { Result<Object> failure = Result.failure(MISSING_DATA, "message 1"); TestHelper.coverImmutableBean(failure); TestHelper.coverImmutableBean(failure.getFailure()); TestHelper.coverImmutableBean(failure.getFailure().getItems().iterator().next()); Result<String> success = Result.success("Hello"); TestHelper.coverImmutableBean(success); TestHelper.coverEnum(FailureReason.class); }