static ResolvedIborFuture sut() { return PRODUCT.resolve(REF_DATA); }
static ResolvedIborFuture sut2() { return PRODUCT2.resolve(REF_DATA); }
@Override public ResolvedIborFutureOption resolve(ReferenceData refData) { ResolvedIborFuture resolved = underlyingFuture.resolve(refData); return new ResolvedIborFutureOption(securityId, putCall, strikePrice, getExpiry(), premiumStyle, rounding, resolved); }
@Override public ResolvedIborFutureTrade resolve(ReferenceData refData) { ResolvedIborFuture resolved = product.resolve(refData); return new ResolvedIborFutureTrade(info, resolved, getQuantity(), null); }
@Override public ResolvedIborFutureTrade resolve(ReferenceData refData) { if (!info.getTradeDate().isPresent()) { throw new IllegalArgumentException("Trade date on TradeInfo must be present"); } ResolvedIborFuture resolved = getProduct().resolve(refData); TradedPrice tradedPrice = TradedPrice.of(info.getTradeDate().get(), price); return new ResolvedIborFutureTrade(info, resolved, quantity, tradedPrice); }
public void test_resolve() { IborFutureTrade test = sut(); ResolvedIborFutureTrade resolved = test.resolve(REF_DATA); assertEquals(resolved.getInfo(), TRADE_INFO); assertEquals(resolved.getProduct(), PRODUCT.resolve(REF_DATA)); assertEquals(resolved.getQuantity(), QUANTITY); assertEquals(resolved.getTradedPrice(), Optional.of(TradedPrice.of(TRADE_DATE, PRICE))); }
public void test_builder() { ResolvedIborFutureOption test = sut(); assertEquals(test.getSecurityId(), PRODUCT.getSecurityId()); assertEquals(test.getPutCall(), PRODUCT.getPutCall()); assertEquals(test.getStrikePrice(), PRODUCT.getStrikePrice()); assertEquals(test.getPremiumStyle(), PRODUCT.getPremiumStyle()); assertEquals(test.getExpiry(), PRODUCT.getExpiry()); assertEquals(test.getExpiryDate(), PRODUCT.getExpiryDate()); assertEquals(test.getRounding(), PRODUCT.getRounding()); assertEquals(test.getUnderlyingFuture(), PRODUCT.getUnderlyingFuture().resolve(REF_DATA)); assertEquals(test.getIndex(), PRODUCT.getUnderlyingFuture().getIndex()); }
public void test_resolve() { ResolvedIborFutureTrade expected = ResolvedIborFutureTrade.builder() .info(POSITION_INFO) .product(PRODUCT.resolve(REF_DATA)) .quantity(QUANTITY) .build(); assertEquals(sut().resolve(REF_DATA), expected); }
public void test_resolve() { IborFutureOption test = sut(); ResolvedIborFutureOption expected = ResolvedIborFutureOption.builder() .securityId(SECURITY_ID) .putCall(CALL) .strikePrice(STRIKE_PRICE) .expiry(EXPIRY_DATE.atTime(EXPIRY_TIME).atZone(EXPIRY_ZONE)) .premiumStyle(FutureOptionPremiumStyle.DAILY_MARGIN) .underlyingFuture(FUTURE.resolve(REF_DATA)) .build(); assertEquals(test.resolve(REF_DATA), expected); }
public void test_resolve() { IborFuture test = sut(); ResolvedIborFuture expected = ResolvedIborFuture.builder() .securityId(SECURITY_ID) .currency(USD) .notional(NOTIONAL) .accrualFactor(ACCRUAL_FACTOR) .iborRate(IborRateComputation.of(USD_LIBOR_3M, LAST_TRADE_DATE, REF_DATA)) .rounding(ROUNDING) .build(); assertEquals(test.resolve(REF_DATA), expected); }
public void test_builder_expiryNotAfterTradeDate() { assertThrowsIllegalArg(() -> ResolvedIborFutureOption.builder() .securityId(PRODUCT.getSecurityId()) .putCall(CALL) .expiry(PRODUCT.getUnderlyingFuture().getLastTradeDate().plusDays(1).atStartOfDay(ZoneOffset.UTC)) .strikePrice(PRODUCT.getStrikePrice()) .underlyingFuture(PRODUCT.getUnderlyingFuture().resolve(REF_DATA)) .build()); }