public async Task CanRetrieveOrderAfterCreationOrder() { // If: we create a new order OrderRequest orderRequest = CreateOrderRequestWithOnlyRequiredFields(); OrderResponse createdOrder = await OrderClient.CreateOrderAsync(orderRequest); // When: We attempt to retrieve the order OrderResponse retrievedOrder = await OrderClient.GetOrderAsync(createdOrder.Id); // Then: Make sure we get a valid response Assert.IsNotNull(retrievedOrder); Assert.AreEqual(createdOrder.Id, retrievedOrder.Id); }
public async Task <data.Orders.CustomerOrder> CreateOrderAsync() { data.Orders.CustomerOrder order = null; var cart = await _cartClient.GetCartAsync(SiteContext.Current.StoreId, SiteContext.Current.CustomerId); if (cart != null) { order = await _orderClient.CreateOrderAsync(cart.Id); await DeleteCartAsync(cart.Id); } return(order); }
public async Task CanCancelCreatedOrder() { // If: we create a new order OrderRequest orderRequest = CreateOrderRequestWithOnlyRequiredFields(); OrderResponse createdOrder = await OrderClient.CreateOrderAsync(orderRequest); // When: We attempt to cancel the order and then retrieve it await OrderClient.CancelOrderAsync(createdOrder.Id); OrderResponse canceledOrder = await OrderClient.GetOrderAsync(createdOrder.Id); // Then: The order status should be cancelled Assert.AreEqual(OrderStatus.Canceled, canceledOrder.Status); }
public async Task CanCreateOrderWithOnlyRequiredFields() { // If: we create a order request with only the required parameters OrderRequest orderRequest = CreateOrderRequestWithOnlyRequiredFields(); // When: We send the order request to Mollie OrderResponse result = await OrderClient.CreateOrderAsync(orderRequest); // Then: Make sure we get a valid response Assert.IsNotNull(result); Assert.AreEqual(orderRequest.Amount.Value, result.Amount.Value); Assert.AreEqual(orderRequest.Amount.Currency, result.Amount.Currency); Assert.AreEqual(orderRequest.OrderNumber, result.OrderNumber); }
public async Task CanUpdateOrderLine() { // If: we create a new order OrderRequest orderRequest = CreateOrderRequestWithOnlyRequiredFields(); OrderResponse createdOrder = await OrderClient.CreateOrderAsync(orderRequest); // When: We update the order line OrderLineUpdateRequest updateRequest = new OrderLineUpdateRequest() { Name = "A fluffy bear" }; OrderResponse updatedOrder = await OrderClient.UpdateOrderLinesAsync(createdOrder.Id, createdOrder.Lines.First().Id, updateRequest); // Then: The name of the order line should be updated Assert.AreEqual(updateRequest.Name, updatedOrder.Lines.First().Name); }
public async Task CreateOrderAsync_SinglePaymentMethod_RequestIsSerializedInExpectedFormat() { // Given: we create a order with a single payment method OrderRequest orderRequest = this.CreateOrderRequestWithOnlyRequiredFields(); orderRequest.Method = PaymentMethod.Ideal; string expectedPaymentMethodJson = $"\"method\":[\"{PaymentMethod.Ideal}"; const string jsonResponse = defaultOrderJsonResponse; var mockHttp = this.CreateMockHttpMessageHandler(HttpMethod.Post, $"{BaseMollieClient.ApiEndPoint}orders", jsonResponse, expectedPaymentMethodJson); HttpClient httpClient = mockHttp.ToHttpClient(); OrderClient orderClient = new OrderClient("abcde", httpClient); // When: We send the request OrderResponse orderResponse = await orderClient.CreateOrderAsync(orderRequest); // Then mockHttp.VerifyNoOutstandingExpectation(); Assert.AreEqual(orderRequest.Method, orderResponse.Method); }
public async Task CanUpdateExistingOrder() { // If: we create a new order OrderRequest orderRequest = CreateOrderRequestWithOnlyRequiredFields(); OrderResponse createdOrder = await OrderClient.CreateOrderAsync(orderRequest); // When: We attempt to update the order OrderUpdateRequest orderUpdateRequest = new OrderUpdateRequest() { OrderNumber = "1337", BillingAddress = createdOrder.BillingAddress }; orderUpdateRequest.BillingAddress.City = "Den Haag"; OrderResponse updatedOrder = await OrderClient.UpdateOrderAsync(createdOrder.Id, orderUpdateRequest); // Then: Make sure the order is updated Assert.AreEqual(orderUpdateRequest.OrderNumber, updatedOrder.OrderNumber); Assert.AreEqual(orderUpdateRequest.BillingAddress.City, updatedOrder.BillingAddress.City); }
/// <summary> /// PostProcessPayment. /// This method is invoked right after a customer places an order. /// Usually this method is used when you need to redirect a customer to a third-party site for completing a payment (for example, PayPal Standard). /// </summary> /// <param name="postProcessPaymentRequest"></param> public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest) { var location = new Uri($"{_httpContextAccessor.HttpContext.Request.Scheme}://{_httpContextAccessor.HttpContext.Request.Host}"); var url = location.AbsoluteUri; var redirectUrl = _httpContextAccessor.HttpContext.Request.Scheme + "://" + _httpContextAccessor.HttpContext.Request.Host + "/" + "checkout/completed/" + postProcessPaymentRequest.Order.Id; var orderLines = CreatePaymentRequest.BuildOrderLines( postProcessPaymentRequest, SelectCurrency(), _productService, _orderService); var orderRequest = CreatePaymentRequest.MollieOrderRequest( postProcessPaymentRequest, orderLines, redirectUrl, SelectOrderAdress(postProcessPaymentRequest), SelectBillingAdress(postProcessPaymentRequest), SelectCurrency(), _stateProvinceService, _countryService, url); OrderResponse orderResponse = _mollieOrderClient.CreateOrderAsync(orderRequest).Result; _httpContextAccessor.HttpContext.Response.Redirect(orderResponse.Links.Checkout.Href); }
public async Task CreateOrderAsync_MultiplePaymentMethods_RequestIsSerializedInExpectedFormat() { // Given: we create a order with a single payment method OrderRequest orderRequest = this.CreateOrderRequestWithOnlyRequiredFields(); orderRequest.Methods = new List <string>() { PaymentMethod.Ideal, PaymentMethod.CreditCard, PaymentMethod.DirectDebit }; string expectedPaymentMethodJson = $"\"method\":[\"{PaymentMethod.Ideal}\",\"{PaymentMethod.CreditCard}\",\"{PaymentMethod.DirectDebit}\"]"; const string jsonResponse = defaultOrderJsonResponse; var mockHttp = this.CreateMockHttpMessageHandler(HttpMethod.Post, $"{BaseMollieClient.ApiEndPoint}orders", jsonResponse, expectedPaymentMethodJson); HttpClient httpClient = mockHttp.ToHttpClient(); OrderClient orderClient = new OrderClient("abcde", httpClient); // When: We send the request await orderClient.CreateOrderAsync(orderRequest); // Then mockHttp.VerifyNoOutstandingExpectation(); }