/** * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.product; import static com.opengamma.strata.basics.currency.Currency.GBP; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.assertThrows; import static com.opengamma.strata.collect.TestHelper.coverBeanEquals; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; 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; /** * Test {@link GenericSecurity}. */ @Test public class GenericSecurityTest { private static final SecurityPriceInfo PRICE_INFO = SecurityPriceInfo.of(0.1, CurrencyAmount.of(GBP, 25)); private static final SecurityInfo INFO = SecurityInfo.of(SecurityId.of("Test", "1"), PRICE_INFO); private static final SecurityInfo INFO2 = SecurityInfo.of(SecurityId.of("Test", "2"), PRICE_INFO); //------------------------------------------------------------------------- public void test_of() { GenericSecurity test = sut(); assertEquals(test.getInfo(), INFO); assertEquals(test.getSecurityId(), INFO.getId()); assertEquals(test.getCurrency(), INFO.getPriceInfo().getCurrency()); assertEquals(test.getUnderlyingIds(), ImmutableSet.of()); assertEquals(test, GenericSecurity.of(INFO)); assertThrows(() -> test.createProduct(ReferenceData.empty()), UnsupportedOperationException.class); assertEquals( test.createTrade(TradeInfo.empty(), 1, 2, ReferenceData.empty()), GenericSecurityTrade.of(TradeInfo.empty(), GenericSecurity.of(INFO), 1, 2)); } //------------------------------------------------------------------------- public void coverage() { coverImmutableBean(sut()); coverBeanEquals(sut(), sut2()); } public void test_serialization() { assertSerialization(sut()); } //------------------------------------------------------------------------- static GenericSecurity sut() { return GenericSecurity.of(INFO); } static GenericSecurity sut2() { return GenericSecurity.of(INFO2); } }