package org.marketcetera.client; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import java.util.ArrayList; import java.util.Arrays; import javax.jms.ConnectionFactory; import org.junit.BeforeClass; import org.junit.Test; import org.marketcetera.client.config.SpringConfig; import org.marketcetera.core.LoggerConfiguration; import org.marketcetera.trade.Order; /* $License$ */ /** * Tests the handling of order modifiers on the client side. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: ClientOrderModifierTest.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.1.4 */ public class ClientOrderModifierTest { /** * Run once before all unit tests. * * @throws Exception if an unexpected error occurs */ @BeforeClass public static void once() throws Exception { LoggerConfiguration.logSetup(); } /** * Tests adding and retrieving {@link OrderModifier} objects to {@link SpringConfig} objects. * * @throws Exception if an unexpected error occurs */ @Test public void testSpringConfig() throws Exception { ConnectionFactory mockIncomingFactory = mock(ConnectionFactory.class); ConnectionFactory mockOutgoingFactory = mock(ConnectionFactory.class); SpringConfig config = new SpringConfig(mockIncomingFactory, mockOutgoingFactory, null); config.afterPropertiesSet(); assertTrue(config.getOrderModifiers().isEmpty()); config = new SpringConfig(mockIncomingFactory, mockOutgoingFactory, new ArrayList<OrderModifier>()); config.afterPropertiesSet(); assertTrue(config.getOrderModifiers().isEmpty()); OrderModifier modifier1 = new OrderModifier() { @Override public boolean modify(Order inOrder) { throw new UnsupportedOperationException(); } }; config = new SpringConfig(mockIncomingFactory, mockOutgoingFactory, Arrays.asList(new OrderModifier[] { modifier1 } )); config.afterPropertiesSet(); assertTrue(Arrays.equals(new OrderModifier[] { modifier1 }, config.getOrderModifiers().toArray())); OrderModifier modifier2 = new OrderModifier() { @Override public boolean modify(Order inOrder) { throw new UnsupportedOperationException(); } }; config = new SpringConfig(mockIncomingFactory, mockOutgoingFactory, Arrays.asList(new OrderModifier[] { modifier1, modifier2 } )); config.afterPropertiesSet(); assertTrue(Arrays.equals(new OrderModifier[] { modifier1, modifier2 }, config.getOrderModifiers().toArray())); config.setOrderModifiers(null); assertTrue(config.getOrderModifiers().isEmpty()); OrderModifier modifier3 = new OrderModifier() { @Override public boolean modify(Order inOrder) { throw new UnsupportedOperationException(); } }; OrderModifier modifier4 = new OrderModifier() { @Override public boolean modify(Order inOrder) { throw new UnsupportedOperationException(); } }; config.setOrderModifiers(Arrays.asList(new OrderModifier[] { modifier3, modifier4 } )); assertTrue(Arrays.equals(new OrderModifier[] { modifier3, modifier4 }, config.getOrderModifiers().toArray())); config.setOrderModifiers(new ArrayList<OrderModifier>()); assertTrue(config.getOrderModifiers().isEmpty()); } }