/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.comparison;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;
import com.opengamma.core.position.impl.SimplePortfolio;
import com.opengamma.core.position.impl.SimplePortfolioNode;
import com.opengamma.util.fudgemsg.OpenGammaFudgeContext;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class PortfolioComparisonTest extends AbstractTest {
public void testComparison() {
final SimplePortfolioNode nodeA = new SimplePortfolioNode();
nodeA.addPosition(createPosition("1", 10, createRawSecurity("1", 42), null, null, null, null));
nodeA.addPosition(createPosition("3", 10, createRawSecurity("3", 42), null, null, null, null));
final SimplePortfolio portfolioA = new SimplePortfolio("A", nodeA);
final SimplePortfolioNode nodeB = new SimplePortfolioNode();
nodeB.addPosition(createPosition("2", 10, createRawSecurity("2", 42), null, null, null, null));
nodeB.addPosition(createPosition("3", 10, createRawSecurity("3", 42), null, null, null, null));
final SimplePortfolio portfolioB = new SimplePortfolio("B", nodeB);
final PortfolioComparator comparator = new PortfolioComparator(OpenGammaFudgeContext.getInstance());
final PortfolioComparison result = comparator.compare(portfolioA, portfolioB);
assertEquals(result.getOnlyInFirst().size(), 1);
assertEquals(result.getOnlyInSecond().size(), 1);
assertEquals(result.getIdentical().size(), 1);
assertEquals(result.getOnlyInFirstPortfolio().getRootNode().getPositions().size(), 1);
assertEquals(result.getOnlyInSecondPortfolio().getRootNode().getPositions().size(), 1);
assertEquals(result.getCommonPortfolio().getRootNode().getPositions().size(), 1);
}
}