public void Ensure_order_can_only_be_captured_when_orderStatus_is_not_cancelled_or_pending_and_paymentstatus_is_authorized_and_paymentModule_supports_capture() { _paymentService.Setup(ps => ps.SupportCapture("paymentMethodSystemName_that_supports_capture")).Returns(true); _paymentService.Setup(ps => ps.SupportCapture("paymentMethodSystemName_that_doesn't_support_capture")).Returns(false); var order = new Order { PaymentMethodSystemName = "paymentMethodSystemName_that_supports_capture" }; foreach (OrderStatus os in Enum.GetValues(typeof(OrderStatus))) { foreach (PaymentStatus ps in Enum.GetValues(typeof(PaymentStatus))) { foreach (ShippingStatus ss in Enum.GetValues(typeof(ShippingStatus))) { order.OrderStatus = os; order.PaymentStatus = ps; order.ShippingStatus = ss; if (os != OrderStatus.Cancelled && os != OrderStatus.Pending && ps == PaymentStatus.Authorized) { _orderProcessingService.CanCapture(order).ShouldBeTrue(); } else { _orderProcessingService.CanCapture(order).ShouldBeFalse(); } } } } order.PaymentMethodSystemName = "paymentMethodSystemName_that_doesn't_support_capture"; foreach (OrderStatus os in Enum.GetValues(typeof(OrderStatus))) { foreach (PaymentStatus ps in Enum.GetValues(typeof(PaymentStatus))) { foreach (ShippingStatus ss in Enum.GetValues(typeof(ShippingStatus))) { order.OrderStatus = os; order.PaymentStatus = ps; order.ShippingStatus = ss; _orderProcessingService.CanCapture(order).ShouldBeFalse(); } } } }
public void EnsureOrderCanOnlyBeCapturedWhenOrderStatusIsNotCancelledOrPendingAndPaymentStatusIsAuthorizedAndPaymentModuleSupportsCapture() { var order = new Order { PaymentMethodSystemName = "Payments.TestMethod" }; TestPaymentMethod.TestSupportCapture = true; foreach (OrderStatus os in Enum.GetValues(typeof(OrderStatus))) { foreach (PaymentStatus ps in Enum.GetValues(typeof(PaymentStatus))) { foreach (ShippingStatus ss in Enum.GetValues(typeof(ShippingStatus))) { order.OrderStatus = os; order.PaymentStatus = ps; order.ShippingStatus = ss; if (os != OrderStatus.Cancelled && os != OrderStatus.Pending && ps == PaymentStatus.Authorized) { _orderProcessingService.CanCapture(order).Should().BeTrue(); } else { _orderProcessingService.CanCapture(order).Should().BeFalse(); } } } } TestPaymentMethod.TestSupportCapture = false; foreach (OrderStatus os in Enum.GetValues(typeof(OrderStatus))) { foreach (PaymentStatus ps in Enum.GetValues(typeof(PaymentStatus))) { foreach (ShippingStatus ss in Enum.GetValues(typeof(ShippingStatus))) { order.OrderStatus = os; order.PaymentStatus = ps; order.ShippingStatus = ss; _orderProcessingService.CanCapture(order).Should().BeFalse(); } } } }