/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.credit.curve; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; import java.security.InvalidParameterException; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; import com.opengamma.DataNotFoundException; import com.opengamma.financial.analytics.isda.credit.CreditCurveData; import com.opengamma.financial.analytics.isda.credit.CreditCurveDataKey; import com.opengamma.financial.analytics.isda.credit.CreditCurveDataSnapshot; import com.opengamma.sesame.Environment; import com.opengamma.sesame.marketdata.CreditCurveDataId; import com.opengamma.sesame.marketdata.CreditCurveDataSnapshotId; import com.opengamma.sesame.marketdata.MarketDataBundle; import com.opengamma.util.money.Currency; import com.opengamma.util.result.FailureStatus; import com.opengamma.util.result.Result; import com.opengamma.util.test.TestGroup; /** * Tests {@link DefaultCreditCurveDataProviderFnTest}. */ @Test(groups = TestGroup.UNIT) public class DefaultCreditCurveDataProviderFnTest { private DefaultCreditCurveDataProviderFn _fnWithUSDCurve; private Environment _env; private final CreditCurveDataKey _goodKey = CreditCurveDataKey.builder().curveName("USD").currency(Currency.USD).build(); private final CreditCurveDataKey _badKey = CreditCurveDataKey.builder().curveName("GBP").currency(Currency.GBP).build(); @SuppressWarnings("unchecked") @BeforeClass public void beforeClass() { _env = mock(Environment.class); MarketDataBundle bundle = mock(MarketDataBundle.class); when(_env.getMarketDataBundle()).thenReturn(bundle); String name = "Snapshot Name"; CreditCurveDataId goodId = CreditCurveDataId.of(name, _goodKey); CreditCurveDataId badId = CreditCurveDataId.of(name, _badKey); CreditCurveDataSnapshot snapshot = CreditCurveDataSnapshot.builder() .name("") .creditCurves(ImmutableMap.of(_goodKey, mock(CreditCurveData.class))) .build(); when(bundle.get(goodId, CreditCurveData.class)).thenReturn(Result.success(snapshot.getCreditCurves().get(_goodKey))); when(bundle.get(badId, CreditCurveData.class)).thenReturn(Result.<CreditCurveData>failure(new DataNotFoundException("No Data"))); _fnWithUSDCurve = new DefaultCreditCurveDataProviderFn(name); } @Test public void testFnMissingData() { Result<CreditCurveData> result = _fnWithUSDCurve.retrieveCreditCurveData(_env, _badKey); assertFalse(_badKey + " is missing so result should be failure.", result.isSuccess()); } @Test public void testFn() { Result<CreditCurveData> result = _fnWithUSDCurve.retrieveCreditCurveData(_env, _goodKey); assertTrue(_goodKey + " present in snapshot so should succeed.", result.isSuccess()); } }