public async Task PlaceLimitOrderTest() { _handler.Expect(HttpMethod.Post, $"{BaseUri}orders/limit-order") .WithQueryString(new Dictionary <string, string> { ["figi"] = Figi, ["brokerAccountId"] = BrokerAccountId }) .WithJsonContentFromFile("limit-order-request") .RespondJsonFromFile("limit-order-response"); var placedLimitOrder = await _context.PlaceLimitOrderAsync(new LimitOrder(Figi, 10, OperationType.Sell, 288.3m, BrokerAccountId)); var expected = new PlacedLimitOrder( "12345687", OperationType.Sell, OrderStatus.New, "That's Why", 10, 0, new MoneyAmount(Currency.Usd, 1.44m)); placedLimitOrder.Should().BeEquivalentTo(expected); }
public async Task PlaceLimitOrderTest() { var handler = new HttpMessageHandlerStub(HttpStatusCode.OK, "{\"trackingId\":\"QBASTAN\",\"status\":\"OK\",\"payload\":{\"orderId\":\"12345687\",\"operation\":\"Sell\",\"status\":\"New\",\"rejectReason\":\"That's Why\",\"requestedLots\":10,\"executedLots\":0,\"commission\":{\"currency\":\"USD\",\"value\":1.44}}}"); var connection = new Connection(BaseUri, WebSocketBaseUri, Token, new HttpClient(handler)); var context = connection.Context; var placedLimitOrder = await context.PlaceLimitOrderAsync(new LimitOrder("BBG000CL9VN6", 10, OperationType.Sell, 288.3m)); Assert.NotNull(handler.RequestMessage); Assert.Equal(HttpMethod.Post, handler.RequestMessage.Method); Assert.Equal(new Uri($"{BaseUri}orders/limit-order?figi=BBG000CL9VN6"), handler.RequestMessage.RequestUri); Assert.NotNull(handler.RequestMessage.Content); var content = await handler.RequestMessage.Content.ReadAsStringAsync(); Assert.Equal("{\"lots\":10,\"operation\":\"Sell\",\"price\":288.3}", content); Assert.NotNull(placedLimitOrder); var expected = new PlacedLimitOrder( "12345687", OperationType.Sell, OrderStatus.New, "That's Why", 10, 0, new MoneyAmount(Currency.Usd, 1.44m)); Assert.Equal(expected.OrderId, placedLimitOrder.OrderId); Assert.Equal(expected.Operation, placedLimitOrder.Operation); Assert.Equal(expected.Status, placedLimitOrder.Status); Assert.Equal(expected.RejectReason, placedLimitOrder.RejectReason); Assert.Equal(expected.RequestedLots, placedLimitOrder.RequestedLots); Assert.Equal(expected.ExecutedLots, placedLimitOrder.ExecutedLots); Assert.Equal(expected.Commission.Value, placedLimitOrder.Commission.Value); Assert.Equal(expected.Commission.Currency, placedLimitOrder.Commission.Currency); }
public LimitOrderResponse([JsonProperty("payload")] PlacedLimitOrder limitOrder) { Order = limitOrder; }