예제 #1
0
        public void TestFailOnIncorrectFormatPeppolIdFifthCharacter()
        {
            const string expectedMessage = "NOT VALID - The fifth character of PeppolId must be \":\"";

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

            Assert.That(exception.Message, Is.EqualTo(expectedMessage));
        }
        public void TestInvoiceRequestObjectWithRelativeDiscountOnDifferentProductVat()
        {
            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.RelativeDiscount()
                                                        .SetDiscountId("1")
                                                        .SetDiscountPercent(20)
                                                        .SetDescription("RelativeDiscount"))
                                           .AddCustomerDetails(TestingTool.CreateIndividualCustomer())
                                           .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("RelativeDiscount (25%)"));
            Assert.That(request.CreateOrderInformation.OrderRows[3].Description, Is.EqualTo("RelativeDiscount (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));
        }
예제 #3
0
        string BuildDirectBankPayment()
        {
            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)
                               .UsePayPageDirectBankOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

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

            return(html);
            //Assert.That(html.Contains("<amount>18750</amount>"), Is.True);
        }
        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>"));
        }
        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"));
        }
        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));
        }
예제 #7
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));
        }
예제 #8
0
        public void TestPayPagePaymentWithSetPaymentMethodSveaCardPay()
        {
            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)
                               .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                               .UsePaymentMethod(PaymentMethod.SVEACARDPAY)
                               .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>SVEACARDPAY</paymentmethod><customerrefno>33</customerrefno>" +
                "<currency>SEK</currency><amount>12500</amount><vat>2500</vat><lang>en</lang>" +
                "<returnurl>http://myurl.se</returnurl><iscompany>false</iscompany>" +
                "<customer><ssn>194605092222</ssn><country>SE</country></customer>" +
                "<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>SVEACARDPAY</paymentmethod>"), Is.True);
        }
        public void TestSetFormCard()
        {
            string      base64Payment = Base64Util.EncodeBase64String("0");
            string      mac           = HashUtil.CreateHash(base64Payment + SecretWord);
            PaymentForm form          = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                        .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                        .SetCurrency(TestingTool.DefaultTestCurrency)
                                        .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                        .AddOrderRow(TestingTool.CreateMiniOrderRow())
                                        .AddCustomerDetails(TestingTool.CreateCompanyCustomer())
                                        .UsePayPageCardOnly()
                                        .SetReturnUrl("http://myurl.se")
                                        .GetPaymentForm();

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

            string expected = "<form name=\"paymentForm\" id=\"paymentForm\" method=\"post\" action=\""
                              + form.GetPayPageUrl()
                              + "\">"
                              + "<input type=\"hidden\" name=\"merchantid\" value=\""
                              + MerchantId
                              + "\" />"
                              + "<input type=\"hidden\" name=\"message\" value=\""
                              + base64Payment
                              + "\" />"
                              + "<input type=\"hidden\" name=\"mac\" value=\""
                              + mac
                              + "\" />"
                              +
                              "<noscript><p>Javascript är inaktiverat i er webbläsare, ni får dirigera om till paypage manuellt</p></noscript>"
                              + "<input type=\"submit\" name=\"submit\" value=\"Betala\" />"
                              + "</form>";

            Assert.That(form.GetCompleteForm(), Is.EqualTo(expected));
        }
예제 #10
0
        public void TestInvoiceRequestUsingAmountIncVatWithAmountExVat()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateIncAndExVatOrderRow())
                                           .AddFee(TestingTool.CreateIncAndExVatShippingFee())
                                           .AddFee(TestingTool.CreateIncAndExVatInvoiceFee())
                                           .AddCustomerDetails(Item.IndividualCustomer()
                                                               .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber))
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .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(125.00M));
            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(62.5M));
            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(62.5M));
            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));
        }
예제 #12
0
        public void TestNlCompanyIdentity()
        {
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreateOrderRowNl())
                                             .AddCustomerDetails(Item.CompanyCustomer()
                                                                 .SetCompanyName("Svea bakkerij 123")
                                                                 .SetVatNumber("NL123456789A12")
                                                                 .SetStreetAddress("broodstraat",
                                                                                   "1")
                                                                 .SetZipCode("1111 CD")
                                                                 .SetLocality("BARENDRECHT"))
                                             .SetCountryCode(CountryCode.NL)
                                             .SetClientOrderNumber(
                TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(Currency.EUR)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.ResultCode, Is.EqualTo(0));
            Assert.That(response.CreateOrderResult.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company));
            Assert.That(response.Accepted, Is.True);
        }
예제 #13
0
        public void TestDeCompanyIdentity()
        {
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreateOrderRowDe())
                                             .AddCustomerDetails(Item.CompanyCustomer()
                                                                 .SetNationalIdNumber("12345")
                                                                 .SetVatNumber("DE123456789")
                                                                 .SetStreetAddress(
                                                                     "Adalbertsteinweg", "1")
                                                                 .SetZipCode("52070")
                                                                 .SetLocality("AACHEN"))
                                             .SetCountryCode(CountryCode.DE)
                                             .SetClientOrderNumber(
                TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(Currency.EUR)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.ResultCode, Is.EqualTo(0));
            Assert.That(response.CreateOrderResult.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company));
            Assert.That(response.Accepted, Is.True);
        }
예제 #14
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));
        }
예제 #15
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);
        }
예제 #16
0
        static void CreateInitialData()
        {
            //check if the database identified by a named connection string exists
            var existsByName = Database.Exists("Name=ProjectsContext");

            //check if the database identified by a connection string exists
            var existsByConnectionString = Database.Exists(@"Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=Succinctly;MultipleActiveResultSets=true");

            using (var ctx = new ProjectsContext())
            {
                var created = ctx.Database.CreateIfNotExists();

                if (ctx.Database.CompatibleWithModel(false) == true)
                {
                    return;
                }

                new DropCreateDatabaseAlways <ProjectsContext>().InitializeDatabase(ctx);

                using (var tx = new TransactionScope())
                {
                    //venues
                    var home = new Venue()
                    {
                        Name = "Home, Sweet Home", Location = DbGeography.FromText("POINT(40.2112 8.4292)")
                    };
                    var somePlace = new Venue()
                    {
                        Name = "Some Place Else", Location = DbGeography.FromText("POINT(41 8)")
                    };

                    /*ctx.Venues.Add(home);
                     * ctx.Venues.Add(somePlace);*/

                    //customers
                    var bigCustomer = new Customer()
                    {
                        Name = "Big Customer"
                    };
                    bigCustomer.Contact.Email = "*****@*****.**";
                    bigCustomer.Contact.Phone = "00 1 555 111 333";

                    var smallCustomer = new Customer()
                    {
                        Name = "Small Customer"
                    };
                    smallCustomer.Contact.Email = "*****@*****.**";
                    smallCustomer.Contact.Phone = "00 351 111 222 333";

                    ctx.Customers.Add(bigCustomer);
                    ctx.Customers.Add(smallCustomer);

                    var developer = new Resource()
                    {
                        Name = "Ricardo Peres"
                    };
                    developer.Contact.Email = "*****@*****.**";
                    developer.Contact.Phone = "?";

                    var projectManager = new Resource()
                    {
                        Name = "Succinct Project Manager"
                    };
                    projectManager.Contact.Email = "*****@*****.**";

                    var tester = new Resource()
                    {
                        Name = "Succinct Tester"
                    };
                    tester.Contact.Email = "*****@*****.**";

                    ctx.Resources.Add(developer);
                    ctx.Resources.Add(projectManager);
                    ctx.Resources.Add(tester);

                    //start technologies
                    var aspNet = new Technology()
                    {
                        Name = "ASP.NET"
                    };
                    var entityFramework = new Technology()
                    {
                        Name = "Entity Framework"
                    };
                    var selenium = new Technology()
                    {
                        Name = "Selenium"
                    };

                    aspNet.Resources.Add(developer);
                    entityFramework.Resources.Add(developer);
                    selenium.Resources.Add(tester);

                    developer.Technologies.Add(aspNet);
                    developer.Technologies.Add(entityFramework);
                    tester.Technologies.Add(selenium);

                    ctx.Technologies.Add(aspNet);
                    ctx.Technologies.Add(entityFramework);
                    ctx.Technologies.Add(selenium);
                    //end technologies

                    //start tools
                    var developmentTool = new DevelopmentTool()
                    {
                        Name = "Visual Studio 2012", Language = "C#"
                    };
                    var managementTool = new ManagementTool()
                    {
                        Name = "Project 2013", CompatibleWithProject = true
                    };
                    var testingTool = new TestingTool()
                    {
                        Name = "Selenium", Automated = true
                    };

                    ctx.Tools.Add(developmentTool);
                    ctx.Tools.Add(managementTool);
                    ctx.Tools.Add(testingTool);
                    //end tools

                    //start big project
                    var bigProject = new Project()
                    {
                        Name = "Big Project", Start = DateTime.Today, Customer = bigCustomer
                    };

                    var bigProjectDetail = new ProjectDetail()
                    {
                        Project = bigProject, Budget = 10000M, Critical = true
                    };

                    bigProject.Detail = bigProjectDetail;

                    ctx.SaveChanges();

                    var bigProjectDeveloperResource = new ProjectResource()
                    {
                        Project = bigProject, Resource = developer, Role = Role.Developer
                    };
                    var bigProjectProjectManagerResource = new ProjectResource()
                    {
                        Project = bigProject, Resource = projectManager, Role = Role.ProjectManager
                    };
                    var bigProjectTesterResource = new ProjectResource()
                    {
                        Project = bigProject, Resource = tester, Role = Role.Tester
                    };

                    bigProject.ProjectResources.Add(bigProjectDeveloperResource);
                    bigProject.ProjectResources.Add(bigProjectProjectManagerResource);
                    bigProject.ProjectResources.Add(bigProjectTesterResource);

                    developer.ProjectResources.Add(bigProjectDeveloperResource);
                    projectManager.ProjectResources.Add(bigProjectProjectManagerResource);
                    tester.ProjectResources.Add(bigProjectTesterResource);

                    bigCustomer.Projects.Add(bigProject);
                    //end big project

                    //small project
                    var smallProject = new Project()
                    {
                        Name = "Small Project", Start = DateTime.Today.AddDays(-7), End = DateTime.Today.AddDays(-1), Customer = smallCustomer
                    };

                    var smallProjectDetail = new ProjectDetail()
                    {
                        Project = smallProject, Budget = 5000M, Critical = false
                    };

                    var smallProjectDeveloperResource = new ProjectResource()
                    {
                        Project = smallProject, Resource = developer, Role = Role.Developer
                    };
                    var smallProjectProjectManagerResource = new ProjectResource()
                    {
                        Project = smallProject, Resource = projectManager, Role = Role.ProjectManager
                    };
                    var smallProjectTesterResource = new ProjectResource()
                    {
                        Project = smallProject, Resource = tester, Role = Role.Tester
                    };

                    smallProject.Detail = smallProjectDetail;

                    smallProject.ProjectResources.Add(smallProjectDeveloperResource);
                    smallProject.ProjectResources.Add(smallProjectProjectManagerResource);
                    smallProject.ProjectResources.Add(smallProjectTesterResource);

                    developer.ProjectResources.Add(smallProjectDeveloperResource);
                    projectManager.ProjectResources.Add(smallProjectProjectManagerResource);
                    tester.ProjectResources.Add(smallProjectTesterResource);

                    smallCustomer.Projects.Add(smallProject);
                    //end small project

                    ctx.SaveChanges();
                    tx.Complete();
                }
            }
        }
 private void CreateTestRelativeDiscountBuilder()
 {
     _order.AddDiscount(TestingTool.CreateRelativeDiscount());
 }
 private void CreateTestInvoiceFee()
 {
     _order.AddFee(TestingTool.CreateExVatBasedInvoiceFee());
 }
 private void CreateShippingFeeRow()
 {
     _order.AddFee(TestingTool.CreateExVatBasedShippingFee());
 }
 private void CreateTestOrderRow()
 {
     _order.AddOrderRow(TestingTool.CreateExVatBasedOrderRow());
 }
 private CreateOrderBuilder CreateCompanyDetails(CreateOrderBuilder orderBuilder)
 {
     return(orderBuilder.AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer()));
 }
 private static CreateOrderBuilder CreateTestCustomerIdentity(CreateOrderBuilder orderBuilder)
 {
     return(orderBuilder.AddCustomerDetails(TestingTool.CreateIndividualCustomer()));
 }
예제 #23
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));
        }