From 458cb04e09e82a73c98c710ffd310ab1ea6e29ab Mon Sep 17 00:00:00 2001 From: Denis Tereshkin Date: Wed, 28 Sep 2016 09:54:50 +0700 Subject: [PATCH] Refactoring: mkOrder makes order with sensible defaults --- src/ATrade/Types.hs | 11 +++++++++++ test/TestBrokerServer.hs | 10 +++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/ATrade/Types.hs b/src/ATrade/Types.hs index 0ec4fb2..a5a7bfa 100644 --- a/src/ATrade/Types.hs +++ b/src/ATrade/Types.hs @@ -10,6 +10,7 @@ module ATrade.Types ( Operation(..), OrderState(..), Order(..), + mkOrder, Trade(..), OrderId(..) ) where @@ -246,6 +247,16 @@ data Order = Order { orderSignalId :: SignalId } deriving (Show, Eq) +mkOrder = Order { orderId = 0, + orderAccountId = "", + orderSecurity = "", + orderPrice = Market, + orderQuantity = 0, + orderExecutedQuantity = 0, + orderOperation = Buy, + orderState = Unsubmitted, + orderSignalId = SignalId "" "" "" } + instance FromJSON Order where parseJSON (Object v) = Order <$> v .:? "order-id" .!= 0 <*> diff --git a/test/TestBrokerServer.hs b/test/TestBrokerServer.hs index 6314fde..5f13d13 100644 --- a/test/TestBrokerServer.hs +++ b/test/TestBrokerServer.hs @@ -77,22 +77,18 @@ testBrokerServerSubmitOrder = testCase "Broker Server submits order" $ withConte uid <- toText <$> UV4.nextRandom (mockBroker, broState) <- mkMockBroker ["demo"] let ep = "inproc://brokerserver" `T.append` uid - let order = Order { - orderId = 0, + let order = mkOrder { orderAccountId = "demo", orderSecurity = "FOO", orderPrice = Market, orderQuantity = 10, - orderExecutedQuantity = 0, - orderOperation = Buy, - orderState = Unsubmitted, - orderSignalId = SignalId "" "" "" + orderOperation = Buy } bracket (startBrokerServer [mockBroker] ctx ep) stopBrokerServer (\broS -> withSocket ctx Req (\sock -> do connect sock (T.unpack ep) send sock [] (BL.toStrict . encode $ RequestSubmitOrder 1 order) - threadDelay 100000 + threadDelay 10000 s <- readIORef broState (length . orders) s @?= 1 )))