コード例 #1
0
        public void SubscribingToPositionUpdates_Should_TriggerWithPositionUpdate(string updateType, BitfinexEventType eventType, bool single = true)
        {
            // arrange
            var socket = new TestSocket();

            socket.CanConnect = true;
            var client = TestHelpers.CreateAuthenticatedSocketClient(socket);

            var rstEvent = new ManualResetEvent(false);
            BitfinexSocketEvent <BitfinexPosition[]> result = null;
            var expected = new BitfinexSocketEvent <BitfinexPosition[]>(eventType, new[] { new BitfinexPosition()
                                                                                           {
                                                                                           } });

            client.SubscribeToTradingUpdatesAsync(null, null, data =>
            {
                result = data;
                rstEvent.Set();
            });

            // act
            socket.InvokeMessage(new BitfinexAuthenticationResponse()
            {
                Event = "auth", Status = "OK"
            });
            socket.InvokeMessage(single ? new object[] { 0, updateType, new BitfinexPosition() } : new object[] { 0, updateType, new[] { new BitfinexPosition() } });
            rstEvent.WaitOne(1000);

            // assert
            Assert.IsTrue(TestHelpers.AreEqual(result.Data[0], expected.Data[0]));
        }
コード例 #2
0
        public void SubscribingToWalletUpdates_Should_TriggerWithWalletUpdate(string updateType, BitfinexEventType eventType, bool single = true)
        {
            // arrange
            var socket = new TestSocket();

            socket.CanConnect = true;
            var client = TestHelpers.CreateAuthenticatedSocketClient(socket);

            var rstEvent = new ManualResetEvent(false);
            BitfinexSocketEvent <IEnumerable <BitfinexWallet> > result = null;
            var expected = new BitfinexSocketEvent <IEnumerable <BitfinexWallet> >(eventType, new[] { new BitfinexWallet()
                                                                                                      {
                                                                                                      } });

            client.SpotStreams.SubscribeToBalanceUpdatesAsync(data =>
            {
                result = data.Data;
                rstEvent.Set();
            });

            // act
            socket.InvokeMessage(new BitfinexAuthenticationResponse()
            {
                Event = "auth", Status = "OK"
            });
            socket.InvokeMessage(single ? new object[] { 0, updateType, new BitfinexWallet() } : new object[] { 0, updateType, new[] { new BitfinexWallet() } });
            rstEvent.WaitOne(1000);

            // assert
            Assert.IsTrue(TestHelpers.AreEqual(result.Data.First(), expected.Data.First()));
        }
コード例 #3
0
 private void HandleAccountEvent(BitfinexSocketEvent evnt)
 {
     if (evnt.Event == WalletsSnapshotEvent)
     {
         var obj = evnt.Data.ToObject <BitfinexWallet[]>();
         foreach (var handler in GetRegistrationsOfType <BitfinexWalletSnapshotEventRegistration>())
         {
             handler.Handler(obj);
         }
     }
     else if (evnt.Event == OrdersSnapshotEvent)
     {
         var obj = evnt.Data.ToObject <BitfinexOrder[]>();
         foreach (var handler in GetRegistrationsOfType <BitfinexOrderSnapshotEventRegistration>())
         {
             handler.Handler(obj);
         }
     }
     else if (evnt.Event == PositionsSnapshotEvent)
     {
         var obj = evnt.Data.ToObject <BitfinexPosition[]>();
         foreach (var handler in GetRegistrationsOfType <BitfinexPositionsSnapshotEventRegistration>())
         {
             handler.Handler(obj);
         }
     }
     else if (evnt.Event == FundingOffersSnapshotEvent)
     {
         var obj = evnt.Data.ToObject <BitfinexFundingOffer[]>();
         foreach (var handler in GetRegistrationsOfType <BitfinexFundingOffersSnapshotEventRegistration>())
         {
             handler.Handler(obj);
         }
     }
     else if (evnt.Event == FundingCreditsSnapshotEvent)
     {
         var obj = evnt.Data.ToObject <BitfinexFundingCredit[]>();
         foreach (var handler in GetRegistrationsOfType <BitfinexFundingCreditsSnapshotEventRegistration>())
         {
             handler.Handler(obj);
         }
     }
     else if (evnt.Event == FundingLoansSnapshotEvent)
     {
         var obj = evnt.Data.ToObject <BitfinexFundingLoan[]>();
         foreach (var handler in GetRegistrationsOfType <BitfinexFundingLoansSnapshotEventRegistration>())
         {
             handler.Handler(obj);
         }
     }
     else if (evnt.Event == ActiveTradesSnapshotEvent)
     {
     }
     else
     {
         Log.Write(LogVerbosity.Warning, $"Received unknown account event: {evnt.Event}, data: {evnt.Data}");
     }
 }