Package com.opengamma.integration.viewer.status.impl

Source Code of com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImplTest

/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.viewer.status.impl;

import static com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImpl.CURRENCY_HEADER;
import static com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImpl.SECURITY_HEADER;
import static com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImpl.STATUS;
import static com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImpl.TARGET_TYPE_HEADER;
import static com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImpl.VALUE_REQUIREMENT_NAME_HEADER;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;

import org.apache.commons.lang.StringUtils;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import com.opengamma.engine.target.ComputationTargetType;
import com.opengamma.integration.viewer.status.AggregateType;
import com.opengamma.integration.viewer.status.ViewStatus;
import com.opengamma.integration.viewer.status.ViewStatusModel;
import com.opengamma.integration.viewer.status.ViewStatusResultAggregator;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;

/**
* Tests {@link ViewStatusResultAggregatorImpl}
*/
@Test(groups = TestGroup.UNIT)
public class ViewStatusResultAggregatorImplTest {
 
 
  private static final ViewStatus NO_VALUE = ViewStatus.NO_VALUE;
  private static final ViewStatus VALUE = ViewStatus.VALUE;
  private static final String SWAP = "SWAP";
  private static final String SWAPTION = "SWAPTION";
  private static final String PV = "PV";
  private static final String YIELD_CURVE = "YIELD_CURVE";
  private static final String VALUERHO = "VALUERHO";
  private static final String CREDIT_SPREAD_CURVE = "CREDIT_SPREAD_CURVE";
  private static final String HAZARD_RATE_CURVE = "HAZARD_RATE_CURVE";
  private static final String QUANTITY = "QUANTITY";
  private static final String FAIR_VALUE = "FAIR_VALUE";
  private static final String PRESENT_VALUE = "PRESENT_VALUE";
 
 
  private static final String MIXED_SEC = "Mixed_SEC";
  private static final String MIXED_CUR = "Mixed_CUR";

  private static final String EMPTY_STR = StringUtils.EMPTY;
  private static final String USD = Currency.USD.getCode();
  private static final String GBP = Currency.GBP.getCode();
  private static final String EUR = Currency.EUR.getCode();
  private static final String POSITION_TARGET = ComputationTargetType.POSITION.getName();
  private static final String NODE_TARGET = ComputationTargetType.PORTFOLIO_NODE.getName();
 
  private ViewStatusResultAggregator _aggregator;
 
  @BeforeMethod
  public void setUp() {
    _aggregator = new ViewStatusResultAggregatorImpl();
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, PV, USD, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, PV, GBP, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, PV, EUR, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, YIELD_CURVE, USD, POSITION_TARGET), NO_VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, YIELD_CURVE, GBP, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, VALUERHO, USD, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAP, VALUERHO, GBP, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAPTION, CREDIT_SPREAD_CURVE, USD, POSITION_TARGET), VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAPTION, CREDIT_SPREAD_CURVE, GBP, POSITION_TARGET), NO_VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAPTION, HAZARD_RATE_CURVE, USD, POSITION_TARGET), NO_VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(SWAPTION, HAZARD_RATE_CURVE, GBP, POSITION_TARGET), NO_VALUE);
   
    _aggregator.putStatus(new ViewStatusKeyBean(MIXED_SEC, QUANTITY, MIXED_CUR, NODE_TARGET), NO_VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(MIXED_SEC, FAIR_VALUE, MIXED_CUR, NODE_TARGET), NO_VALUE);
    _aggregator.putStatus(new ViewStatusKeyBean(MIXED_SEC, PRESENT_VALUE, MIXED_CUR, NODE_TARGET), NO_VALUE);
    
  }
 
  public void aggregateByTargetTypeSecurityValueNameCurrency() {
    ViewStatusModel statusModel = _aggregator.aggregate(AggregateType.of("TSVC"));
    assertNotNull(statusModel);
   
    //check header
    assertEquals(2, statusModel.getHeaderRowCount());
    assertEquals(7, statusModel.getColumnCount());
    assertEquals(TARGET_TYPE_HEADER, statusModel.getColumnNameAt(0, 0));
    assertEquals(SECURITY_HEADER, statusModel.getColumnNameAt(0, 1));
    assertEquals(VALUE_REQUIREMENT_NAME_HEADER, statusModel.getColumnNameAt(0, 2));
    assertEquals(CURRENCY_HEADER, statusModel.getColumnNameAt(0, 3));
    assertEmptyString(statusModel.getColumnNameAt(0, 4));
    assertEmptyString(statusModel.getColumnNameAt(0, 5));
    assertEmptyString(statusModel.getColumnNameAt(0, 6));
   
    assertEmptyString(statusModel.getColumnNameAt(1, 0));
    assertEmptyString(statusModel.getColumnNameAt(1, 1));
    assertEmptyString(statusModel.getColumnNameAt(1, 2));
    assertEquals(EUR, statusModel.getColumnNameAt(1, 3));
    assertEquals(GBP, statusModel.getColumnNameAt(1, 4));
    assertEquals(MIXED_CUR, statusModel.getColumnNameAt(1, 5));
    assertEquals(USD, statusModel.getColumnNameAt(1, 6));
   
    //check rows
    assertEquals(8, statusModel.getRowCount());
   
    //check row1
    assertEquals(NODE_TARGET, statusModel.getRowValueAt(0, 0));
    assertEquals(MIXED_SEC, statusModel.getRowValueAt(0, 1));
    assertEquals(FAIR_VALUE, String.valueOf(statusModel.getRowValueAt(0, 2)));
    assertEmptyString(statusModel.getRowValueAt(0, 3));
    assertEmptyString(statusModel.getRowValueAt(0, 4));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(0, 5));
    assertEmptyString(statusModel.getRowValueAt(0, 6));
   
    //check row2
    assertEmptyString(statusModel.getRowValueAt(1, 0));
    assertEmptyString(statusModel.getRowValueAt(1, 1));
    assertEquals(PRESENT_VALUE, statusModel.getRowValueAt(1, 2));
    assertEmptyString(statusModel.getRowValueAt(1, 3));
    assertEmptyString(statusModel.getRowValueAt(1, 4));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(1, 5));
    assertEmptyString(statusModel.getRowValueAt(1, 6));
   
    //check row3
    assertEmptyString(statusModel.getRowValueAt(2, 0));
    assertEmptyString(statusModel.getRowValueAt(2, 1));
    assertEquals(QUANTITY, statusModel.getRowValueAt(2, 2));
    assertEmptyString(statusModel.getRowValueAt(2, 3));
    assertEmptyString(statusModel.getRowValueAt(2, 4));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(2, 5));
    assertEmptyString(statusModel.getRowValueAt(2, 6));
 
    //check row4
    assertEquals(POSITION_TARGET, statusModel.getRowValueAt(3, 0));
    assertEquals(SWAP, statusModel.getRowValueAt(3, 1));
    assertEquals(PV, statusModel.getRowValueAt(3, 2));
    assertEquals(VALUE, statusModel.getRowValueAt(3, 3));
    assertEquals(VALUE, statusModel.getRowValueAt(3, 4));
    assertEmptyString(statusModel.getRowValueAt(3, 5));
    assertEquals(VALUE, statusModel.getRowValueAt(3, 6));
  
    //check row5
    assertEmptyString(statusModel.getRowValueAt(4, 0));
    assertEmptyString(statusModel.getRowValueAt(4, 1));
    assertEquals(VALUERHO, statusModel.getRowValueAt(4, 2));
    assertEmptyString(statusModel.getRowValueAt(4, 3));
    assertEquals(VALUE, statusModel.getRowValueAt(4, 4));
    assertEmptyString(statusModel.getRowValueAt(4, 5));
    assertEquals(VALUE, statusModel.getRowValueAt(4, 6));
   
    //check row6
    assertEmptyString(statusModel.getRowValueAt(5, 0));
    assertEmptyString(statusModel.getRowValueAt(5, 1));
    assertEquals(YIELD_CURVE, statusModel.getRowValueAt(5, 2));
    assertEmptyString(statusModel.getRowValueAt(5, 3));
    assertEquals(VALUE, statusModel.getRowValueAt(5, 4));
    assertEmptyString(statusModel.getRowValueAt(5, 5));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(5, 6));
   
    //check row7
    assertEmptyString(statusModel.getRowValueAt(6, 0));
    assertEquals(SWAPTION, statusModel.getRowValueAt(6, 1));
    assertEquals(CREDIT_SPREAD_CURVE, statusModel.getRowValueAt(6, 2));
    assertEmptyString(statusModel.getRowValueAt(6, 3));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(6, 4));
    assertEmptyString(statusModel.getRowValueAt(6, 5));
    assertEquals(VALUE, statusModel.getRowValueAt(6, 6));
   
    //check row8
    assertEmptyString(statusModel.getRowValueAt(7, 0));
    assertEmptyString(statusModel.getRowValueAt(7, 1));
    assertEquals(HAZARD_RATE_CURVE, statusModel.getRowValueAt(7, 2));
    assertEmptyString(statusModel.getRowValueAt(7, 3));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(7, 4));
    assertEmptyString(statusModel.getRowValueAt(7, 5));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(7, 6));
   
  }
 
  public void aggregateBySecurityCurrencyValueNameTargetType() {
    ViewStatusModel statusModel = _aggregator.aggregate(AggregateType.of("SCVT"));
    assertNotNull(statusModel);
   
    //check header
    assertEquals(2, statusModel.getHeaderRowCount());
    assertEquals(5, statusModel.getColumnCount());
    assertEquals(SECURITY_HEADER, statusModel.getColumnNameAt(0, 0));
    assertEquals(CURRENCY_HEADER, statusModel.getColumnNameAt(0, 1));
    assertEquals(VALUE_REQUIREMENT_NAME_HEADER, statusModel.getColumnNameAt(0, 2));
    assertEquals(TARGET_TYPE_HEADER, statusModel.getColumnNameAt(0, 3));
    assertEmptyString(statusModel.getColumnNameAt(0, 4));
   
    assertEmptyString(statusModel.getColumnNameAt(1, 0));
    assertEmptyString(statusModel.getColumnNameAt(1, 1));
    assertEmptyString(statusModel.getColumnNameAt(1, 2));
    assertEquals(NODE_TARGET, statusModel.getColumnNameAt(1, 3));
    assertEquals(POSITION_TARGET, statusModel.getColumnNameAt(1, 4));
   
    //check rows
    assertEquals(14, statusModel.getRowCount());
   
    //check row1
    assertEmptyString(statusModel.getRowValueAt(6, 0));
    assertEmptyString(statusModel.getRowValueAt(6, 1));
    assertEquals(YIELD_CURVE, String.valueOf(statusModel.getRowValueAt(6, 2)));
    assertEmptyString(statusModel.getRowValueAt(6, 3));
    assertEquals(VALUE, statusModel.getRowValueAt(6, 4));
   
    //check row7
    assertEquals(MIXED_SEC, statusModel.getRowValueAt(0, 0));
    assertEquals(MIXED_CUR, statusModel.getRowValueAt(0, 1));
    assertEquals(FAIR_VALUE, String.valueOf(statusModel.getRowValueAt(0, 2)));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(0, 3));
    assertEmptyString(statusModel.getRowValueAt(0, 4));
   
    //check row14
    assertEmptyString(statusModel.getRowValueAt(13, 0));
    assertEmptyString(statusModel.getRowValueAt(13, 1));
    assertEquals(HAZARD_RATE_CURVE, statusModel.getRowValueAt(13, 2));
    assertEmptyString(statusModel.getRowValueAt(13, 3));
    assertEquals(NO_VALUE, statusModel.getRowValueAt(13, 4));
     
  }
 
  public void targetSecurityValueCurrencyHeaders() {
    ViewStatusModel model = _aggregator.aggregate(AggregateType.of("TSVC"));
    assertNotNull(model);
   
    assertEquals(2, model.getHeaderRowCount());
    assertEquals(7, model.getColumnCount());
   
    //check top header
    assertEquals(ViewStatusResultAggregatorImpl.TARGET_TYPE_HEADER, model.getColumnNameAt(0, 0));
    assertEquals(ViewStatusResultAggregatorImpl.SECURITY_HEADER, model.getColumnNameAt(0, 1));
    assertEquals(ViewStatusResultAggregatorImpl.VALUE_REQUIREMENT_NAME_HEADER, model.getColumnNameAt(0, 2));
    assertEquals(ViewStatusResultAggregatorImpl.CURRENCY_HEADER, model.getColumnNameAt(0, 3));
    assertEmptyString(model.getColumnNameAt(0, 4));
    assertEmptyString(model.getColumnNameAt(0, 5));
    assertEmptyString(model.getColumnNameAt(0, 6));
   
    //check sub header
    assertEmptyString(model.getColumnNameAt(1, 0));
    assertEmptyString(model.getColumnNameAt(1, 1));
    assertEmptyString(model.getColumnNameAt(1, 2));
    assertEquals(EUR, model.getColumnNameAt(1, 3));
    assertEquals(GBP, model.getColumnNameAt(1, 4));
    assertEquals(MIXED_CUR, model.getColumnNameAt(1, 5));
    assertEquals(USD, model.getColumnNameAt(1, 6));
  }
 
  public void targetSecurityCurrencyValueHeaders() {
    ViewStatusModel model = _aggregator.aggregate(AggregateType.of("TSCV"));
    assertNotNull(model);
   
    assertEquals(2, model.getHeaderRowCount());
    assertEquals(11, model.getColumnCount());
   
    //check top header
    assertEquals(ViewStatusResultAggregatorImpl.TARGET_TYPE_HEADER, model.getColumnNameAt(0, 0));
    assertEquals(ViewStatusResultAggregatorImpl.SECURITY_HEADER, model.getColumnNameAt(0, 1));
    assertEquals(ViewStatusResultAggregatorImpl.CURRENCY_HEADER, model.getColumnNameAt(0, 2));
    assertEquals(ViewStatusResultAggregatorImpl.VALUE_REQUIREMENT_NAME_HEADER, model.getColumnNameAt(0, 3));
    assertEmptyString(model.getColumnNameAt(0, 4));
    assertEmptyString(model.getColumnNameAt(0, 5));
    assertEmptyString(model.getColumnNameAt(0, 6));
    assertEmptyString(model.getColumnNameAt(0, 7));
    assertEmptyString(model.getColumnNameAt(0, 8));
    assertEmptyString(model.getColumnNameAt(0, 9));
    assertEmptyString(model.getColumnNameAt(0, 10));
   
    //check sub header
    assertEmptyString(model.getColumnNameAt(1, 0));
    assertEmptyString(model.getColumnNameAt(1, 1));
    assertEmptyString(model.getColumnNameAt(1, 2));
    assertEquals(CREDIT_SPREAD_CURVE, model.getColumnNameAt(1, 3));
    assertEquals(FAIR_VALUE, model.getColumnNameAt(1, 4));
    assertEquals(HAZARD_RATE_CURVE, model.getColumnNameAt(1, 5));
    assertEquals(PRESENT_VALUE, model.getColumnNameAt(1, 6));
    assertEquals(PV, model.getColumnNameAt(1, 7));
    assertEquals(QUANTITY, model.getColumnNameAt(1, 8));
    assertEquals(VALUERHO, model.getColumnNameAt(1, 9));
    assertEquals(YIELD_CURVE, model.getColumnNameAt(1, 10));
  }
 
  public void defaultHeaders() {
    ViewStatusModel model = _aggregator.aggregate(AggregateType.NO_AGGREGATION);
   
    assertNotNull(model);
    assertEquals(1, model.getHeaderRowCount());
    assertEquals(5, model.getColumnCount());
   
    assertEquals(TARGET_TYPE_HEADER, model.getColumnNameAt(0, 0));
    assertEquals(SECURITY_HEADER, model.getColumnNameAt(0, 1));
    assertEquals(VALUE_REQUIREMENT_NAME_HEADER, model.getColumnNameAt(0, 2));
    assertEquals(CURRENCY_HEADER, model.getColumnNameAt(0, 3));
    assertEquals(STATUS, model.getColumnNameAt(0, 4));   
  }

  private void assertEmptyString(final Object content) {
    assertEquals(EMPTY_STR, String.valueOf(content));
  }
 

}
TOP

Related Classes of com.opengamma.integration.viewer.status.impl.ViewStatusResultAggregatorImplTest

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.