예제 #1
0
        public void TestInvoiceForIndividualFromNl()
        {
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreateOrderRowNl())
                                             .AddCustomerDetails(TestingTool.CreateIndividualCustomer(CountryCode.NL))
                                             .SetCountryCode(CountryCode.NL)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(Currency.EUR)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.ResultCode, Is.EqualTo(0));
            Assert.That(response.Accepted, Is.True);
            Assert.That(response.CreateOrderResult.SveaWillBuyOrder, Is.True);
            Assert.That(response.CreateOrderResult.Amount, Is.EqualTo(212.00));
            Assert.That(response.CreateOrderResult.OrderType, Is.EqualTo("Invoice"));

            //Returns hardcoded values that slightly differ from input
            Assert.That(response.CreateOrderResult.CustomerIdentity.Email, Is.EqualTo("*****@*****.**"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.IpAddress, Is.Null);
            Assert.That(response.CreateOrderResult.CustomerIdentity.CountryCode, Is.EqualTo("NL"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.HouseNumber, Is.EqualTo("42"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Individual));
            Assert.That(response.CreateOrderResult.CustomerIdentity.PhoneNumber, Is.EqualTo("999999"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.FullName, Is.EqualTo("Sneider Boasman"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.Street, Is.EqualTo("Gate"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.CoAddress, Is.Null);
            Assert.That(response.CreateOrderResult.CustomerIdentity.ZipCode, Is.EqualTo("1102 HG"));
            Assert.That(response.CreateOrderResult.CustomerIdentity.Locality, Is.EqualTo("BARENDRECHT"));
        }
예제 #2
0
        public void TestInvoiceRequestObjectForCustomerIdentityIndividualFromNl()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer(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("Sneider Boasman"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.Street, Is.EqualTo("Gate"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CoAddress, Is.EqualTo("138"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.ZipCode, Is.EqualTo("1102 HG"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.HouseNumber, Is.EqualTo("42"));
            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.Individual));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.FirstName, Is.EqualTo("Sneider"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.LastName, Is.EqualTo("Boasman"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.Initials, Is.EqualTo("SB"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.BirthDate, Is.EqualTo("19550307"));
        }
예제 #3
0
        public void TestDeliverPaymentPlanOrderResult()
        {
            GetPaymentPlanParamsEuResponse paymentPlanParamResponse = WebpayConnection.GetPaymentPlanParams(SveaConfig.GetDefaultConfig())
                                                                      .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                                                      .DoRequest();
            long code = paymentPlanParamResponse.CampaignCodes[0].CampaignCode;

            CreateOrderEuResponse createOrderResponse = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                                        .AddOrderRow(TestingTool.CreatePaymentPlanOrderRow())
                                                        .AddCustomerDetails(
                TestingTool.CreateIndividualCustomer())
                                                        .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                                        .SetCustomerReference(
                TestingTool.DefaultTestClientOrderNumber)
                                                        .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                                        .SetOrderDate(TestingTool.DefaultTestDate)
                                                        .SetCurrency(TestingTool.DefaultTestCurrency)
                                                        .UsePaymentPlanPayment(code)
                                                        .DoRequest();

            DeliverOrderEuResponse deliverOrderResponse = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig())
                                                          .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                                          .SetOrderId(
                createOrderResponse.CreateOrderResult
                .SveaOrderId)
                                                          .SetNumberOfCreditDays(1)
                                                          .SetInvoiceDistributionType(
                InvoiceDistributionType.POST)
                                                          .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                                          .DeliverPaymentPlanOrder()
                                                          .DoRequest();

            Assert.That(deliverOrderResponse.Accepted, Is.True);
        }
예제 #4
0
        public void TestInvoiceRequestObjectWithCreateOrderInformation()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                                           .AddFee(TestingTool.CreateExVatBasedShippingFee())
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                           .AddCustomerDetails(Item.CompanyCustomer()
                                                               .SetNationalIdNumber(TestingTool.DefaultTestCompanyNationalIdNumber)
                                                               .SetAddressSelector("ad33")
                                                               .SetEmail("*****@*****.**")
                                                               .SetPhoneNumber("999999")
                                                               .SetIpAddress("123.123.123")
                                                               .SetStreetAddress("Gatan", "23")
                                                               .SetCoAddress("c/o Eriksson")
                                                               .SetZipCode("2222")
                                                               .SetLocality("Stan"))
                                           .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.OrderDate, Is.EqualTo(TestingTool.DefaultTestDate));
            Assert.That(request.CreateOrderInformation.ClientOrderNumber, Is.EqualTo("33"));
            Assert.That(request.CreateOrderInformation.OrderType, Is.EqualTo(OrderType.Invoice));
            Assert.That(request.CreateOrderInformation.CustomerReference, Is.EqualTo("ref33"));
            Assert.That(request.CreateOrderInformation.AddressSelector, Is.EqualTo("ad33"));
        }
        public void TestFailOnMissingOrderRowValues()
        {
            const string expectedMessage =
                "MISSING VALUE - Quantity is required in Item object. Use Item.SetQuantity().\n" +
                "MISSING VALUE - Two of the values must be set: AmountExVat(not set), AmountIncVat(not set) or VatPercent(not set) for Orderrow. Use two of: SetAmountExVat(), SetAmountIncVat or SetVatPercent().\n" +
                "MISSING VALUE - OrderDate is required. Use SetOrderDate().\n";

            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                       .AddOrderRow(Item.OrderRow())
                                       .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                       .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                       .SetValidator(new VoidValidator());

            Assert.That(_orderValidator.Validate(order), Is.EqualTo(expectedMessage));
        }
예제 #6
0
        public void TestConnectionWithTestConfiguration()
        {
            var conf = new ConfigurationProviderTestData();
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(conf)
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                                             .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.Accepted, Is.True);
        }
예제 #7
0
        public void TestPaymentPlanRequestObjectSpecifics()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                           .AddFee(TestingTool.CreateExVatBasedShippingFee())
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UsePaymentPlanPayment(1337L)
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.CreatePaymentPlanDetails.CampaignCode, Is.EqualTo(1337L));
            Assert.That(request.CreateOrderInformation.CreatePaymentPlanDetails.SendAutomaticGiroPaymentForm, Is.False);
        }
예제 #8
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));
        }
예제 #9
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));
        }
예제 #10
0
        private long createPaymentPlanAndReturnOrderId()
        {
            GetPaymentPlanParamsEuResponse paymentPlanParam = WebpayConnection.GetPaymentPlanParams(SveaConfig.GetDefaultConfig())
                                                              .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                                              .DoRequest();
            long code = paymentPlanParam.CampaignCodes[0].CampaignCode;

            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreatePaymentPlanOrderRow())
                                             .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .UsePaymentPlanPayment(code)
                                             .DoRequest();

            return(response.CreateOrderResult.SveaOrderId);
        }
예제 #11
0
        public void TestPaymentPlanRequestReturnsAcceptedResult()
        {
            GetPaymentPlanParamsEuResponse paymentPlanParam = WebpayConnection.GetPaymentPlanParams(SveaConfig.GetDefaultConfig())
                                                              .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                                              .DoRequest();
            long code = paymentPlanParam.CampaignCodes[0].CampaignCode;

            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreatePaymentPlanOrderRow())
                                             .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .UsePaymentPlanPayment(code)
                                             .DoRequest();

            Assert.That(response.Accepted, 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));
        }
예제 #13
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));
        }
 private static CreateOrderBuilder CreateTestCustomerIdentity(CreateOrderBuilder orderBuilder)
 {
     return(orderBuilder.AddCustomerDetails(TestingTool.CreateIndividualCustomer()));
 }