コード例 #1
0
        public CoinbaseProClient(
            IAuthenticator authenticator,
            IHttpClient httpClient,
            bool sandBox = false)
        {
            var clock = new Clock();
            var httpRequestMessageService = new HttpRequestMessageService(authenticator, clock, sandBox);
            var createWebSocketFeed       = (Func <IWebSocketFeed>)(() => new WebSocketFeed(sandBox));
            var queryBuilder = new QueryBuilder();

            AccountsService              = new AccountsService(httpClient, httpRequestMessageService);
            CoinbaseAccountsService      = new CoinbaseAccountsService(httpClient, httpRequestMessageService);
            OrdersService                = new OrdersService(httpClient, httpRequestMessageService, queryBuilder);
            PaymentsService              = new PaymentsService(httpClient, httpRequestMessageService);
            WithdrawalsService           = new WithdrawalsService(httpClient, httpRequestMessageService, queryBuilder);
            DepositsService              = new DepositsService(httpClient, httpRequestMessageService, queryBuilder);
            ProductsService              = new ProductsService(httpClient, httpRequestMessageService, queryBuilder);
            CurrenciesService            = new CurrenciesService(httpClient, httpRequestMessageService);
            LimitsService                = new LimitsService(httpClient, httpRequestMessageService);
            FillsService                 = new FillsService(httpClient, httpRequestMessageService);
            FundingsService              = new FundingsService(httpClient, httpRequestMessageService, queryBuilder);
            ReportsService               = new ReportsService(httpClient, httpRequestMessageService);
            UserAccountService           = new UserAccountService(httpClient, httpRequestMessageService);
            StablecoinConversionsService = new StablecoinConversionsService(httpClient, httpRequestMessageService);
            FeesService     = new FeesService(httpClient, httpRequestMessageService);
            ProfilesService = new ProfilesService(httpClient, httpRequestMessageService);
            WebSocket       = new WebSocket.WebSocket(createWebSocketFeed, authenticator, clock);

            Log.Information("CoinbaseProClient constructed");
        }
コード例 #2
0
        public void SimpleTickExpectTrue()
        {
            _limitsService = new LimitsService();

            var result = _limitsService.Tick();

            Assert.True(result);
        }
コード例 #3
0
        public void TickExpectFail()
        {
            var mockTime = Mocks.MockTime();

            // Init service
            _limitsService = new LimitsService(timeProvider: mockTime.Object);

            var currentTime = DateTime.Now;

            // max 1400 in 500 sec - real 3
            4.Times(() =>
            {
                // max 400 in 50 sec - real 8
                8.Times(() =>
                {
                    // max 100 in 5 sec - real 50
                    50.Times(() => _results.Add(_limitsService.Tick()));

                    //Switch time to + [5] sec.
                    // ReSharper disable once AccessToModifiedClosure
                    currentTime = currentTime.AddSeconds(5);
                    mockTime.SetupGet(t => t.Now).Returns(currentTime);
                });

                //Switch time to + [50] sec.
                currentTime = currentTime.AddSeconds(50);
                mockTime.SetupGet(t => t.Now).Returns(currentTime);
            });

            //Switch time to + [500] sec.
            currentTime = currentTime.AddSeconds(500);
            mockTime.SetupGet(t => t.Now).Returns(currentTime);

            // Test again
            // max 100 in 5 sec
            80.Times(() => _results.Add(_limitsService.Tick()));

            Assert.Contains(false, _results);
        }