/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.aggregation;
import static org.testng.AssertJUnit.assertEquals;
import org.testng.annotations.Test;
import com.opengamma.core.position.impl.SimplePosition;
import com.opengamma.core.position.impl.SimpleTrade;
import com.opengamma.util.test.TestGroup;
/**
*
*/
@Test(groups = TestGroup.UNIT)
public class PositionAttributeAggregationFunctionTest {
public static final String ATTR_NAME = "ATTR_NAME";
public static final String POS_VALUE = "POS_VALUE";
public static final String TRADE_VALUE = "TRADE_VALUE";
private final PositionAttributeAggregationFunction _aggFn = new PositionAttributeAggregationFunction(ATTR_NAME);
@Test
public void positionAttribute() {
SimplePosition position = new SimplePosition();
position.addAttribute(ATTR_NAME, POS_VALUE);
assertEquals(POS_VALUE, _aggFn.classifyPosition(position));
}
@Test
public void tradeAttribute() {
SimplePosition position = new SimplePosition();
SimpleTrade trade = new SimpleTrade();
trade.addAttribute(ATTR_NAME, TRADE_VALUE);
position.addTrade(trade);
assertEquals(TRADE_VALUE, _aggFn.classifyPosition(position));
}
/**
* Tests the position's value is used when both the position and one of its trades have values for the same attribute.
*/
@Test
public void positionAndTradeAttributes() {
SimplePosition position = new SimplePosition();
position.addAttribute(ATTR_NAME, POS_VALUE);
SimpleTrade trade = new SimpleTrade();
trade.addAttribute(ATTR_NAME, TRADE_VALUE);
position.addTrade(trade);
assertEquals(POS_VALUE, _aggFn.classifyPosition(position));
}
}