Skip to content

Commit 126fdcf

Browse files
author
Ganeshram Chockalingam
committed
Added Tests
1 parent e5fed62 commit 126fdcf

14 files changed

+208
-79
lines changed

.vscode/launch.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
// Use IntelliSense to find out which attributes exist for C# debugging
3+
// Use hover for the description of the existing attributes
4+
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": ".NET Core Launch (console)",
9+
"type": "coreclr",
10+
"request": "launch",
11+
"preLaunchTask": "build",
12+
// If you have changed target frameworks, make sure to update the program path.
13+
"program": "${workspaceFolder}/Test/bin/Debug/netcoreapp2.1/Test.dll",
14+
"args": [],
15+
"cwd": "${workspaceFolder}/Test",
16+
// For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
17+
"console": "internalConsole",
18+
"stopAtEntry": false,
19+
"internalConsoleOptions": "openOnSessionStart"
20+
},
21+
{
22+
"name": ".NET Core Attach",
23+
"type": "coreclr",
24+
"request": "attach",
25+
"processId": "${command:pickProcess}"
26+
}
27+
,]
28+
}

.vscode/tasks.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "build",
6+
"command": "dotnet",
7+
"type": "process",
8+
"args": [
9+
"build",
10+
"${workspaceFolder}/Test/Test.csproj"
11+
],
12+
"problemMatcher": "$msCompile"
13+
}
14+
]
15+
}
318 Bytes
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5812f7c4d406e1f34043ab9ae38acedacfd74d6c
1+
2b531dd3687b341d0a496b7b261cf1c10ab423b4
Binary file not shown.

Source/obj/Source.csproj.nuget.cache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"version": 1,
3-
"dgSpecHash": "Um4HxUZeLdWEWdqYZRCNS9w6BTllv/GzK2AJhtWI43RnKrnHLAeiHJkFZCV9DnDiPP7TTKZupunuAl2qQ6hpWg==",
3+
"dgSpecHash": "9qjhvykXFuDTWOVtdO8kxTE5YCPw2glmlLaNtU/TpNbQ2fsyDbfzlNtaaW7AQPcF0fv3m477xvYzCc2gmEkehQ==",
44
"success": true
55
}

Source/obj/project.assets.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
"version": 3,
33
"targets": {
44
".NETStandard,Version=v2.0": {
5+
"BraintreeHttp-Dotnet/0.1.5": {
6+
"type": "package",
7+
"compile": {
8+
"lib/netstandard2.0/BraintreeHttp-Dotnet.dll": {}
9+
},
10+
"runtime": {
11+
"lib/netstandard2.0/BraintreeHttp-Dotnet.dll": {}
12+
}
13+
},
514
"Microsoft.NETCore.Platforms/1.1.0": {
615
"type": "package",
716
"compile": {
@@ -29,6 +38,16 @@
2938
}
3039
},
3140
"libraries": {
41+
"BraintreeHttp-Dotnet/0.1.5": {
42+
"sha512": "/+vmbq4AYU6JtsXfvWLqHRCDUkSeTjGRapZF9ON9nxMFLfiHDOMF6GkRwfaFZTSYOPJL/9BQlYpD5LZYGsuoHg==",
43+
"type": "package",
44+
"path": "braintreehttp-dotnet/0.1.5",
45+
"files": [
46+
"braintreehttp-dotnet.0.1.5.nupkg.sha512",
47+
"braintreehttp-dotnet.nuspec",
48+
"lib/netstandard2.0/BraintreeHttp-Dotnet.dll"
49+
]
50+
},
3251
"Microsoft.NETCore.Platforms/1.1.0": {
3352
"sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
3453
"type": "package",
@@ -172,6 +191,7 @@
172191
},
173192
"projectFileDependencyGroups": {
174193
".NETStandard,Version=v2.0": [
194+
"BraintreeHttp-Dotnet >= 0.1.5",
175195
"NETStandard.Library >= 2.0.3"
176196
]
177197
},
@@ -214,6 +234,10 @@
214234
"frameworks": {
215235
"netstandard2.0": {
216236
"dependencies": {
237+
"BraintreeHttp-Dotnet": {
238+
"target": "Package",
239+
"version": "[0.1.5, )"
240+
},
217241
"NETStandard.Library": {
218242
"suppressParent": "All",
219243
"target": "Package",

Test/Orders/OrdersAuthorizeTest.cs

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,23 @@
55
using System.Collections.Generic;
66
using BraintreeHttp;
77
using Xunit;
8-
using CheckoutNetsdk.Test;
9-
using static CheckoutNetsdk.Test.TestHarness;
8+
using CheckoutSdk.Test;
9+
using static CheckoutSdk.Test.TestHarness;
1010

1111

12-
namespace CheckoutNetsdk.Orders.Test
12+
namespace CheckoutSdk.Orders.Test
1313
{
1414
[Collection("Orders")]
1515
public class OrdersAuthorizeTest
1616
{
17-
private OrderActionRequest buildRequestBody()
18-
{
19-
var jsonContent = new StringContent("{\"payment_source\":{\"card\":{\"name\":\"uGAXYMbWVpuvzq8XZMG\",\"number\":\"sG8qI5K6dUdtcRr8i\",\"security_code\":\"B3uB1 vH2UR9\",\"billing_address\":{\"address_details\":{\"building_name\":\"uDqqyMJOw7Wvt\",\"delivery_service\":\"PqiL4YCSteTaac6H6\",\"street_name\":\"gNaLN9N1JGXB87p4Tg\",\"street_number\":\"IGe6SrvA0VQ5\",\"street_type\":\"5c3P9YhrzQ\",\"sub_building\":\"dV69uyHDYuzS\"},\"address_line_2\":\"Pc2L1 t0036M\",\"admin_area_2\":\"Hrs2LRgNGGFgHKFbc\",\"admin_area_3\":\"VEQ4xxUvS3eVO1d5VR\",\"admin_area_4\":\"ca4KtG351QLzdZM\",\"address_line_1\":\"0t3BxV1Z4pZ\",\"address_line_3\":\"N7JscVHN7whyN\",\"admin_area_1\":\"J4yzp2YOMrvSdFxz\",\"country_code\":\"EfB9ypUpxtTP3F3gWI\",\"postal_code\":\"gDiL31J4Z2UI1KAw\"},\"card_type\":\"gYR9TPxFWciFuYBvNr\",\"expiry\":\"xrttV 6KudK3P0\",\"id\":\"XZfUbWv5FpKZAvQu\",\"last_digits\":\"K4aWb42yWwNTM\"},\"token\":{\"id\":\"9GGYX37xQrBBO7i34T\",\"type\":\"3ttSRJQ81V2\"}}}", Encoding.UTF8, "application/json");
20-
return (OrderActionRequest) new JsonSerializer().DeserializeResponse(jsonContent, typeof(OrderActionRequest));
21-
}
22-
23-
[Fact]
17+
[Fact(Skip = "This test is an example. In production, you will need payer approval")]
2418
public async void TestOrdersAuthorizeRequest()
2519
{
26-
OrdersAuthorizeRequest request = new OrdersAuthorizeRequest("7X25IiLHpyG")
27-
.Authorization("2eVSpJA5qaBYWq1fgUT")
28-
.PayPalClientMetadataId("pWfd6MMNQ0LS9JCOys")
29-
.PayPalRequestId(" tF1EXreHICGuUPeJ")
30-
.Prefer("hhpirWA7FR");
31-
request.RequestBody(buildRequestBody());
20+
OrdersAuthorizeRequest request = new OrdersAuthorizeRequest("ORDER-ID");
3221

3322
HttpResponse response = await TestHarness.client().Execute(request);
34-
Assert.Equal((int) response.StatusCode, 201);
23+
Assert.Equal(200,(int) response.StatusCode);
3524
Assert.NotNull(response.Result<Order>());
36-
37-
// Add your own checks here
3825
}
3926
}
4027
}

Test/Orders/OrdersCaptureTest.cs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,18 @@ namespace CheckoutNetsdk.Orders.Test
1414
[Collection("Orders")]
1515
public class OrdersCaptureTest
1616
{
17-
private OrderActionRequest buildRequestBody()
18-
{
19-
var jsonContent = new StringContent("{\"payment_source\":{\"card\":{\"expiry\":\"bvubAGG4XrxVSVDPqH\",\"id\":\"A6QI48ONIN0IfiI2\",\"last_digits\":\"BZf77MzbdFG44bps\",\"name\":\"WPvdPJ2bGB\",\"number\":\"BvpHK69sOh66y0KN\",\"security_code\":\"ED7FMs6QD7XaVs54K4\",\"billing_address\":{\"country_code\":\"C wf6LxV7wLe0SNHzV\",\"postal_code\":\"A8KtcQAMiBqaVX\",\"address_line_3\":\"FVwYYgBOsHgsRP\",\"admin_area_1\":\"PrabyNfpOrzU2\",\"admin_area_2\":\"dXV9T22dNtAELTN\",\"admin_area_3\":\"qyFF5w71K51a4BSQ\",\"admin_area_4\":\"PdqfeiYf7uPFE\",\"address_details\":{\"building_name\":\"tzOJ3s8bcfeYAU0\",\"delivery_service\":\"vUvS0069iG4XhQ02\",\"street_name\":\"z7DGgv 5xEA9\",\"street_number\":\"6 Tfes7IJ5P\",\"street_type\":\"4Ua2LB9y5 \",\"sub_building\":\"bqzRBbECLCuSPE\"},\"address_line_1\":\"GKSdi4CSrXX\",\"address_line_2\":\"BHDIL39pvcL QICut\"},\"card_type\":\"9EaD OzfrNZK6h5TO\"},\"token\":{\"type\":\"DZf7vIAzy5V4QI\",\"id\":\"NQdbXvX1v1Mqyzv\"}}}", Encoding.UTF8, "application/json");
20-
return (OrderActionRequest) new JsonSerializer().DeserializeResponse(jsonContent, typeof(OrderActionRequest));
21-
}
2217

23-
[Fact]
18+
[Fact(Skip = "This test is an example. In production, you will need payer approval")]
2419
public async void TestOrdersCaptureRequest()
25-
{
26-
OrdersCaptureRequest request = new OrdersCaptureRequest("vA U6zM7DiQ")
27-
.Authorization("324GPssAiu")
28-
.PayPalClientMetadataId("eyi9fy261tigE9")
29-
.PayPalRequestId("gzW4FEXXU9XwsDba9r")
30-
.Prefer("2ZdyHWYiK2 YJM45D0P");
31-
request.RequestBody(buildRequestBody());
20+
{
21+
var orderResponse = await OrdersCreateTest.CreateOrder();
22+
var orderId = orderResponse.Result<Order>().Id;
23+
OrdersCaptureRequest request = new OrdersCaptureRequest(orderId);
24+
request.RequestBody(new OrderActionRequest());
3225

3326
HttpResponse response = await TestHarness.client().Execute(request);
34-
Assert.Equal((int) response.StatusCode, 201);
27+
Assert.Equal(201, (int) response.StatusCode);
3528
Assert.NotNull(response.Result<Order>());
36-
37-
// Add your own checks here
3829
}
3930
}
4031
}

Test/Orders/OrdersCreateTest.cs

Lines changed: 59 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
using System.Text;
44
using System.Net.Http;
55
using System.Collections.Generic;
6+
using System.Threading.Tasks;
67
using BraintreeHttp;
78
using Xunit;
9+
using Xunit.Abstractions;
810
using CheckoutNetsdk.Test;
911
using static CheckoutNetsdk.Test.TestHarness;
1012

@@ -14,26 +16,72 @@ namespace CheckoutNetsdk.Orders.Test
1416
[Collection("Orders")]
1517
public class OrdersCreateTest
1618
{
17-
private OrderRequest buildRequestBody()
19+
private static OrderRequest buildRequestBody()
1820
{
19-
var jsonContent = new StringContent("{\"intent\":\"0L1g3OOGqML9USDAq7\",\"payer\":{\"external_id\":\"L D6M1tUETPXW\",\"name\":{\"prefix\":\"QgKaFT722cSHT\",\"suffix\":\"SVrR7NPLzi3Srup\",\"surname\":\"u2xbtJ hIq\",\"alternate_full_name\":\"Vic VH h43I \",\"full_name\":\"g206sWNE Pca\",\"given_name\":\"HJAicDsbYaC1a\",\"middle_name\":\"6sebpQrxGZbDf\"},\"payer_id\":\" SJpgIh1hpP\",\"phone\":{\"phone_number\":{\"country_code\":\"EJgI3Oe5fQ03d \",\"extension_number\":\"3fAMDsyRT9c\",\"national_number\":\"XuChh1stqP 3g3 hOI\"},\"phone_type\":\"3Fu zPic J175uHLbOd\"},\"tax_info\":{\"tax_id\":\"ErUL3fr4NV\",\"tax_id_type\":\"Z2hVLibIrAZwA\"},\"address\":{\"address_line_3\":\"EgbzgzFvvI\",\"admin_area_2\":\"pgLINu7UTeg92t\",\"admin_area_3\":\"FJ6Z2yyXDWCJ\",\"admin_area_4\":\"T4gL6BxdcU\",\"postal_code\":\"iVy4dJ0cD6\",\"address_details\":{\"delivery_service\":\"vZ10Jhv45TDMv\",\"street_name\":\"ttwNfHFD3Sa\",\"street_number\":\"MAiitu7fVCZ9r\",\"street_type\":\"thIMX1b4Xxf5RNFzLpR\",\"sub_building\":\"zDrvPr963X\",\"building_name\":\"8xgOPALghMNb3J1VyBd\"},\"address_line_1\":\"eiDLGiY3r4Fez\",\"country_code\":\"7XLcSr1aA \",\"address_line_2\":\"ueG1UGLRU6HWA7CiRO\",\"admin_area_1\":\"XaMzCzVGgySVyMN6\"},\"birth_date\":\"WRWpKwCHg3\",\"email_address\":\"BBI0XF4Xw2iQW3q5Y\"},\"purchase_units\":{\"payee\":{\"client_id\":\"VFB3vOya524Li\",\"display_data\":{\"business_phone\":{\"extension_number\":\"LU3i3EW fDwrPDwx\",\"national_number\":\"sKdqh0GBMhX0Q3M3\",\"country_code\":\"H7UaJt4bPM3\"},\"brand_name\":\"vPPqf9cDxub31rAyM5b\",\"business_email\":\"sPJE3cuTS4hw\"},\"email_address\":\"vc7f4ivQYU\",\"merchant_id\":\"e0tZbcJau9 hJxOqB\"},\"payment_instruction\":{\"disbursement_mode\":\"ZE1tqwqWI19e\",\"platform_fees\":{\"amount\":{\"currency_code\":\"XEHTgaG0UHcR6pfFCVU\",\"value\":\"x3dWcXYaq9PVM\"},\"payee\":{\"client_id\":\"HV9TRzqdy2eA9zZv\",\"email_address\":\"J2UDJa98JhgF\",\"merchant_id\":\"EbLz0Nbit HuiKY\"}}},\"reference_id\":\"Yar1AH4FHyCsSt6c5Nt\",\"shipping\":{\"address\":{\"address_details\":{\"building_name\":\"yTNftqIrYrcG\",\"delivery_service\":\"68eILMOw7SxbNFeCL\",\"street_name\":\"4E9b752vKGYTT1dTC\",\"street_number\":\"Zqs6XOhE6hvp\",\"street_type\":\"Ti0W7B83aQI\",\"sub_building\":\"JHUpi0FsPIptrW\"},\"address_line_1\":\"YFFCdGCHaAcDDV\",\"address_line_2\":\"YrSOz9PB1JAR4idO7S\",\"address_line_3\":\"3t0 G9I3v1tJfgzROwD\",\"admin_area_1\":\"V0Cc0a4RqWS\",\"admin_area_2\":\"EZfFtUvA1x8EWM\",\"admin_area_3\":\"ErTs5S0SBGH0G \",\"admin_area_4\":\"aP 1c4DFDVhdKLq1\",\"country_code\":\"OeKLFST K8\",\"postal_code\":\"X51c2BGQrKAP3Ix0PxY\"},\"name\":{\"suffix\":\"UDhTYLYMcLUx\",\"surname\":\"K0BzHtGFiBYA\",\"alternate_full_name\":\"Hac0Kdtg2ufwfJxYE9x\",\"full_name\":\"dxzf6xwexBNLUeQc1c\",\"given_name\":\" W637uATXrb\",\"middle_name\":\"ypVb4UwZ4ScRxxVhOT\",\"prefix\":\"xbK iY9piKWJ\"}},\"custom_id\":\"G1WpGqbvfarv\",\"description\":\"Hpu1KfEb5 hKB\",\"invoice_id\":\"WHYpAYTA9687E24O\",\"items\":{\"sku\":\"Ed2HTU9cdtHRfpV6xF\",\"tax\":{\"currency_code\":\"dvEadsi5hyvJ742P\",\"value\":\"e8La4eiaCXxAhJ14DO\"},\"unit_amount\":{\"currency_code\":\"14zLyFDFDhg\",\"value\":\"NdO2NucHhbcr5qJa\"},\"url\":\"0CJBf6URFy\",\"category\":\"Ew98sDhLRN1XpeJ0Azv\",\"description\":\"ALBMJs4hu88\",\"name\":\"abXPO5YTdgJ\",\"quantity\":\"FDLx99eNrpyit Mrdz\"},\"soft_descriptor\":\"pILJBe9I6CHK1\",\"amount\":{\"breakdown\":{\"tax_total\":{\"currency_code\":\" 9xid7fuV3g18\",\"value\":\"PraqWqU5ODAKVZxD\"},\"handling\":{\"value\":\"TavAb6pp1q\",\"currency_code\":\"PsGELuc6CWgfaaIh1DO\"},\"insurance\":{\"currency_code\":\"SwcNdVVcf4gXzwV\",\"value\":\"gT2uQ1W ZRcq\"},\"item_total\":{\"currency_code\":\"BeB qYiMuVX\",\"value\":\"tN8facPYIvArwT\"},\"shipping\":{\"value\":\"Z22OBvpvxYB8TTvaaY1\",\"currency_code\":\" ePi tcIvs8bSAh9Sc\"},\"shipping_discount\":{\"value\":\"rLeE5KLFQ50vbv\",\"currency_code\":\"5aIdI6MX9X9\"}},\"currency_code\":\"TYa1NG9VHyW8H4C\",\"value\":\"6LQ255eYQMtOhR8Ve\"}},\"application_context\":{\"locale\":\"FSKRVC8FD3Lc3NBpIH\",\"payment_method\":{\"payee_preferred\":\"xuC2O6pAOIu 9\",\"payer_selected\":\"72et9re9xpcY3wOYtv\"},\"payment_token\":\"v6bzvbdJH28eNVZXVq\",\"return_url\":\"xDqFATYiOaw5Mhz9\",\"user_action\":\"CJA EcW1H5ahfCv\",\"brand_name\":\"Qs1fycBwU2HJG28YL4\",\"cancel_url\":\"ePGs5ezrQE1TWZPDIUX\",\"landing_page\":\"1QIp7TOSEp\",\"shipping_preference\":\" Bqb55fP1 f4cuv33\"}}", Encoding.UTF8, "application/json");
20-
return (OrderRequest) new JsonSerializer().DeserializeResponse(jsonContent, typeof(OrderRequest));
21+
var order = new OrderRequest() {
22+
Intent = "CAPTURE",
23+
PurchaseUnits = new List<PurchaseUnitRequest>()
24+
{
25+
new PurchaseUnitRequest()
26+
{
27+
ReferenceId = "test_ref_id1",
28+
Amount = new AmountWithBreakdown()
29+
{
30+
CurrencyCode = "USD",
31+
Value = "100.00"
32+
}
33+
}
34+
},
35+
ApplicationContext = new ApplicationContext()
36+
{
37+
ReturnUrl = "https://www.example.com",
38+
CancelUrl = "https://www.example.com"
39+
}
40+
};
41+
return order;
42+
}
43+
public async static Task<HttpResponse> CreateOrder()
44+
{
45+
var request = new OrdersCreateRequest();
46+
request.Prefer("return=representation");
47+
request.RequestBody(buildRequestBody());
48+
return await TestHarness.client().Execute(request);
2149
}
2250

2351
[Fact]
2452
public async void TestOrdersCreateRequest()
2553
{
26-
OrdersCreateRequest request = new OrdersCreateRequest()
27-
.Authorization("AbrK9p8fI0GyrOZc3Y")
28-
.PayPalPartnerAttributionId("MSZTYH2G Cd0MA")
29-
.Prefer("bQA0wpf ag");
30-
request.RequestBody(buildRequestBody());
54+
var response = await CreateOrder();
3155

32-
HttpResponse response = await TestHarness.client().Execute(request);
33-
Assert.Equal((int) response.StatusCode, 201);
56+
Assert.Equal(201, (int) response.StatusCode);
3457
Assert.NotNull(response.Result<Order>());
3558

36-
// Add your own checks here
59+
Order createdOrder = response.Result<Order>();
60+
Assert.NotNull(createdOrder.Id);
61+
Assert.NotNull(createdOrder.PurchaseUnits);
62+
Assert.Single(createdOrder.PurchaseUnits);
63+
64+
PurchaseUnit firstPurchaseUnit = createdOrder.PurchaseUnits[0];
65+
Assert.Equal("test_ref_id1", firstPurchaseUnit.ReferenceId);
66+
Assert.Equal("USD", firstPurchaseUnit.Amount.CurrencyCode);
67+
Assert.Equal("100.00", firstPurchaseUnit.Amount.Value);
68+
69+
Assert.NotNull(createdOrder.CreateTime);
70+
71+
Assert.NotNull(createdOrder.Links);
72+
bool foundApproveURL = false;
73+
foreach (var linkDescription in createdOrder.Links) {
74+
if ("approve".Equals(linkDescription.Rel)) {
75+
foundApproveURL = true;
76+
Assert.NotNull(linkDescription.Href);
77+
Assert.Equal("GET", linkDescription.Method);
78+
Console.WriteLine(linkDescription.Href);
79+
}
80+
}
81+
82+
Console.WriteLine(createdOrder.Id);
83+
Assert.True(foundApproveURL);
84+
Assert.Equal("CREATED", createdOrder.Status);
3785
}
3886
}
3987
}

Test/Orders/OrdersGetTest.cs

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,47 @@ namespace CheckoutNetsdk.Orders.Test
1414
[Collection("Orders")]
1515
public class OrdersGetTest
1616
{
17-
1817
[Fact]
1918
public async void TestOrdersGetRequest()
2019
{
21-
OrdersGetRequest request = new OrdersGetRequest("eXxYVhO1s930Bs2w0K")
22-
.Authorization("0qqEP0YwRwv82TIKdc");
20+
var response = await OrdersCreateTest.CreateOrder();
21+
Order createdOrder = response.Result<Order>();
22+
23+
OrdersGetRequest request = new OrdersGetRequest(createdOrder.Id);
24+
25+
response = await TestHarness.client().Execute(request);
26+
Assert.Equal(200, (int) response.StatusCode);
27+
Order retrievedOrder = response.Result<Order>();
28+
Assert.NotNull(retrievedOrder);
29+
Assert.Equal(retrievedOrder.Id, createdOrder.Id);
30+
Assert.NotNull(retrievedOrder.PurchaseUnits);
31+
Assert.Equal(retrievedOrder.PurchaseUnits.Count, createdOrder.PurchaseUnits.Count);
32+
33+
for (int count = 0; count < retrievedOrder.PurchaseUnits.Count; count++) {
34+
PurchaseUnit retrievedOrderPurchaseUnit = retrievedOrder.PurchaseUnits[count];
35+
PurchaseUnit createdOrderPurchaseUnit = createdOrder.PurchaseUnits[count];
36+
Assert.Equal(retrievedOrderPurchaseUnit.ReferenceId, createdOrderPurchaseUnit.ReferenceId);
37+
Assert.Equal(retrievedOrderPurchaseUnit.Amount.CurrencyCode, createdOrderPurchaseUnit.Amount.CurrencyCode);
38+
Assert.Equal(retrievedOrderPurchaseUnit.Amount.Value, createdOrderPurchaseUnit.Amount.Value);
39+
}
40+
41+
Assert.NotNull(retrievedOrder.CreateTime);
42+
43+
Assert.NotNull(createdOrder.Links);
44+
bool foundApproveURL = false;
45+
foreach (var linkDescription in createdOrder.Links) {
46+
if ("approve".Equals(linkDescription.Rel)) {
47+
foundApproveURL = true;
48+
Assert.NotNull(linkDescription.Href);
49+
Assert.Equal("GET", linkDescription.Method);
50+
Console.WriteLine(linkDescription.Href);
51+
}
52+
}
2353

24-
HttpResponse response = await TestHarness.client().Execute(request);
25-
Assert.Equal((int) response.StatusCode, 200);
26-
Assert.NotNull(response.Result<Order>());
54+
Console.WriteLine(createdOrder.Id);
55+
Assert.True(foundApproveURL);
56+
Assert.Equal("CREATED", createdOrder.Status);
2757

28-
// Add your own checks here
2958
}
3059
}
3160
}

0 commit comments

Comments
 (0)