/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.calc.marketdata; import static com.opengamma.strata.basics.currency.Currency.GBP; import static com.opengamma.strata.collect.TestHelper.assertThrows; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static com.opengamma.strata.collect.TestHelper.date; import static org.testng.Assert.assertEquals; import java.time.LocalDate; import java.util.Optional; import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; import com.opengamma.strata.basics.currency.FxRate; import com.opengamma.strata.collect.result.FailureException; import com.opengamma.strata.collect.result.FailureReason; import com.opengamma.strata.collect.result.Result; import com.opengamma.strata.data.FxRateId; import com.opengamma.strata.data.MarketDataNotFoundException; import com.opengamma.strata.data.scenario.MarketDataBox; /** * Test {@link BuiltScenarioMarketData}. */ @Test public class BuiltScenarioMarketDataTest { private static final LocalDate VAL_DATE = date(2011, 3, 8); private static final TestObservableId ID = TestObservableId.of("1"); //------------------------------------------------------------------------- public void test_getValue_fxIdentity() { BuiltScenarioMarketData test = BuiltScenarioMarketData.builder(MarketDataBox.ofSingleValue(VAL_DATE)).build(); assertEquals(test.getScenarioCount(), 1); assertEquals(test.getValue(FxRateId.of(GBP, GBP)), MarketDataBox.ofSingleValue(FxRate.of(GBP, GBP, 1))); } public void test_getValue_withKnownFailure() { String failureMessage = "Something went wrong"; BuiltScenarioMarketData test = BuiltScenarioMarketData.builder(MarketDataBox.ofSingleValue(VAL_DATE)) .addResult(ID, Result.failure(FailureReason.ERROR, failureMessage)) .build(); assertEquals(test.getValuationDate(), MarketDataBox.ofSingleValue(VAL_DATE)); assertEquals(test.containsValue(ID), false); assertEquals(test.getIds(), ImmutableSet.of()); assertEquals(test.findValue(ID), Optional.empty()); assertThrows(() -> test.getValue(ID), FailureException.class, failureMessage); } public void test_getValue_withUnknownFailure() { BuiltScenarioMarketData test = BuiltScenarioMarketData.builder(MarketDataBox.ofSingleValue(VAL_DATE)).build(); assertEquals(test.getValuationDate(), MarketDataBox.ofSingleValue(VAL_DATE)); assertEquals(test.containsValue(ID), false); assertEquals(test.getIds(), ImmutableSet.of()); assertEquals(test.findValue(ID), Optional.empty()); assertThrows(() -> test.getValue(ID), MarketDataNotFoundException.class); } //------------------------------------------------------------------------- public void coverage() { coverImmutableBean(BuiltScenarioMarketData.empty()); } }