Пример #1
0
        public void TestInvoiceRequestObjectForCustomerIdentityCompanyFromNl()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                           .AddCustomerDetails(TestingTool.CreateCompanyCustomer(CountryCode.NL))
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                                           .SetCountryCode(CountryCode.NL)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.CustomerIdentity.Email, Is.EqualTo("*****@*****.**"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.PhoneNumber, Is.EqualTo("999999"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.IpAddress, Is.EqualTo("123.123.123.123"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.FullName, Is.EqualTo("Svea bakkerij 123"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.Street, Is.EqualTo("broodstraat"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CoAddress, Is.EqualTo("236"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.ZipCode, Is.EqualTo("1111 CD"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.HouseNumber, Is.EqualTo("1"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.Locality, Is.EqualTo("BARENDRECHT"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CountryCode, Is.EqualTo(CountryCode.NL.ToString().ToUpper()));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company));
        }
Пример #2
0
        public void TestXmlWithCompanyCustomer()
        {
            _order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                     .AddOrderRow(Item.OrderRow()
                                  .SetAmountExVat(4)
                                  .SetVatPercent(25)
                                  .SetQuantity(1))
                     .SetCurrency(TestingTool.DefaultTestCurrency)
                     .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                     .SetCountryCode(TestingTool.DefaultTestCountryCode)
                     .AddCustomerDetails(TestingTool.CreateCompanyCustomer());

            var payment = new FakeHostedPayment(_order);

            payment.SetReturnUrl("http://myurl.se")
            .CalculateRequestValues();

            _xml = _xmlBuilder.GetXml(payment);

            const string expectedString =
                "<customer><ssn>194608142222</ssn><firstname>Tess, T Persson</firstname>" +
                "<phone>0811111111</phone><email>[email protected]</email>" +
                "<address>Testgatan</address><housenumber>1</housenumber>" +
                "<address2>c/o Eriksson, Erik</address2><zip>99999</zip>" +
                "<city>Stan</city><country>SE</country></customer>";

            Assert.That(_xml.Contains(expectedString), Is.True);
            Assert.That(_xml.Contains("<ipaddress>123.123.123.123</ipaddress>"), Is.True);
        }
        public void TestCheckOfIdentityClass()
        {
            const string expectedMessage = "MISSING VALUE - CountryCode is required. Use SetCountryCode().\n" +
                                           "MISSING VALUE - OrderRows are required. Use AddOrderRow(Item.OrderRow) to get orderrow setters.\n" +
                                           "MISSING VALUE - OrderDate is required. Use SetOrderDate().\n";

            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .AddCustomerDetails(TestingTool.CreateCompanyCustomer());

            Assert.That(_orderValidator.Validate(order), Is.EqualTo(expectedMessage));
        }
        public void TestBuildOrderWithCompanyCustomer()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                           .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"));
        }
        public void TestFailCompanyCustomerUsingPaymentPlan()
        {
            const string expectedMessage = "ERROR - CompanyCustomer is not allowed to use payment plan option.";

            var exception = Assert.Throws <SveaWebPayValidationException>(
                () => WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                .AddCustomerDetails(TestingTool.CreateCompanyCustomer())
                .SetCountryCode(TestingTool.DefaultTestCountryCode)
                .SetOrderDate(new DateTime(2012, 09, 09))
                .UsePaymentPlanPayment(777L));


            Assert.That(exception.Message, Is.EqualTo(expectedMessage));
        }
Пример #6
0
        public void TestInvoiceRequestObjectWithFixedDiscountOnDifferentProductVat()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(Item.OrderRow()
                                                        .SetArticleNumber("1")
                                                        .SetQuantity(1)
                                                        .SetAmountExVat(240.00M)
                                                        .SetDescription("CD")
                                                        .SetVatPercent(25))
                                           .AddOrderRow(Item.OrderRow()
                                                        .SetArticleNumber("1")
                                                        .SetQuantity(1)
                                                        .SetAmountExVat(188.68M)
                                                        .SetDescription("Bok")
                                                        .SetVatPercent(6))
                                           .AddDiscount(Item.FixedDiscount()
                                                        .SetDiscountId("1")
                                                        .SetAmountIncVat(100.00M)
                                                        .SetDescription("FixedDiscount"))
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                           .AddCustomerDetails(TestingTool.CreateCompanyCustomer())
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.OrderRows[2].ArticleNumber, Is.EqualTo("1"));
            Assert.That(request.CreateOrderInformation.OrderRows[2].Description, Is.EqualTo("FixedDiscount (25%)"));
            Assert.That(request.CreateOrderInformation.OrderRows[3].Description, Is.EqualTo("FixedDiscount (6%)"));

            var combinedPrice = request.CreateOrderInformation.OrderRows[2].PricePerUnit +
                                request.CreateOrderInformation.OrderRows[3].PricePerUnit;

            Assert.That(combinedPrice, Is.EqualTo(-85.74));

            Assert.That(request.CreateOrderInformation.OrderRows[2].NumberOfUnits, Is.EqualTo(1));
            Assert.That(request.CreateOrderInformation.OrderRows[2].VatPercent, Is.EqualTo(25));
            Assert.That(request.CreateOrderInformation.OrderRows[3].VatPercent, Is.EqualTo(6));
            Assert.That(request.CreateOrderInformation.OrderRows[2].DiscountPercent, Is.EqualTo(0));
        }
        public void TestSetHtmlFields()
        {
            string base64Payment = Base64Util.EncodeBase64String("0");
            string mac           = HashUtil.CreateHash(base64Payment + SecretWord);

            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .AddOrderRow(TestingTool.CreateMiniOrderRow())
                               .AddCustomerDetails(TestingTool.CreateCompanyCustomer())
                               .UsePayPageDirectBankOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            form.SetMessageBase64(base64Payment)
            .SetMerchantId(MerchantId)
            .SetSecretWord(SecretWord)
            .SetHtmlFields();

            var    formHtmlFields = form.GetFormHtmlFields();
            string url            = form.GetPayPageUrl();


            Assert.That(formHtmlFields["form_start_tag"],
                        Is.EqualTo("<form name=\"paymentForm\" id=\"paymentForm\" method=\"post\" action=\"" + url + "\">"));

            Assert.That(formHtmlFields["input_merchantId"],
                        Is.EqualTo("<input type=\"hidden\" name=\"merchantid\" value=\"" + MerchantId + "\" />"));

            Assert.That(formHtmlFields["input_message"],
                        Is.EqualTo("<input type=\"hidden\" name=\"message\" value=\"" + base64Payment + "\" />"));

            Assert.That(formHtmlFields["input_mac"], Is.EqualTo("<input type=\"hidden\" name=\"mac\" value=\"" + mac + "\" />"));

            Assert.That(formHtmlFields["noscript_p_tag"],
                        Is.EqualTo("<noscript><p>Javascript är inaktiverat i er webbläsare, ni får dirigera om till paypage manuellt</p></noscript>"));

            Assert.That(formHtmlFields["input_submit"], Is.EqualTo("<input type=\"submit\" name=\"submit\" value=\"Betala\" />"));

            Assert.That(formHtmlFields["form_end_tag"], Is.EqualTo("</form>"));
        }
Пример #8
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."));
     }
 }
        public void TestCreatePaymentForm()
        {
            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                       .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                       .SetCurrency(TestingTool.DefaultTestCurrency)
                                       .AddOrderRow(Item.OrderRow()
                                                    .SetAmountExVat(4)
                                                    .SetVatPercent(25)
                                                    .SetQuantity(1))
                                       .AddCustomerDetails(TestingTool.CreateCompanyCustomer());

            var payment = new FakeHostedPayment(order);

            payment.SetReturnUrl("myurl");

            PaymentForm form = payment.GetPaymentForm();

            var formHtmlFields = form.GetFormHtmlFields();

            Assert.That(formHtmlFields["form_end_tag"], Is.EqualTo("</form>"));
        }
Пример #10
0
        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("194608142222"));
            Assert.That(request.CreateOrderInformation.OrderRows[0].ArticleNumber, Is.EqualTo("1"));
            Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("2"));
        }