From 37c6b6ecb446c6a1579c992cddcf46f4f8683bc3 Mon Sep 17 00:00:00 2001 From: Colin DuPlantis Date: Mon, 24 Apr 2023 09:41:31 -0700 Subject: [PATCH] Unit test fixes --- .../marketcetera/module/ModuleManager.java | 5 +++ .../org/marketcetera/ors/OrderStatusTest.java | 8 ++-- .../org/marketcetera/ors/PositionTest.java | 2 +- .../ors/brokers/SessionCustomizationTest.java | 2 +- .../org/marketcetera/test/DareTestBase.java | 38 +++++++++++-------- ....java => NewMarketDataModuleTestBase.java} | 2 +- .../SimulatedMarketDataModuleTestBase.java | 2 +- modules/marketdata/bogus/pom.xml | 5 +++ .../marketdata/bogus/BogusFeedModuleTest.java | 4 +- pom.xml | 5 +++ 10 files changed, 47 insertions(+), 26 deletions(-) rename marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/{MarketDataModuleTestBase.java => NewMarketDataModuleTestBase.java} (99%) diff --git a/core/src/main/java/org/marketcetera/module/ModuleManager.java b/core/src/main/java/org/marketcetera/module/ModuleManager.java index df40554fe7..3185c97cee 100644 --- a/core/src/main/java/org/marketcetera/module/ModuleManager.java +++ b/core/src/main/java/org/marketcetera/module/ModuleManager.java @@ -23,6 +23,7 @@ import javax.annotation.concurrent.GuardedBy; import javax.management.DynamicMBean; +import javax.management.InstanceAlreadyExistsException; import javax.management.JMException; import javax.management.JMX; import javax.management.MBeanAttributeInfo; @@ -1794,6 +1795,10 @@ private ObjectName registerMXBean(Object inMXBean, ObjectName inObjectName) try { //Register the factory with the mbean server getMBeanServer().registerMBean(proxy, inObjectName); + } catch (InstanceAlreadyExistsException e) { + Messages.BEAN_REGISTRATION_ERROR.warn(this, + e, + inObjectName); } catch (JMException e) { Messages.BEAN_REGISTRATION_ERROR.warn(this, e, diff --git a/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java b/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java index 9bbab65f60..cc263218a0 100644 --- a/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java +++ b/dare/src/test/java/org/marketcetera/ors/OrderStatusTest.java @@ -69,7 +69,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument) order1.setPrice(order1Price); order1.setQuantity(order1Qty); order1.setSide(Side.Buy); - client.sendOrder(order1); + tradeClient.sendOrder(order1); quickfix.Message receivedOrder1 = waitForAndVerifySenderMessage(sender1, quickfix.field.MsgType.ORDER_SINGLE); // send a pending new @@ -104,7 +104,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument) OrderStatus.New); // replace this order OrderReplace replace1 = Factory.getInstance().createOrderReplace((ExecutionReport)waitForClientReport()); - client.sendOrder(replace1); + tradeClient.sendOrder(replace1); quickfix.Message receivedReplace1 = waitForAndVerifySenderMessage(sender1, quickfix.field.MsgType.ORDER_CANCEL_REPLACE_REQUEST); verifyOpenOrders(Sets.newHashSet(order1.getOrderID())); @@ -141,7 +141,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument) OrderStatus.Replaced); // replace again OrderReplace replace2 = Factory.getInstance().createOrderReplace((ExecutionReport)waitForClientReport()); - client.sendOrder(replace2); + tradeClient.sendOrder(replace2); quickfix.Message receivedReplace2 = waitForAndVerifySenderMessage(sender1, quickfix.field.MsgType.ORDER_CANCEL_REPLACE_REQUEST); verifyOpenOrders(Sets.newHashSet(replace1.getOrderID())); @@ -208,7 +208,7 @@ public void testReplaceUpdatesOrderRecord(Instrument inInstrument) order2.setPrice(order2Price); order2.setQuantity(order2Qty); order2.setSide(Side.Buy); - client.sendOrder(order2); + tradeClient.sendOrder(order2); quickfix.Message receivedOrder2 = waitForAndVerifySenderMessage(sender1, quickfix.field.MsgType.ORDER_SINGLE); // send a pending new diff --git a/dare/src/test/java/org/marketcetera/ors/PositionTest.java b/dare/src/test/java/org/marketcetera/ors/PositionTest.java index 5e70079778..16141fd948 100644 --- a/dare/src/test/java/org/marketcetera/ors/PositionTest.java +++ b/dare/src/test/java/org/marketcetera/ors/PositionTest.java @@ -469,7 +469,7 @@ private OrderSingle generatePosition(Instrument inInstrument, order.setPrice(orderPrice); order.setQuantity(inOrderQty); order.setSide(Side.Buy); - client.sendOrder(order); + tradeClient.sendOrder(order); quickfix.Message receivedOrder = waitForAndVerifySenderMessage(sender, quickfix.field.MsgType.ORDER_SINGLE); // send a pending new diff --git a/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java b/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java index c0303b6215..bf2518f8c9 100644 --- a/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java +++ b/dare/src/test/java/org/marketcetera/ors/brokers/SessionCustomizationTest.java @@ -216,7 +216,7 @@ private OrderSingle sendOrder(BrokerID inBrokerId) order.setPrice(orderPrice); order.setQuantity(BigDecimal.TEN); order.setSide(Side.Buy); - client.sendOrder(order); + tradeClient.sendOrder(order); return order; } /** diff --git a/dare/src/test/java/org/marketcetera/test/DareTestBase.java b/dare/src/test/java/org/marketcetera/test/DareTestBase.java index 9697c89ef5..0290d67385 100644 --- a/dare/src/test/java/org/marketcetera/test/DareTestBase.java +++ b/dare/src/test/java/org/marketcetera/test/DareTestBase.java @@ -38,6 +38,7 @@ import org.junit.Rule; import org.junit.rules.TestName; import org.junit.runner.RunWith; +import org.marketcetera.admin.HasCurrentUser; import org.marketcetera.admin.User; import org.marketcetera.admin.dao.PersistentPermissionDao; import org.marketcetera.admin.service.AuthorizationService; @@ -83,8 +84,7 @@ import org.marketcetera.trade.Side; import org.marketcetera.trade.TradeMessage; import org.marketcetera.trade.TradeMessageListener; -import org.marketcetera.trade.client.DirectTradeClientFactory; -import org.marketcetera.trade.client.DirectTradeClientParameters; +import org.marketcetera.trade.client.DirectTradeClient; import org.marketcetera.trade.client.TradeClient; import org.marketcetera.trade.dao.ExecutionReportDao; import org.marketcetera.trade.dao.OrderSummaryDao; @@ -154,10 +154,21 @@ public void setup() eventBusService.register(this); fixSettingsProvider = fixSettingsProviderFactory.create(); traderUser = userService.findByName("trader"); - DirectTradeClientParameters tradeClientParameters = new DirectTradeClientParameters(); - tradeClientParameters.setUsername(traderUser.getName()); - client = tradeClientFactory.create(tradeClientParameters); - client.start(); + tradeClient = new DirectTradeClient(); + PlatformServices.autowire(tradeClient, + applicationContext); + ((DirectTradeClient)tradeClient).setCurrentUser(new HasCurrentUser() { + @Override + public User getUser() + { + return traderUser; + } + @Override + public void setUser(User inUser) + { + throw new UnsupportedOperationException(); + }} + ); reports.clear(); tradeMessageListener = new TradeMessageListener() { @Override @@ -169,7 +180,7 @@ public void receiveTradeMessage(TradeMessage inTradeMessage) } } }; - client.addTradeMessageListener(tradeMessageListener); + tradeClient.addTradeMessageListener(tradeMessageListener); hostAcceptorPort = fixSettingsProvider.getAcceptorPort(); remoteAcceptorPort = hostAcceptorPort + 1000; asyncExecutorService = Executors.newCachedThreadPool(); @@ -193,9 +204,9 @@ public void cleanup() SLF4JLoggerProxy.info(this, "{} cleanup beginning", name.getMethodName()); - if(client != null) { - client.removeTradeMessageListener(tradeMessageListener); - client.stop(); + if(tradeClient != null) { + tradeClient.removeTradeMessageListener(tradeMessageListener); + tradeClient.stop(); } try { if(receiver != null) { @@ -2911,7 +2922,7 @@ public quickfix.Message waitForAndVerifySenderMessage(quickfix.Message inSenderM /** * provides access to client trading services */ - protected TradeClient client; + protected TradeClient tradeClient; /** * provides fix settings */ @@ -3024,11 +3035,6 @@ public quickfix.Message waitForAndVerifySenderMessage(quickfix.Message inSenderM */ @Autowired protected ApplicationContext applicationContext; - /** - * creates Direct Trade client objects - */ - @Autowired - protected DirectTradeClientFactory tradeClientFactory; /** * transaction manager value */ diff --git a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/MarketDataModuleTestBase.java b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/NewMarketDataModuleTestBase.java similarity index 99% rename from marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/MarketDataModuleTestBase.java rename to marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/NewMarketDataModuleTestBase.java index 1fec01ff9e..11e1137b7e 100644 --- a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/MarketDataModuleTestBase.java +++ b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/NewMarketDataModuleTestBase.java @@ -44,7 +44,7 @@ * @version $Id$ * @since 1.0.0 */ -public abstract class MarketDataModuleTestBase +public abstract class NewMarketDataModuleTestBase extends ModuleTestBase { /** diff --git a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java index 8489ff1671..30e9f2ae4a 100644 --- a/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java +++ b/marketdata/marketdata-core/src/test/java/org/marketcetera/marketdata/SimulatedMarketDataModuleTestBase.java @@ -13,7 +13,7 @@ * @since 1.0.0 */ public abstract class SimulatedMarketDataModuleTestBase - extends MarketDataModuleTestBase + extends NewMarketDataModuleTestBase { @BeforeClass public static void setupOnce() diff --git a/modules/marketdata/bogus/pom.xml b/modules/marketdata/bogus/pom.xml index e8892989b3..e849e86730 100644 --- a/modules/marketdata/bogus/pom.xml +++ b/modules/marketdata/bogus/pom.xml @@ -39,6 +39,11 @@ + + ${project.groupId} + marketdata-core + test-jar + ${project.groupId} core diff --git a/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java b/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java index fe4ad48c39..fc1c499f1a 100644 --- a/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java +++ b/modules/marketdata/bogus/src/test/java/org/marketcetera/marketdata/bogus/BogusFeedModuleTest.java @@ -25,8 +25,8 @@ import org.marketcetera.marketdata.Capability; import org.marketcetera.marketdata.Content; import org.marketcetera.marketdata.MarketDataFeedTestBase; -import org.marketcetera.marketdata.MarketDataModuleTestBase; import org.marketcetera.marketdata.MarketDataRequestBuilder; +import org.marketcetera.marketdata.NewMarketDataModuleTestBase; import org.marketcetera.module.DataFlowID; import org.marketcetera.module.DataRequest; import org.marketcetera.module.ModuleException; @@ -44,7 +44,7 @@ * @since 1.0.0 */ public class BogusFeedModuleTest - extends MarketDataModuleTestBase + extends NewMarketDataModuleTestBase { /** * Tests a deadlock scenario that occurred for Bogus feed. diff --git a/pom.xml b/pom.xml index c76e8bdc13..ca23213e51 100644 --- a/pom.xml +++ b/pom.xml @@ -603,6 +603,11 @@ esper-compiler ${esper.version} + + org.codehaus.janino + janino + 3.1.6 + com.espertech esper-common-avro