package com.opengamma.sesame.credit.market; 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.util.Map; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; import com.opengamma.financial.analytics.isda.credit.CreditCurveDataKey; import com.opengamma.financial.security.bond.BondSecurity; import com.opengamma.id.ExternalId; import com.opengamma.id.ExternalIdBundle; import com.opengamma.sesame.Environment; import com.opengamma.sesame.credit.config.BondCreditCurveDataKeyMap; import com.opengamma.util.money.Currency; import com.opengamma.util.result.Result; /** * Tests {@link DefaultBondCreditMarketDataResolverFn}. */ public class DefaultBondCreditMarketDataResolverFnTest { private ExternalIdBundle _goodId; private ExternalIdBundle _badId; private BondCreditMarketDataResolverFn _fn; private final Environment _env = mock(Environment.class); private BondSecurity _goodSecurity; private BondSecurity _badSecurity; @BeforeMethod public void beforeMethod() { _goodId = ExternalId.of("Bond", "BondId").toBundle(); _badId = ExternalId.of("Bond", "MissingBondId").toBundle(); CreditCurveDataKey key = CreditCurveDataKey.builder() .currency(Currency.USD) .curveName("CurveName") .build(); Map<ExternalIdBundle, CreditCurveDataKey> map = ImmutableMap.of(_goodId, key); BondCreditCurveDataKeyMap keyMap = BondCreditCurveDataKeyMap.builder().keyMap(map).build(); _fn = new DefaultBondCreditMarketDataResolverFn(keyMap); _goodSecurity = mock(BondSecurity.class); when(_goodSecurity.getExternalIdBundle()).thenReturn(_goodId); _badSecurity = mock(BondSecurity.class); when(_badSecurity.getExternalIdBundle()).thenReturn(_badId); } @Test public void resolve() { Result<CreditCurveDataKey> result = _fn.resolve(_env, _goodSecurity); assertTrue(result.isSuccess()); } @Test public void resolveMissing() { Result<CreditCurveDataKey> result = _fn.resolve(_env, _badSecurity); assertFalse(result.isSuccess()); } }