/** * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.product.index; import static com.opengamma.strata.basics.currency.Currency.GBP; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.coverBeanEquals; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static com.opengamma.strata.collect.TestHelper.date; import static org.testng.Assert.assertEquals; import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.CurrencyAmount; import com.opengamma.strata.product.SecurityInfo; import com.opengamma.strata.product.SecurityPriceInfo; import com.opengamma.strata.product.TradeInfo; /** * Test {@link IborFutureSecurity}. */ @Test public class IborFutureSecurityTest { private static final IborFuture PRODUCT = IborFutureTest.sut(); private static final IborFuture PRODUCT2 = IborFutureTest.sut2(); private static final SecurityPriceInfo PRICE_INFO = SecurityPriceInfo.of(0.1, CurrencyAmount.of(GBP, 25)); private static final SecurityInfo INFO = SecurityInfo.of(PRODUCT.getSecurityId(), PRICE_INFO); private static final SecurityInfo INFO2 = SecurityInfo.of(PRODUCT2.getSecurityId(), PRICE_INFO); //------------------------------------------------------------------------- public void test_builder() { IborFutureSecurity test = sut(); assertEquals(test.getInfo(), INFO); assertEquals(test.getSecurityId(), PRODUCT.getSecurityId()); assertEquals(test.getCurrency(), PRODUCT.getCurrency()); assertEquals(test.getUnderlyingIds(), ImmutableSet.of()); } //------------------------------------------------------------------------- public void test_createProduct() { IborFutureSecurity test = sut(); assertEquals(test.createProduct(ReferenceData.empty()), PRODUCT); TradeInfo tradeInfo = TradeInfo.of(date(2016, 6, 30)); IborFutureTrade expectedTrade = IborFutureTrade.builder() .info(tradeInfo) .product(PRODUCT) .quantity(100) .price(0.995) .build(); assertEquals(test.createTrade(tradeInfo, 100, 0.995, ReferenceData.empty()), expectedTrade); } //------------------------------------------------------------------------- public void coverage() { coverImmutableBean(sut()); coverBeanEquals(sut(), sut2()); } public void test_serialization() { assertSerialization(sut()); } //------------------------------------------------------------------------- static IborFutureSecurity sut() { return IborFutureSecurity.builder() .info(INFO) .notional(PRODUCT.getNotional()) .index(PRODUCT.getIndex()) .lastTradeDate(PRODUCT.getLastTradeDate()) .rounding(PRODUCT.getRounding()) .build(); } static IborFutureSecurity sut2() { return IborFutureSecurity.builder() .info(INFO2) .notional(PRODUCT2.getNotional()) .index(PRODUCT2.getIndex()) .lastTradeDate(PRODUCT2.getLastTradeDate()) .rounding(PRODUCT2.getRounding()) .build(); } }