/** * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.measure.fxopt; import static com.opengamma.strata.collect.TestHelper.assertJodaConvert; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.assertThrows; import static com.opengamma.strata.collect.TestHelper.coverEnum; import static com.opengamma.strata.measure.fxopt.FxSingleBarrierOptionMethod.BLACK; import static org.testng.Assert.assertEquals; import java.util.Optional; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import com.opengamma.strata.basics.CalculationTarget; import com.opengamma.strata.measure.Measures; import com.opengamma.strata.product.fxopt.FxSingleBarrierOptionTrade; /** * Test {@link FxSingleBarrierOptionMethod}. */ @Test public class FxSingleBarrierOptionMethodTest { private static final FxSingleBarrierOptionTrade TRADE = FxSingleBarrierOptionTradeCalculationFunctionTest.TRADE; private static final CalculationTarget TARGET = new CalculationTarget() {}; //------------------------------------------------------------------------- @DataProvider(name = "name") static Object[][] data_name() { return new Object[][] { {FxSingleBarrierOptionMethod.BLACK, "Black"}, {FxSingleBarrierOptionMethod.TRINOMIAL_TREE, "TrinomialTree"}, }; } @Test(dataProvider = "name") public void test_toString(FxSingleBarrierOptionMethod convention, String name) { assertEquals(convention.toString(), name); } @Test(dataProvider = "name") public void test_of_lookup(FxSingleBarrierOptionMethod convention, String name) { assertEquals(FxSingleBarrierOptionMethod.of(name), convention); } public void test_of_lookup_notFound() { assertThrows(() -> FxSingleBarrierOptionMethod.of("Rubbish"), IllegalArgumentException.class); } public void test_of_lookup_null() { assertThrows(() -> FxSingleBarrierOptionMethod.of(null), IllegalArgumentException.class); } //------------------------------------------------------------------------- public void test_filter() { assertEquals(BLACK.filter(TRADE, Measures.PRESENT_VALUE), Optional.of(BLACK)); assertEquals(BLACK.filter(TARGET, Measures.PRESENT_VALUE), Optional.empty()); } //------------------------------------------------------------------------- public void coverage() { coverEnum(FxSingleBarrierOptionMethod.class); } public void test_serialization() { assertSerialization(FxSingleBarrierOptionMethod.BLACK); } public void test_jodaConvert() { assertJodaConvert(FxSingleBarrierOptionMethod.class, FxSingleBarrierOptionMethod.BLACK); } }