/** * Obtains a failure for a single failure item. * * @param item the failure item * @return the failure */ public static Failure of(FailureItem item) { return new Failure(item.getReason(), item.getMessage(), ImmutableSet.of(item)); }
public void test_toValueWithFailures() { List<Double> testList = ImmutableList.of(5d, 6d, 7d); ValueWithFailures<Double> result = testList.stream() .map(value -> mockCalc(value)) .collect(ValueWithFailures.toValueWithFailures(1d, (val1, val2) -> val1 * val2)); assertEquals(result.getValue(), 210d); //5 * 6 * 7 = 210 List<FailureItem> failures = result.getFailures(); assertEquals(failures.size(), 3); //One failure item for each element in testList. assertEquals(failures.get(0).getMessage(), Messages.format("Error calculating result for input value {}", 5d)); assertEquals(failures.get(1).getMessage(), Messages.format("Error calculating result for input value {}", 6d)); assertEquals(failures.get(2).getMessage(), Messages.format("Error calculating result for input value {}", 7d)); }
public void test_of_reasonMessageExceptionNestedException() { IllegalArgumentException innerEx = new IllegalArgumentException("inner"); IllegalArgumentException ex = new IllegalArgumentException("exmsg", innerEx); FailureItem test = FailureItem.of(FailureReason.INVALID, ex, "my {} {} failure", "big", "bad"); assertEquals(test.getReason(), FailureReason.INVALID); assertEquals(test.getMessage(), "my big bad failure"); assertTrue(test.getCauseType().isPresent()); assertEquals(test.getCauseType().get(), IllegalArgumentException.class); assertTrue(test.getStackTrace().contains(".test_of_reasonMessageExceptionNestedException(")); assertEquals(test.toString(), "INVALID: my big bad failure: java.lang.IllegalArgumentException: exmsg"); }
public void test_of_reasonException() { IllegalArgumentException ex = new IllegalArgumentException("exmsg"); FailureItem test = FailureItem.of(FailureReason.INVALID, ex); assertEquals(test.getReason(), FailureReason.INVALID); assertEquals(test.getMessage(), "exmsg"); assertTrue(test.getCauseType().isPresent()); assertEquals(test.getCauseType().get(), IllegalArgumentException.class); assertTrue(test.getStackTrace().contains(".test_of_reasonException(")); assertEquals(test.toString(), "INVALID: exmsg: java.lang.IllegalArgumentException"); }
public void test_of_reasonError() { NoClassDefFoundError ex = new NoClassDefFoundError("exmsg"); FailureItem test = FailureItem.of(FailureReason.INVALID, ex); assertEquals(test.getReason(), FailureReason.INVALID); assertEquals(test.getMessage(), "exmsg"); assertEquals(test.getCauseType().isPresent(), true); assertEquals(test.getCauseType().get(), NoClassDefFoundError.class); assertEquals(test.getStackTrace().contains(".test_of_reasonError("), true); assertEquals(test.toString(), "INVALID: exmsg: java.lang.NoClassDefFoundError"); }
public void test_load_filtered() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse( ImmutableList.of(FILE.getCharSource()), ImmutableList.of(FraTrade.class, TermDepositTrade.class)); assertEquals(trades.getValue().size(), 6); assertEquals(trades.getFailures().size(), 10); assertEquals(trades.getFailures().get(0).getMessage(), "Trade type not allowed " + SwapTrade.class.getName() + ", only these types are supported: FraTrade, TermDepositTrade"); }
public void test_of_reasonMessage() { FailureItem test = FailureItem.of(FailureReason.INVALID, "my {} {} failure", "big", "bad"); assertEquals(test.getReason(), FailureReason.INVALID); assertEquals(test.getMessage(), "my big bad failure"); assertFalse(test.getCauseType().isPresent()); assertFalse(test.getStackTrace().contains(".FailureItem.of(")); assertFalse(test.getStackTrace().contains(".Failure.of(")); assertTrue(test.getStackTrace().startsWith("com.opengamma.strata.collect.result.FailureItem: my big bad failure")); assertTrue(test.getStackTrace().contains(".test_of_reasonMessage(")); assertEquals(test.toString(), "INVALID: my big bad failure"); }
public void test_of_reasonMessageException() { IllegalArgumentException ex = new IllegalArgumentException("exmsg"); FailureItem test = FailureItem.of(FailureReason.INVALID, ex, "my failure"); assertEquals(test.getReason(), FailureReason.INVALID); assertEquals(test.getMessage(), "my failure"); assertTrue(test.getCauseType().isPresent()); assertEquals(test.getCauseType().get(), IllegalArgumentException.class); assertTrue(test.getStackTrace().contains(".test_of_reasonMessageException(")); assertEquals(test.toString(), "INVALID: my failure: java.lang.IllegalArgumentException: exmsg"); }
public void test_parse_list_unableToGetCurrency() { CharSource source = CharSource.wrap( "Reference,Sensitivity Tenor,Zero Rate Delta\n" + "X,1D,1.0"); ValueWithFailures<ListMultimap<String, CurveSensitivities>> test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.getFailures().size(), 1); FailureItem failure0 = test.getFailures().get(0); assertEquals(failure0.getReason(), FailureReason.PARSING); assertEquals(failure0.getMessage(), "CSV file could not be parsed at line 2: Unable to parse currency from reference, " + "consider adding a 'Currency' column"); }
public void test_load_invalidNoType() { PositionCsvLoader test = PositionCsvLoader.standard(); ValueWithFailures<List<Position>> trades = test.parse(ImmutableList.of(CharSource.wrap("Id"))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage().contains("CSV file does not contain 'Strata Position Type' header"), true); }
public void test_load_invalidNoHeader() { PositionCsvLoader test = PositionCsvLoader.standard(); ValueWithFailures<List<Position>> trades = test.parse(ImmutableList.of(CharSource.wrap(""))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage().contains("CSV file could not be parsed"), true); }
public void test_load_invalidNoHeader() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse(ImmutableList.of(CharSource.wrap(""))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage().contains("CSV file could not be parsed"), true); }
public void test_load_invalidNoType() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse(ImmutableList.of(CharSource.wrap("Id"))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage().contains("CSV file does not contain 'Strata Trade Type' header"), true); }
public void test_parse_list_badDayMonthTenor() { CharSource source = CharSource.wrap( "Reference,Sensitivity Tenor,Zero Rate Delta\n" + "GBP-LIBOR,P2M1D,1.0"); ValueWithFailures<ListMultimap<String, CurveSensitivities>> test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.getFailures().size(), 1); assertEquals(test.getFailures().get(0).getReason(), FailureReason.PARSING); assertEquals(test.getFailures().get(0).getMessage(), "CSV file could not be parsed at line 2: Invalid tenor, cannot mix years/months and days: 2M1D"); }
public void test_load_invalidTermDeposit() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse(ImmutableList.of(CharSource.wrap("Strata Trade Type,Buy Sell\nTermDeposit,Buy"))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage(), "CSV file trade could not be parsed at line 2: Header not found: 'Notional'"); }
public void test_load_invalidFra() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse(ImmutableList.of(CharSource.wrap("Strata Trade Type,Buy Sell\nFra,Buy"))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage(), "CSV file trade could not be parsed at line 2: Header not found: 'Notional'"); }
public void test_load_invalidUnknownType() { PositionCsvLoader test = PositionCsvLoader.standard(); ValueWithFailures<List<Position>> trades = test.parse(ImmutableList.of(CharSource.wrap("Strata Position Type\nFoo"))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage(), "CSV file position type 'Foo' is not known at line 2"); }
public void test_load_invalidSwap() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse(ImmutableList.of(CharSource.wrap("Strata Trade Type,Buy Sell\nSwap,Buy"))); assertEquals(trades.getFailures().size(), 1); FailureItem failure = trades.getFailures().get(0); assertEquals(failure.getReason(), FailureReason.PARSING); assertEquals(failure.getMessage(), "CSV file trade could not be parsed at line 2: Swap trade had invalid combination of fields. " + "Must include either 'Convention' or '" + "Leg 1 Direction'"); }
public void ofNullable_null() { Result<Integer> test = Result.ofNullable(null); assertTrue(test.isFailure()); assertEquals(test.getFailure().getMessage(), "Found null where a value was expected"); assertEquals(test.getFailure().getItems().size(), 1); FailureItem item = test.getFailure().getItems().iterator().next(); assertEquals(item.getReason(), MISSING_DATA); assertEquals(item.getMessage(), "Found null where a value was expected"); assertEquals(item.getCauseType().isPresent(), false); assertTrue(item.getStackTrace() != null); }
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); }