Exemplo n.º 1
0
        public void OnMessageTradeSplitFillTest()
        {
            var expectedQuantity = 2;

            BitfinexTestsHelpers.AddOrder(_unit, 1, "700658426", expectedQuantity);
            var     raised         = new ManualResetEvent(false);
            var     expectedFee    = 1.72366541m;
            decimal actualFee      = 0;
            decimal actualQuantity = 0;

            _unit.OrderStatusChanged += (s, e) =>
            {
                Assert.AreEqual("BTCUSD", e.Symbol.Value);
                actualFee      += e.OrderFee;
                actualQuantity += e.AbsoluteFillQuantity;

                if (e.Status == Orders.OrderStatus.Filled)
                {
                    Assert.AreEqual(expectedQuantity, actualQuantity);
                    Assert.AreEqual(expectedFee, Math.Round(actualFee, 8));
                    raised.Set();
                }
            };

            foreach (var line in File.ReadLines(Path.Combine("TestData", "bitfinex_fill.json")))
            {
                _unit.OnMessage(_unit, new WebSocketMessage(line));
            }
            Assert.IsTrue(raised.WaitOne(1000));
        }
Exemplo n.º 2
0
        public void OnMessageTradeTest()
        {
            var brokerId = "2";
            var json     = "[0,\"tu\", [\"abc123\",\"1\",\"BTCUSD\",\"1453989092\",\"2\",\"3\",\"4\",\"<ORD_TYPE>\",\"5\",\"6\",\"BTC\"]]";

            BitfinexTestsHelpers.AddOrder(_unit, 1, brokerId, 3);
            var raised = new ManualResetEvent(false);

            _unit.OrderStatusChanged += (s, e) =>
            {
                Assert.AreEqual("BTCUSD", e.Symbol.Value);
                Assert.AreEqual(3, e.FillQuantity);
                Assert.AreEqual(4m, e.FillPrice);
                Assert.AreEqual(24m, e.OrderFee);
                Assert.AreEqual(Orders.OrderStatus.Filled, e.Status);
                raised.Set();
            };

            _unit.OnMessage(_unit, new WebSocketMessage(json));
            Assert.IsTrue(raised.WaitOne(100));
        }