package com.opengamma.sesame.credit.market; import static org.testng.AssertJUnit.assertEquals; 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.sesame.credit.config.CreditCurveDataKeyMap; import com.opengamma.util.money.Currency; import com.opengamma.util.result.Result; import com.opengamma.util.test.TestGroup; /** * Tests use cases of {@link DefaultCreditKeyMapperFn}. */ @Test(groups = TestGroup.UNIT) public class DefaultCreditKeyMapperFnTest { private CreditCurveDataKey _source; private CreditCurveDataKey _target; private CreditCurveDataKey _missing; private DefaultCreditKeyMapperFn _fn; @BeforeMethod public void beforeMethod() { _source = CreditCurveDataKey.builder().curveName("source").currency(Currency.USD).build(); _target = CreditCurveDataKey.builder().curveName("target").currency(Currency.USD).build(); _missing = CreditCurveDataKey.builder().curveName("missing").currency(Currency.USD).build(); Map<CreditCurveDataKey, CreditCurveDataKey> keyMap = ImmutableMap.of(_source, _target); CreditCurveDataKeyMap configKeyMap = CreditCurveDataKeyMap.builder() .securityCurveMappings(keyMap) .build(); _fn = new DefaultCreditKeyMapperFn(configKeyMap); } @Test public void successfulMap() { Result<CreditCurveDataKey> result = _fn.getMapping(_source); assertTrue("Expected success", result.isSuccess()); assertEquals("Expected target key", _target, result.getValue()); } @Test public void noMapping() { Result<CreditCurveDataKey> result = _fn.getMapping(_missing); assertTrue("Expected success", result.isSuccess()); assertEquals("Expected same key (i.e. missing)", _missing, result.getValue()); } }