public virtual void NewOrder_NotAuthenticated_ShouldThrowException()
        {
            bool exceptionThrown = false;

            // Arrange
            OkexTokenAPI exchange = new OkexTokenAPI(new OkexTokenAPIStub());

            // Act (one single action only)
            try { exchange.NewOrder("BTC-USDT", OrderType.Market, 100, OrderSide.Buy, null); } catch (Exception) { exceptionThrown = true; }

            // Assert
            Assert.IsTrue(exceptionThrown);
        }
        public virtual void NewOrder_MarketSell_ShouldSuccess()
        {
            // Arrange
            OkexTokenAPI exchange = new OkexTokenAPI(new OkexTokenAPIStub());

            exchange.SetKeys("some_dummy_key", "some_dummy_secret", "some_dummy_passphrase");

            // Act (one single action only)
            string orderID = exchange.NewOrder("BTC-USDT", OrderType.Market, 100, OrderSide.Sell, null);

            // Assert
            Assert.IsNotNull(orderID);
        }
        public virtual void NewOrder_NoPriceForLimitOrders_ShouldThrowException()
        {
            bool exceptionThrown = false;

            // Arrange
            OkexTokenAPI exchange = new OkexTokenAPI(new OkexTokenAPIStub());

            exchange.SetKeys("some_dummy_key", "some_dummy_secret", "some_dummy_passphrase");

            // Act (one single action only)
            try { exchange.NewOrder("BTC-USDT", OrderType.Limit, 100, OrderSide.Buy, null); } catch (Exception) { exceptionThrown = true; }

            // Assert
            Assert.IsTrue(exceptionThrown);
        }