-
-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathOrdersTest.cs
109 lines (83 loc) · 2.98 KB
/
OrdersTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Coinbase.Pro.Models;
using FluentAssertions;
using NUnit.Framework;
using VerifyNUnit;
namespace Coinbase.Tests.EndpointTests
{
public class OrdersTest : TestWithAuth
{
[Test]
public async Task get_all_orders()
{
server.RespondWithJsonTestFile();
var r = await client.Orders.GetAllOrdersAsync();
var o = r.Data.Last();
o.Side.Should().Be(OrderSide.Buy);
o.Type.Should().Be(OrderType.Market);
o.TimeInForce.Should().Be(TimeInForce.GoodTillCanceled);
server.ShouldHaveCalledSomePathAndQuery("/orders?status=all")
.WithVerb(HttpMethod.Get);
await Verifier.Verify(r);
}
[Test]
public async Task get_paged_order_list()
{
var r = await client.Orders.GetAllOrdersAsync("open, pending", "ETH-USD", 20, "30", "40");
server.ShouldHaveCalledSomePathAndQuery("/orders?" +
"status=open&" +
"status=pending&" +
"product_id=ETH-USD&" +
"limit=20&" +
"before=30&" +
"after=40")
.WithVerb(HttpMethod.Get);
}
[Test]
public async Task can_get_order()
{
server.RespondWithJsonTestFile();
var r = await client.Orders.GetOrderAsync("fff");
r.Id.Should().Be("e0c163ab-5823-4972-b9fb-9e788687a53b");
r.ProductId.Should().Be("ETC-USD");
server.ShouldHaveCalledSomePathAndQuery("/orders/fff")
.WithVerb(HttpMethod.Get);
await Verifier.Verify(r);
}
[Test]
public async Task cancel_all_orders()
{
server.RespondWithJsonTestFile();
var r = await client.Orders.CancelAllOrdersAsync();
r.Count.Should().BeGreaterThan(1);
server.ShouldHaveCalledSomePathAndQuery("/orders")
.WithVerb(HttpMethod.Delete);
await Verifier.Verify(r);
}
[Test]
public async Task cancel_all_orders_product()
{
server.RespondWithJsonTestFile();
var r = await client.Orders.CancelAllOrdersAsync("BTC-USD");
r.Count.Should().BeGreaterThan(1);
server.ShouldHaveCalledSomePathAndQuery("/orders?" +
"product_id=BTC-USD")
.WithVerb(HttpMethod.Delete);
await Verifier.Verify(r);
}
[Test]
public async Task cancel_order_by_id()
{
server.RespondWithJsonTestFile();
var r = await client.Orders.CancelOrderByIdAsync("ooo");
var expected = Guid.Parse("2eb2992c-d795-442c-847a-88b60ebc64cb");
r.Should().Be(expected);
server.ShouldHaveCalledSomePathAndQuery("/orders/ooo")
.WithVerb(HttpMethod.Delete);
await Verifier.Verify(r);
}
}
}