示例#1
0
        public void TestInvoiceRequestObjectWithAuth()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                           .AddFee(TestingTool.CreateExVatBasedShippingFee())
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.Auth.Username, Is.EqualTo("sverigetest"));
            Assert.That(request.Auth.Password, Is.EqualTo("sverigetest"));
            Assert.That(request.Auth.ClientNumber, Is.EqualTo(79021));
        }
示例#2
0
        public void TestDoNordeaSePaymentRequest()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetClientOrderNumber(Guid.NewGuid().ToString().Replace("-", ""))
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePaymentMethod(PaymentMethod.NORDEASE)
                               .SetReturnUrl(
                "https://test.sveaekonomi.se/webpay/admin/merchantresponsetest.xhtml")
                               .GetPaymentForm();

            var postResponse = PostRequest(form);

            Assert.That(postResponse.Item1, Is.EqualTo("OK"));
            Assert.That(postResponse.Item2.StartsWith(ExpectedResponseStart));
        }
示例#3
0
        public void TestConfiguration()
        {
            var conf = new ConfigurationProviderTestData();
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(conf)
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                             .AddCustomerDetails(Item.IndividualCustomer()
                                                                 .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)
                                                                 .SetIpAddress("123.123.123"))
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.ResultCode, Is.EqualTo(0));
            Assert.That(response.Accepted, Is.True);
        }
示例#4
0
        public void TestCompanyIdResponse()
        {
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                             .AddCustomerDetails(Item.CompanyCustomer()
                                                                 .SetNationalIdNumber(TestingTool.DefaultTestCompanyNationalIdNumber))
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetClientOrderNumber(
                TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.CreateOrderResult.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company));
            Assert.IsNull(response.CreateOrderResult.CustomerIdentity.IndividualIdentity);
            Assert.IsNull(response.CreateOrderResult.CustomerIdentity.CompanyIdentity);
            Assert.That(response.Accepted, Is.True);
        }
示例#5
0
        public void TestInvoiceRequestObjectForCustomerIdentityIndividualFromSe()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                                           .AddCustomerDetails(Item.IndividualCustomer()
                                                               .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber))
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            //CustomerIdentity
            Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo(TestingTool.DefaultTestIndividualNationalIdNumber));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CountryCode, Is.EqualTo(CountryCode.SE.ToString().ToUpper()));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Individual));
        }
示例#6
0
        public void TestDeliverInvoiceOrderResult()
        {
            long orderId = CreateInvoiceAndReturnOrderId();

            DeliverOrderEuResponse response = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig())
                                              .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                              .SetOrderId(orderId)
                                              .SetNumberOfCreditDays(1)
                                              .SetInvoiceDistributionType(InvoiceDistributionType.POST)
                                              .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                              .DeliverInvoiceOrder()
                                              .DoRequest();

            Assert.That(response.Accepted, Is.True);
            Assert.That(response.DeliverOrderResult.InvoiceResultDetails.InvoiceDistributionType, Is.EqualTo(WebpayWS.InvoiceDistributionType.Post));
            Assert.That(response.DeliverOrderResult.InvoiceResultDetails.Ocr, Is.Not.Null);
            Assert.That(response.DeliverOrderResult.InvoiceResultDetails.Ocr.Length, Is.GreaterThan(0));
            Assert.That(response.DeliverOrderResult.InvoiceResultDetails.LowestAmountToPay, Is.EqualTo(0.0));
        }
示例#7
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 void TestPayPagePaymentWithSetPaymentMethodNl()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(Item.IndividualCustomer()
                                                   .SetInitials("SB")
                                                   .SetBirthDate("19460509")
                                                   .SetName("Sneider", "Boasman")
                                                   .SetStreetAddress("Gate", "42")
                                                   .SetLocality("BARENDRECHT")
                                                   .SetZipCode("1102 HG"))
                               .SetCountryCode(CountryCode.NL)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePaymentMethod(PaymentMethod.INVOICE)
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();


            string       xml         = form.GetXmlMessage();
            const string expectedXml =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<!--Message generated by Integration package C#-->" +
                "<payment><paymentmethod>INVOICE</paymentmethod><customerrefno>33</customerrefno>" +
                "<currency>SEK</currency><amount>12500</amount><vat>2500</vat>" +
                "<lang>en</lang><returnurl>http://myurl.se</returnurl><iscompany>false</iscompany>" +
                "<orderrows><row><sku>1</sku><name>Prod</name><description>Specification</description>" +
                "<amount>12500</amount><vat>2500</vat><quantity>2</quantity><unit>st</unit></row>" +
                "<row><sku>1</sku><name>Relative</name><description>RelativeDiscount</description>" +
                "<amount>-12500</amount><vat>-2500</vat><quantity>1</quantity><unit>st</unit></row>" +
                "</orderrows><excludepaymentMethods /><addinvoicefee>false</addinvoicefee></payment>";

            Assert.That(xml, Is.EqualTo(expectedXml));

            string base64Payment = form.GetXmlMessageBase64();
            string html          = Base64Util.DecodeBase64String(base64Payment);

            Assert.That(html.Contains("<paymentmethod>INVOICE</paymentmethod>"), Is.True);
        }
        [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
        }
示例#10
0
        public void Test_CreateOrder_NO_WithOnlyNationalIdNumber_ShouldNotSetIndividualIdentity()
        {
            CreateOrderBuilder createOrderBuilder = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                                    .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                                    .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                                                    .AddCustomerDetails(Item.IndividualCustomer()
                                                                        .SetNationalIdNumber("17054512066")) // NO test individual "Ola Norrmann"
                                                    .SetCountryCode(CountryCode.NO)                          // NO
                                                    .SetOrderDate(TestingTool.DefaultTestDate)
                                                    .SetClientOrderNumber("33308")                           // NO Invoice
                                                    .SetCurrency(TestingTool.DefaultTestCurrency)
            ;
            CreateOrderEuRequest request = createOrderBuilder.UseInvoicePayment().PrepareRequest();

            Assert.IsNull(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity);

            CreateOrderEuResponse order = createOrderBuilder.UseInvoicePayment().DoRequest();

            Assert.IsTrue(order.Accepted);
        }
示例#11
0
        public void TestFailOnIncorrectFormatPeppolIdTooLong()
        {
            const string expectedMessage = "NOT VALID - PeppolId is too long, must be 55 characters or fewer.";

            var exception = Assert.Throws <SveaWebPayValidationException>(
                () => WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                .AddCustomerDetails(Item.CompanyCustomer()
                                    .SetNationalIdNumber(TestingTool.DefaultTestCompanyNationalIdNumber)
                                    .SetIpAddress("123.123.123"))
                .SetCountryCode(TestingTool.DefaultTestCountryCode)
                .SetOrderDate(TestingTool.DefaultTestDate)
                .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                .SetCurrency(TestingTool.DefaultTestCurrency)
                .SetPeppolId("1234:asdf123456789asdf123456789asdf123456789asdf123456789asdf123456789")
                .UseInvoicePayment()
                .PrepareRequest());

            Assert.That(exception.Message, Is.EqualTo(expectedMessage));
        }
        public void TestBuildDirectBankPaymentNotSe()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(CountryCode.DE)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageDirectBankOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            string base64Payment = form.GetXmlMessageBase64();
            string html          = Base64Util.DecodeBase64String(base64Payment);

            Assert.That(html.Contains("<amount>18750</amount>"), Is.True);
        }
        public void TestExcludeDirectPaymentMethodLarge()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                                               .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                               .SetOrderDate(TestingTool.DefaultTestDate)
                                               .SetCurrency(TestingTool.DefaultTestCurrency)
                                               .UsePayPage()
                                               .ExcludeDirectPaymentMethod()
                                               .SetReturnUrl("http://myurl.se")
                                               .GetPaymentForm();


            string xml = form.GetXmlMessage();
            string paymentMethod = xml.Substring(xml.IndexOf("DBNORDEASE", System.StringComparison.InvariantCulture),
                                                 "DBNORDEASE".Length);
            Assert.That(paymentMethod, Is.EqualTo(PaymentMethod.NORDEASE.Value));
        }
示例#14
0
 public void TestPaymentPlanFailCompanyCustomer()
 {
     try
     {
         WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
         .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
         .AddFee(TestingTool.CreateExVatBasedShippingFee())
         .AddCustomerDetails(TestingTool.CreateCompanyCustomer())
         .SetCountryCode(TestingTool.DefaultTestCountryCode)
         .SetOrderDate(TestingTool.DefaultTestDate)
         .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
         .SetCurrency(TestingTool.DefaultTestCurrency)
         .UsePaymentPlanPayment(1337L)
         .PrepareRequest();
         Assert.Fail("Expected exception not thrown.");
     }
     catch (SveaWebPayException ex)
     {
         Assert.That(ex.Message, Is.EqualTo("ERROR - CompanyCustomer is not allowed to use payment plan option."));
     }
 }
示例#15
0
        public void TestFailOnIncorrectFormatPeppolIdWrongCustomerType()
        {
            const string expectedMessage = "NOT VALID - CustomerType must be a company when using PeppolId.";

            var exception = Assert.Throws <SveaWebPayValidationException>(
                () => WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                .AddCustomerDetails(Item.IndividualCustomer()
                                    .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)
                                    .SetIpAddress("123.123.123"))
                .SetCountryCode(TestingTool.DefaultTestCountryCode)
                .SetOrderDate(TestingTool.DefaultTestDate)
                .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                .SetCurrency(TestingTool.DefaultTestCurrency)
                .SetPeppolId("1234:asdf")
                .UseInvoicePayment()
                .PrepareRequest());

            Assert.That(exception.Message, Is.EqualTo(expectedMessage));
        }
        public void TestBuildOrderRowList()
        {
            var orderRows = new List <OrderRowBuilder>
            {
                TestingTool.CreateExVatBasedOrderRow("1"),
                TestingTool.CreateExVatBasedOrderRow("2")
            };

            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRows(orderRows)
                                           .AddCustomerDetails(TestingTool.CreateCompanyCustomer())
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo("164608142222"));
            Assert.That(request.CreateOrderInformation.OrderRows[0].ArticleNumber, Is.EqualTo("1"));
            Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("2"));
        }
示例#17
0
        public void TestInvoiceRequestObjectForSEorderOnOneProductRow()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                           .AddFee(TestingTool.CreateExVatBasedShippingFee())
                                           .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.OrderRows[0].ArticleNumber, Is.EqualTo("1"));
            Assert.That(request.CreateOrderInformation.OrderRows[0].Description, Is.EqualTo("Prod: Specification"));
            Assert.That(request.CreateOrderInformation.OrderRows[0].PricePerUnit, Is.EqualTo(100.00));
            Assert.That(request.CreateOrderInformation.OrderRows[0].NumberOfUnits, Is.EqualTo(2));
            Assert.That(request.CreateOrderInformation.OrderRows[0].Unit, Is.EqualTo("st"));
            Assert.That(request.CreateOrderInformation.OrderRows[0].VatPercent, Is.EqualTo(25));
            Assert.That(request.CreateOrderInformation.OrderRows[0].DiscountPercent, Is.EqualTo(0));

            Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("33"));
            Assert.That(request.CreateOrderInformation.OrderRows[1].Description, Is.EqualTo("shipping: Specification"));
            Assert.That(request.CreateOrderInformation.OrderRows[1].PricePerUnit, Is.EqualTo(50));
            Assert.That(request.CreateOrderInformation.OrderRows[1].NumberOfUnits, Is.EqualTo(1));
            Assert.That(request.CreateOrderInformation.OrderRows[1].Unit, Is.EqualTo("st"));
            Assert.That(request.CreateOrderInformation.OrderRows[1].VatPercent, Is.EqualTo(25));
            Assert.That(request.CreateOrderInformation.OrderRows[1].DiscountPercent, Is.EqualTo(0));

            Assert.That(request.CreateOrderInformation.OrderRows[2].ArticleNumber, Is.EqualTo(""));
            Assert.That(request.CreateOrderInformation.OrderRows[2].Description, Is.EqualTo("Svea fee: Fee for invoice"));
            Assert.That(request.CreateOrderInformation.OrderRows[2].PricePerUnit, Is.EqualTo(50));
            Assert.That(request.CreateOrderInformation.OrderRows[2].NumberOfUnits, Is.EqualTo(1));
            Assert.That(request.CreateOrderInformation.OrderRows[2].Unit, Is.EqualTo("st"));
            Assert.That(request.CreateOrderInformation.OrderRows[2].VatPercent, Is.EqualTo(25));
            Assert.That(request.CreateOrderInformation.OrderRows[2].DiscountPercent, Is.EqualTo(0));
        }
        public void TestPayPagePaymentIncludePaymentMethod()
        {
            var paymentMethods = new List<PaymentMethod> {PaymentMethod.KORTCERT, PaymentMethod.SKRILL};
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                                               .AddCustomerDetails(
                                                   Item.IndividualCustomer().SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber))
                                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                               .SetOrderDate(TestingTool.DefaultTestDate)
                                               .SetCurrency(TestingTool.DefaultTestCurrency)
                                               .UsePayPage()
                                               .IncludePaymentMethod(paymentMethods)
                                               .SetReturnUrl("http://myurl.se")
                                               .GetPaymentForm();

            string xml = form.GetXmlMessage();
            string paymentMethod = xml.Substring(
                xml.IndexOf("SVEAINVOICESE", System.StringComparison.InvariantCulture), "SVEAINVOICESE".Length);
            //check to see if the first value is one of the excluded ones
            Assert.That(paymentMethod, Is.EqualTo(InvoiceType.INVOICESE.Value));
        }
示例#19
0
        public void TestSetAuthorization()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageCardOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            const string expectedMerchantId = "1130";
            const string expectedSecretWord =
                "8a9cece566e808da63c6f07ff415ff9e127909d000d259aba24daa2fed6d9e3f8b0b62e8ad1fa91c7d7cd6fc3352deaae66cdb533123edf127ad7d1f4c77e7a3";

            Assert.That(form.GetMerchantId(), Is.EqualTo(expectedMerchantId));
            Assert.That(form.GetSecretWord(), Is.EqualTo(expectedSecretWord));
        }
示例#20
0
        public void TestFormatShippingFeeRowsZero()
        {
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                             .AddFee(Item.ShippingFee()
                                                     .SetShippingId("0")
                                                     .SetName("Tess")
                                                     .SetDescription("Tester")
                                                     .SetAmountExVat(0)
                                                     .SetVatPercent(0)
                                                     .SetUnit("st"))
                                             .AddCustomerDetails(Item.IndividualCustomer()
                                                                 .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber))
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.ResultCode, Is.EqualTo(0));
            Assert.That(response.Accepted, Is.True);
        }
示例#21
0
        public void TestDeliverInvoice()
        {
            DeliverOrderEuRequest request = null;

            Assert.DoesNotThrow(() =>
            {
                request = _order.AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                          .AddFee(TestingTool.CreateExVatBasedShippingFee())
                          .AddDiscount(Item.FixedDiscount()
                                       .SetAmountIncVat(10))
                          .SetInvoiceDistributionType(DistributionType.POST)
                          .SetOrderId(54086L)
                          .SetNumberOfCreditDays(1)
                          .SetCreditInvoice(117L)
                          .SetCountryCode(TestingTool.DefaultTestCountryCode)
                          .DeliverInvoiceOrder()
                          .PrepareRequest();
            }
                                );
            //First order row is a product

            var invoiceDetails = request.DeliverOrderInformation.DeliverInvoiceDetails;

            var firstOrderRow = invoiceDetails.OrderRows[0];

            // First row
            Assert.That(firstOrderRow.ArticleNumber, Is.EqualTo("1"));
            Assert.That(firstOrderRow.Description, Is.EqualTo("Prod: Specification"));
            Assert.That(firstOrderRow.PricePerUnit, Is.EqualTo(100.00M));

            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].NumberOfUnits, Is.EqualTo(2));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].Unit, Is.EqualTo("st"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].VatPercent, Is.EqualTo(25));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].DiscountPercent,
                        Is.EqualTo(0));

            //Second order row is shipment
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].ArticleNumber,
                        Is.EqualTo("33"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].Description,
                        Is.EqualTo("shipping: Specification"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].PricePerUnit, Is.EqualTo(50));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].NumberOfUnits, Is.EqualTo(1));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].Unit, Is.EqualTo("st"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].VatPercent, Is.EqualTo(25));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].DiscountPercent,
                        Is.EqualTo(0));
            //discount
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[2].PricePerUnit,
                        Is.EqualTo(-8.0));

            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.NumberOfCreditDays, Is.EqualTo(1));

            Assert.That(invoiceDetails.InvoiceDistributionType, Is.EqualTo(WebpayWS.InvoiceDistributionType.Post));


            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.IsCreditInvoice, Is.True);
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.InvoiceIdToCredit, Is.EqualTo(117L));
            Assert.That(request.DeliverOrderInformation.SveaOrderId, Is.EqualTo(54086L));
            Assert.That(request.DeliverOrderInformation.OrderType, Is.EqualTo(OrderType.Invoice));
        }
 private void CreateTestOrderRow()
 {
     _order.AddOrderRow(TestingTool.CreateExVatBasedOrderRow());
 }