Package com.opengamma.integration.tool.portfolio.xml.v1_0.conversion

Source Code of com.opengamma.integration.tool.portfolio.xml.v1_0.conversion.FraTradeSecurityExtractorTest

/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.tool.portfolio.xml.v1_0.conversion;

import static org.testng.Assert.assertEquals;


import java.math.BigDecimal;

import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;

import com.opengamma.OpenGammaRuntimeException;
import com.opengamma.financial.security.fra.FRASecurity;
import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.ExtId;
import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.FixingIndex;
import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.FixingIndex.RateType;
import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.FraTrade;
import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.IdWrapper;
import com.opengamma.master.security.ManageableSecurity;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;

@Test(groups = TestGroup.UNIT)
public class FraTradeSecurityExtractorTest {
 
  @Test
  public void testExtractSecurities() {
    FraTrade fra = createBasicFra();
    FraTradeSecurityExtractor fraExtractor = new FraTradeSecurityExtractor(fra);
    ManageableSecurity[] extractSecurities = fraExtractor.extractSecurities();
    assertEquals(1, extractSecurities.length, "One fra expected");
    assertEquals(FRASecurity.class, extractSecurities[0].getClass(), "Expected instance of FraSecurity");
   
  }

  @Test(expectedExceptions={OpenGammaRuntimeException.class})
  public void testExtractSecuritiesBadPaymentDate() {
    FraTrade fra = createBasicFra();
    fra.setPaymentDate(fra.getEffectiveDate().plusDays(1));
    FraTradeSecurityExtractor fraExtractor = new FraTradeSecurityExtractor(fra);
    //should throw:
    fraExtractor.extractSecurities();
  }

  @Test
  public void testExtractSecuritiesWithCalendarInfo() {
    //should work, but will print a warning
    FraTrade fra = createBasicFra();
    fra.setDayCount("Modified Following");
    fra.setBusinessDayConvention("Actual/365");
    FraTradeSecurityExtractor fraExtractor = new FraTradeSecurityExtractor(fra);
    ManageableSecurity[] extractSecurities = fraExtractor.extractSecurities();
    assertEquals(1, extractSecurities.length, "One fra expected");
    assertEquals(FRASecurity.class, extractSecurities[0].getClass(), "Expected instance of FraSecurity");
  }
 
  /**
   * @return a fra with some fields set
   */
  private FraTrade createBasicFra(){
    FraTrade fra = new FraTrade();

    IdWrapper tradeId = createExternalId("IdFromExternalSystem", "External");
    IdWrapper regionId = createExternalId("IdFromExternalSystem", "External");
    IdWrapper counterparty = createExternalId("GOLDMAN", "Cpty");
   
    fra.setExternalSystemId(tradeId);
    fra.setTradeDate(LocalDate.of(2013, 1, 21));
    fra.setCounterparty(counterparty);
    fra.setPayFixed(true);
    fra.setRegionId(regionId);
    fra.setEffectiveDate(LocalDate.of(2013, 1, 23));
    fra.setPaymentDate(LocalDate.of(2013, 1, 23));
    fra.setFixingDate(LocalDate.of(2013, 2, 21));
    fra.setTerminationDate(LocalDate.of(2013, 5, 23));
    fra.setCurrency(Currency.USD);
    fra.setNotional(BigDecimal.valueOf(1000000));
    fra.setRate(BigDecimal.valueOf(105.25));
   
    FixingIndex fixingIndex = new FixingIndex();
    fixingIndex.setIndex(createExternalId("US0003M Curncy", "BLOOMBERG_TICKER").getExternalId());
    fixingIndex.setRateType(RateType.IBOR);
    fra.setFixingIndex(fixingIndex);
   
    return fra;
  }

  private IdWrapper createExternalId(String id, String scheme) {
    ExtId tradeExtId = new ExtId();
    tradeExtId.setId(id);
    tradeExtId.setScheme(scheme);
    IdWrapper tradeId = new IdWrapper();
    tradeId.setExternalId(tradeExtId);
    return tradeId;
  }

}
TOP

Related Classes of com.opengamma.integration.tool.portfolio.xml.v1_0.conversion.FraTradeSecurityExtractorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.