/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.fudgemsg; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import java.util.Arrays; import java.util.HashSet; import org.testng.annotations.Test; import com.opengamma.engine.value.ValueProperties; import com.opengamma.engine.view.helper.AvailableOutput; import com.opengamma.engine.view.helper.AvailableOutputs; import com.opengamma.engine.view.helper.AvailableOutputsImpl; import com.opengamma.util.test.AbstractFudgeBuilderTestCase; import com.opengamma.util.test.TestGroup; /** * Tests {@link AvailableOutputsFudgeBuilder} */ @Test(groups = TestGroup.UNIT) public class AvailableOutputsBuilderTest extends AbstractFudgeBuilderTestCase { public void testCycleEmptyObject() { final AvailableOutputsImpl outputs = new AvailableOutputsImpl(); final AvailableOutputs cycled = cycleObject(AvailableOutputs.class, outputs); assertTrue(cycled.getOutputs().isEmpty()); assertTrue(cycled.getPortfolioNodeOutputs().isEmpty()); assertTrue(cycled.getPositionOutputs().isEmpty()); assertTrue(cycled.getSecurityTypes().isEmpty()); } public void testCyclePopulatedObject() { final AvailableOutputsImpl outputs = new AvailableOutputsImpl(); outputs.portfolioNodeOutput("V", ValueProperties.with("P", "A", "B").get()); outputs.positionOutput("V", "Swap", ValueProperties.with("P", "A", "C").get()); outputs.positionOutput("V", "Option", ValueProperties.with("P", "A", "D").get()); final AvailableOutputs cycled = cycleObject(AvailableOutputs.class, outputs); assertEquals(cycled.getOutputs().size(), 1); AvailableOutput output = cycled.getOutputs().iterator().next(); assertEquals(output.getValueName(), "V"); assertEquals(output.getProperties(), ValueProperties.with("P", "A", "B", "C", "D").get()); assertEquals(output.getSecurityTypes(), new HashSet<String>(Arrays.asList("Swap", "Option"))); assertEquals(output.getPositionProperties("Swap"), ValueProperties.with("P", "A", "C").get()); assertEquals(output.getPositionProperties("Option"), ValueProperties.with("P", "A", "D").get()); assertEquals(output.getPortfolioNodeProperties(), ValueProperties.with("P", "A", "B").get()); assertEquals(cycled.getPortfolioNodeOutputs().size(), 1); output = cycled.getPortfolioNodeOutputs().iterator().next(); assertEquals(output.getValueName(), "V"); assertEquals(output.getProperties(), ValueProperties.with("P", "A", "B").get()); assertEquals(output.getPortfolioNodeProperties(), ValueProperties.with("P", "A", "B").get()); assertEquals(cycled.getPositionOutputs().size(), 1); output = cycled.getPositionOutputs().iterator().next(); assertEquals(output.getValueName(), "V"); assertEquals(output.getProperties(), ValueProperties.with("P", "A", "C", "D").get()); assertEquals(output.getSecurityTypes(), new HashSet<String>(Arrays.asList("Swap", "Option"))); assertEquals(output.getPositionProperties("Swap"), ValueProperties.with("P", "A", "C").get()); assertEquals(output.getPositionProperties("Option"), ValueProperties.with("P", "A", "D").get()); assertEquals(cycled.getPositionOutputs("Swap").size(), 1); output = cycled.getPositionOutputs("Swap").iterator().next(); assertEquals(output.getValueName(), "V"); assertEquals(output.getProperties(), ValueProperties.with("P", "A", "C").get()); assertEquals(output.getSecurityTypes(), new HashSet<String>(Arrays.asList("Swap"))); assertEquals(cycled.getPositionOutputs("Option").size(), 1); output = cycled.getPositionOutputs("Option").iterator().next(); assertEquals(output.getValueName(), "V"); assertEquals(output.getProperties(), ValueProperties.with("P", "A", "D").get()); assertEquals(output.getSecurityTypes(), new HashSet<String>(Arrays.asList("Option"))); } }