private static string ValidateCountry(DeliverOrderBuilder order)
 {
     return order.GetCountryCode() == CountryCode.NONE ||
            !Enum.IsDefined(typeof (CountryCode), order.GetCountryCode())
                ? "MISSING VALUE - CountryCode is required, use SetCountryCode(...)."
                : "";
 }
 private static string ValidateOrderType(DeliverOrderBuilder order)
 {
     return order.GetOrderType() == OrderType.NONE ||
            !Enum.IsDefined(typeof (OrderType), order.GetOrderType())
                ? "MISSING VALUE - OrderType is missing for DeliverOrder, use SetOrderType()."
                : "";
 }
Exemple #3
0
 private static string ValidateCountry(DeliverOrderBuilder order)
 {
     return(order.GetCountryCode() == CountryCode.NONE ||
            !Enum.IsDefined(typeof(CountryCode), order.GetCountryCode())
                ? "MISSING VALUE - CountryCode is required, use SetCountryCode(...)."
                : "");
 }
Exemple #4
0
 private static string ValidateOrderType(DeliverOrderBuilder order)
 {
     return(order.GetOrderType() == OrderType.NONE ||
            !Enum.IsDefined(typeof(OrderType), order.GetOrderType())
                ? "MISSING VALUE - OrderType is missing for DeliverOrder, use SetOrderType()."
                : "");
 }
Exemple #5
0
 private static string ValidateInvoiceDetails(DeliverOrderBuilder order)
 {
     if (order.GetOrderId() > 0 && order.GetOrderType() == OrderType.INVOICE &&
         (order.GetInvoiceDistributionType() == InvoiceDistributionType.NONE ||
          !Enum.IsDefined(typeof(InvoiceDistributionType), order.GetInvoiceDistributionType())))
     {
         return("MISSING VALUE - SetInvoiceDistributionType is required for DeliverInvoiceOrder.");
     }
     return("");
 }
 private static string ValidateInvoiceDetails(DeliverOrderBuilder order)
 {
     if (order.GetOrderId() > 0 && order.GetOrderType() == OrderType.INVOICE &&
         (order.GetInvoiceDistributionType() == InvoiceDistributionType.NONE ||
          !Enum.IsDefined(typeof (InvoiceDistributionType), order.GetInvoiceDistributionType())))
     {
         return "MISSING VALUE - SetInvoiceDistributionType is required for DeliverInvoiceOrder.";
     }
     return "";
 }
 private static string ValidateOrderRows(DeliverOrderBuilder order)
 {
     var rowCount = order.GetOrderRows().Count + order.GetShippingFeeRows().Count +
                    order.GetInvoiceFeeRows().Count;
     if (order.GetOrderType() == OrderType.INVOICE && rowCount == 0)
     {
         return "MISSING VALUE - No order or fee has been included. Use AddOrder(...) or AddFee(...).";
     }
     return "";
 }
Exemple #8
0
        private static string ValidateOrderRows(DeliverOrderBuilder order)
        {
            var rowCount = order.GetOrderRows().Count + order.GetShippingFeeRows().Count +
                           order.GetInvoiceFeeRows().Count;

            if (order.GetOrderType() == OrderType.INVOICE && rowCount == 0)
            {
                return("MISSING VALUE - No order or fee has been included. Use AddOrder(...) or AddFee(...).");
            }
            return("");
        }
        [Test] public void Test_DeliverOrder_DeliverPaymentPlanOrder_IgnoresOrderRows()
        {
            // create order
            var order = TestingTool.CreatePaymentPlanOrderWithTwoOrderRows();

            // deliver first order row and assert the response
            DeliverOrderBuilder builder = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig())
                                          .SetOrderId(order.CreateOrderResult.SveaOrderId)
                                          .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                          //.AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                          .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
            ;
            var delivery = builder.DeliverPaymentPlanOrder().DoRequest();

            Assert.IsTrue(delivery.Accepted);
            Assert.That(delivery.DeliverOrderResult.Amount, Is.EqualTo(5000.00M)); // 1000ex@25%*2st *2row
        }
Exemple #10
0
        public void TestIncorrectPaymentOnDeliverOrderWithEInvoiceB2B()
        {
            const string expectedMessage = "NOT VALID - Invalid payment method, DistributionType.EINVOICEB2B can only be used when payment method is invoice.";

            DeliverOrderBuilder order = new DeliverOrderBuilder(SveaConfig.GetDefaultConfig());

            var exception = Assert.Throws <SveaWebPayValidationException>(
                () => order.AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                .AddFee(TestingTool.CreateExVatBasedShippingFee())
                .AddDiscount(Item.FixedDiscount()
                             .SetAmountIncVat(10))
                .SetInvoiceDistributionType(DistributionType.EINVOICEB2B)
                .SetOrderId(54086L)
                .SetCountryCode(CountryCode.NO)
                .DeliverPaymentPlanOrder()
                .PrepareRequest());

            Assert.That(exception.Message, Is.EqualTo(expectedMessage));
        }
        public static string Validate(DeliverOrderBuilder order)
        {
            var stringBuilder = new StringBuilder();

            var list = new List<string>
                {
                    ValidateCountry(order),
                    ValidateOrderType(order),
                    ValidateOrderId(order),
                    ValidateInvoiceDetails(order),
                    ValidateOrderRows(order),
                };

            foreach (var line in list.Where(line => !string.IsNullOrWhiteSpace(line)))
            {
                stringBuilder.AppendLine(line);
            }

            return stringBuilder.ToString().Trim();
        }
        [Test] public void Test_DeliverOrder_DeliverInvoiceOrder_WithOneIdenticalRows()
        {
            // create order
            var order = TestingTool.CreateInvoiceOrderWithTwoOrderRows();

            // deliver first order row and assert the response
            DeliverOrderBuilder builder = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig())
                                          .SetOrderId(order.CreateOrderResult.SveaOrderId)
                                          .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                          .SetInvoiceDistributionType(DistributionType.POST)
                                          .SetNumberOfCreditDays(30)
                                          .SetCaptureDate(DateTime.Now)
                                          //.AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                          .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
            ;
            var delivery = builder.DeliverInvoiceOrder().DoRequest();

            Assert.IsTrue(delivery.Accepted);
            Assert.That(delivery.DeliverOrderResult.Amount, Is.EqualTo(250.00M)); // 100ex@25%*2st *1row
        }
Exemple #13
0
        public static string Validate(DeliverOrderBuilder order)
        {
            var stringBuilder = new StringBuilder();

            var list = new List <string>
            {
                ValidateCountry(order),
                ValidateOrderType(order),
                ValidateOrderId(order),
                ValidateInvoiceDetails(order),
                ValidateOrderRows(order),
            };

            foreach (var line in list.Where(line => !string.IsNullOrWhiteSpace(line)))
            {
                stringBuilder.AppendLine(line);
            }

            return(stringBuilder.ToString().Trim());
        }
        private static string ValidateInvoiceDetails(DeliverOrderBuilder order)
        {
            string errors = "";

            if (order.GetOrderId() > 0 && order.GetOrderType() == OrderType.INVOICE &&
                (order.GetInvoiceDistributionType() == DistributionType.NONE ||
                 !Enum.IsDefined(typeof(DistributionType), order.GetInvoiceDistributionType())))
            {
                errors += "MISSING VALUE - SetInvoiceDistributionType is required for DeliverInvoiceOrder.\n";
            }

            if (order.GetInvoiceDistributionType() == DistributionType.EINVOICEB2B && order.GetCountryCode() != CountryCode.NO)
            {
                errors += "NOT VALID - Invalid country code, must be CountryCode.NO if InvoiceDistributionType is DistributionType.EInvoiceB2B.\n";
            }

            if (order.GetInvoiceDistributionType() == DistributionType.EINVOICEB2B && order.GetOrderType() == OrderType.PAYMENTPLAN)
            {
                errors += "NOT VALID - Invalid payment method, DistributionType.EINVOICEB2B can only be used when payment method is invoice.\n";
            }

            return(errors);
        }
Exemple #15
0
 public HandleOrder(DeliverOrderBuilder orderBuilder)
 {
     _order = orderBuilder;
 }
 public DeliverPaymentPlan(DeliverOrderBuilder orderBuilder)
     : base(orderBuilder)
 {
 }
 private static string ValidateOrderId(DeliverOrderBuilder order)
 {
     return order.GetOrderId() <= 0 ? "MISSING VALUE - SetOrderId is required." : "";
 }
 public DeliverPaymentPlan(DeliverOrderBuilder orderBuilder) : base(orderBuilder)
 {
 }
 public void SetUp()
 {
     _order = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig());
 }
Exemple #20
0
 public void SetUp()
 {
     _order = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig());
 }
Exemple #21
0
        public void TestBuildRequest()
        {
            DeliverOrderBuilder request = _order.SetOrderId(54086L);

            Assert.That(request.GetOrderId(), Is.EqualTo(54086L));
        }
 public HandleOrder(DeliverOrderBuilder orderBuilder)
 {
     _order = orderBuilder;
 }
 public DeliverInvoice(DeliverOrderBuilder orderBuilder)
     : base(orderBuilder)
 {
 }
Exemple #24
0
 public DeliverInvoice(DeliverOrderBuilder orderBuilder) : base(orderBuilder)
 {
 }
Exemple #25
0
 private static string ValidateOrderId(DeliverOrderBuilder order)
 {
     return(order.GetOrderId() <= 0 ? "MISSING VALUE - SetOrderId is required." : "");
 }