diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderAuthorizationTests.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderAuthorizationTests.cs index 1f72ef936e..4710ef2f4b 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderAuthorizationTests.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderAuthorizationTests.cs @@ -46,13 +46,14 @@ public async Task Anonymous_PaymentOrder_Card_Authorization(Product[] products, Is.EqualTo(State.Completed)); // Order Items + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.Count, Is.EqualTo(products.Count())); for (var i = 0; i < products.Count(); i++) { - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Name, Is.EqualTo(products[i].Name)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Quantity, Is.EqualTo(products[i].Quantity)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Name, Is.EqualTo(products[i].Name)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Quantity, Is.EqualTo(products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); } } @@ -92,10 +93,10 @@ public async Task Anonymous_PaymentOrder_Invoice_Authorization(Product[] product Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.Count, Is.EqualTo(products.Count())); for (var i = 0; i < products.Count(); i++) { - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Name, Is.EqualTo(products[i].Name)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Quantity, Is.EqualTo(products[i].Quantity)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Name, Is.EqualTo(products[i].Name)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Quantity, Is.EqualTo(products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); } } diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderSaleTests.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderSaleTests.cs index e13efda90a..6f6e61f5e2 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderSaleTests.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Anonymous/AnonymousPaymentOrderSaleTests.cs @@ -49,10 +49,10 @@ public async Task Anonymous_PaymentOrder_Swish_Sale(Product[] products, PayexInf Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.Count, Is.EqualTo(products.Count())); for (var i = 0; i < products.Count(); i++) { - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Name, Is.EqualTo(products[i].Name)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Quantity, Is.EqualTo(products[i].Quantity)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Name, Is.EqualTo(products[i].Name)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Quantity, Is.EqualTo(products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); } } diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderAuthorizationTests.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderAuthorizationTests.cs index 55d39de2ac..e77058514b 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderAuthorizationTests.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderAuthorizationTests.cs @@ -49,10 +49,10 @@ public async Task Standard_PaymentOrder_Card_Authorization(Product[] products, P Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.Count, Is.EqualTo(products.Count())); for (var i = 0; i < products.Count(); i++) { - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Name, Is.EqualTo(products[i].Name)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Quantity, Is.EqualTo(products[i].Quantity)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Name, Is.EqualTo(products[i].Name)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Quantity, Is.EqualTo(products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); } } @@ -92,10 +92,10 @@ public async Task Standard_PaymentOrder_Invoice_Authorization(Product[] products Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.Count, Is.EqualTo(products.Count())); for (var i = 0; i < products.Count(); i++) { - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Name, Is.EqualTo(products[i].Name)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Quantity, Is.EqualTo(products[i].Quantity)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Name, Is.EqualTo(products[i].Name)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Quantity, Is.EqualTo(products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); } } diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderSaleTests.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderSaleTests.cs index 40eb81e726..371b1565b1 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderSaleTests.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/PaymentOrder/Standard/StandardPaymentOrderSaleTests.cs @@ -49,10 +49,10 @@ public async Task Standard_PaymentOrder_Swish_Sale(Product[] products, PayexInfo Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.Count, Is.EqualTo(products.Count())); for (var i = 0; i < products.Count(); i++) { - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Name, Is.EqualTo(products[i].Name)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Quantity, Is.EqualTo(products[i].Quantity)); - Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList[i].Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Name, Is.EqualTo(products[i].Name)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).UnitPrice.Value, Is.EqualTo(products[i].UnitPrice)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Quantity, Is.EqualTo(products[i].Quantity)); + Assert.That(order.PaymentOrderResponse.OrderItems.OrderItemList.ElementAt(i).Amount.Value, Is.EqualTo(products[i].UnitPrice * products[i].Quantity)); } } diff --git a/src/SwedbankPay.Sdk/PaymentOrders/OrderItems.cs b/src/SwedbankPay.Sdk/PaymentOrders/OrderItems.cs index 5f44b75206..d9be93111f 100644 --- a/src/SwedbankPay.Sdk/PaymentOrders/OrderItems.cs +++ b/src/SwedbankPay.Sdk/PaymentOrders/OrderItems.cs @@ -4,12 +4,16 @@ namespace SwedbankPay.Sdk.PaymentOrders { public class OrderItems : IdLink { + public OrderItems(IEnumerable orderItemList) + { + OrderItemList = orderItemList; + } /// /// The orderItems property of the paymentOrder is an array containing the items being purchased with the order. Used /// to print on invoices if /// the payer chooses to pay with invoice, among other things. Order items can be specified on both payment order /// creation as well as on Capture. /// - public List OrderItemList { get; set; } + public IEnumerable OrderItemList { get; set; } } } \ No newline at end of file diff --git a/src/SwedbankPay.Sdk/PaymentOrders/PaymentOrderResource.cs b/src/SwedbankPay.Sdk/PaymentOrders/PaymentOrderResource.cs index 4905fd5240..ad2cf8d696 100644 --- a/src/SwedbankPay.Sdk/PaymentOrders/PaymentOrderResource.cs +++ b/src/SwedbankPay.Sdk/PaymentOrders/PaymentOrderResource.cs @@ -1,6 +1,9 @@ using System; +using System.Net.Http; using System.Threading.Tasks; +using SwedbankPay.Sdk.Exceptions; + namespace SwedbankPay.Sdk.PaymentOrders { internal class PaymentOrderResource : ResourceBase, IPaymentOrderResource @@ -29,6 +32,10 @@ public async Task Create(PaymentOrderRequest paymentOrderRequest, /// /// /// + /// + /// + /// + /// public Task Get(Uri id, PaymentOrderExpand paymentOrderExpand = PaymentOrderExpand.None) { if (id == null)