//------------------------------------------------------------------------- public virtual void test_builder_full() { BondFuture test = BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(BOND_PRODUCT).conversionFactors(CONVERSION_FACTOR).firstNoticeDate(FIRST_NOTICE_DATE).firstDeliveryDate(FIRST_DELIVERY_DATE).lastNoticeDate(LAST_NOTICE_DATE).lastDeliveryDate(LAST_DELIVERY_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build(); assertEquals(test.DeliveryBasket, ImmutableList.copyOf(BOND_PRODUCT)); assertEquals(test.ConversionFactors, ImmutableList.copyOf(CONVERSION_FACTOR)); assertEquals(test.Currency, USD); assertEquals(test.Notional, NOTIONAL); assertEquals(test.FirstNoticeDate, FIRST_NOTICE_DATE); assertEquals(test.LastNoticeDate, LAST_NOTICE_DATE); assertEquals(test.FirstDeliveryDate, FIRST_DELIVERY_DATE); assertEquals(test.LastDeliveryDate, LAST_DELIVERY_DATE); assertEquals(test.LastTradeDate, LAST_TRADING_DATE); assertEquals(test.Rounding, ROUNDING); }
public virtual void test_builder_fail() { // wrong size assertThrowsIllegalArg(() => BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(BOND_PRODUCT[0]).conversionFactors(CONVERSION_FACTOR).firstNoticeDate(FIRST_NOTICE_DATE).lastNoticeDate(LAST_NOTICE_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); // first notice date missing assertThrowsIllegalArg(() => BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(BOND_PRODUCT).conversionFactors(CONVERSION_FACTOR).lastNoticeDate(LAST_NOTICE_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); // last notice date missing assertThrowsIllegalArg(() => BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(BOND_PRODUCT).conversionFactors(CONVERSION_FACTOR).firstNoticeDate(FIRST_NOTICE_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); // basket list empty assertThrowsIllegalArg(() => BondFuture.builder().securityId(SECURITY_ID).conversionFactors(CONVERSION_FACTOR).firstNoticeDate(FIRST_NOTICE_DATE).lastNoticeDate(LAST_NOTICE_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); // notional mismatch FixedCouponBond bond0 = BOND_PRODUCT[0]; FixedCouponBond bond1 = bond0.toBuilder().notional(100).build(); FixedCouponBond bond2 = bond0.toBuilder().currency(Currency.CAD).build(); assertThrowsIllegalArg(() => BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(bond0, bond1).conversionFactors(CONVERSION_FACTOR[0], CONVERSION_FACTOR[1]).firstNoticeDate(FIRST_NOTICE_DATE).lastNoticeDate(LAST_NOTICE_DATE).firstDeliveryDate(FIRST_DELIVERY_DATE).lastDeliveryDate(LAST_DELIVERY_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); // currency mismatch assertThrowsIllegalArg(() => BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(bond0, bond2).conversionFactors(CONVERSION_FACTOR[0], CONVERSION_FACTOR[1]).firstNoticeDate(FIRST_NOTICE_DATE).lastNoticeDate(LAST_NOTICE_DATE).firstDeliveryDate(FIRST_DELIVERY_DATE).lastDeliveryDate(LAST_DELIVERY_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); }
internal static BondFuture sut2() { return(BondFuture.builder().securityId(SECURITY_ID2).conversionFactors(0.9187).deliveryBasket(BOND_PRODUCT[3]).firstNoticeDate(FIRST_NOTICE_DATE.plusDays(7)).lastNoticeDate(LAST_NOTICE_DATE.plusDays(7)).lastTradeDate(LAST_TRADING_DATE.plusDays(7)).build()); }
//------------------------------------------------------------------------- internal static BondFuture sut() { return(BondFuture.builder().securityId(SECURITY_ID).deliveryBasket(BOND_PRODUCT).conversionFactors(ImmutableList.copyOf(CONVERSION_FACTOR)).firstNoticeDate(FIRST_NOTICE_DATE).firstDeliveryDate(FIRST_DELIVERY_DATE).lastNoticeDate(LAST_NOTICE_DATE).lastDeliveryDate(LAST_DELIVERY_DATE).lastTradeDate(LAST_TRADING_DATE).rounding(ROUNDING).build()); }