Пример #1
0
        public void OrderTests_Test4()
        {
            var       createdCart = CartFactory.GetOrCreateCart(AnonShopperMsgHandler);
            const int index       = 0;
            var       product     = ProductFactory.GetProducts(AnonShopperMsgHandler, index, 13).Items.First();
            const int itemQty     = 1;
            var       item        = CartItemFactory.AddItemToCart(AnonShopperMsgHandler,
                                                                  new CartItem
            {
                Product =
                    new Product
                {
                    ProductCode = product.ProductCode
                },
                Quantity = itemQty
            });
            var order   = OrderFactory.CreateOrderFromCart(AnonShopperMsgHandler, createdCart.Id);
            var billing = BillingInfoFactory.SetBillingInfo(AnonShopperMsgHandler, new BillingInfo()
            {
                PaymentType    = "Check",
                BillingContact = new Mozu.Api.Contracts.Core.Contact
                {
                    Address = new Address
                    {
                        Address1        = string.Format("{0} {1}", Generator.RandomString(8, Generator.RandomCharacterGroup.NumericOnly), Generator.RandomString(75, Generator.RandomCharacterGroup.AlphaNumericOnly)),
                        Address2        = Generator.RandomString(50, Generator.RandomCharacterGroup.AlphaNumericOnly),
                        Address3        = Generator.RandomString(20, Generator.RandomCharacterGroup.AlphaNumericOnly),
                        Address4        = Generator.RandomString(15, Generator.RandomCharacterGroup.AlphaNumericOnly),
                        CityOrTown      = Generator.RandomString(25, Generator.RandomCharacterGroup.AlphaOnly),
                        CountryCode     = "US",
                        PostalOrZipCode = "78713",
                        StateOrProvince = "TX"
                    },
                    CompanyOrOrganization = Generator.RandomString(50, Generator.RandomCharacterGroup.AlphaNumericOnly),
                    Email               = Generator.RandomEmailAddress(),
                    FirstName           = Generator.RandomString(15, Generator.RandomCharacterGroup.AlphaOnly),
                    MiddleNameOrInitial = Generator.RandomString(1, Generator.RandomCharacterGroup.AlphaOnly),
                    LastNameOrSurname   = Generator.RandomString(35, Generator.RandomCharacterGroup.AlphaOnly),
                    PhoneNumbers        = new Mozu.Api.Contracts.Core.Phone
                    {
                        Home = string.Format("{0}-{1}-{2}", Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(4, Generator.RandomCharacterGroup.NumericOnly)),
                        Mobile = string.Format("{0}-{1}-{2}", Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                               Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                               Generator.RandomString(4, Generator.RandomCharacterGroup.NumericOnly)),
                        Work = string.Format("{0}-{1}-{2}", Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(4, Generator.RandomCharacterGroup.NumericOnly))
                    }
                },
                IsSameBillingShippingAddress = true
            }, order.Id);

            var shipping = FulfillmentInfoFactory.SetFulFillmentInfo(AnonShopperMsgHandler, new FulfillmentInfo()
            {
                IsDestinationCommercial = false,
                FulfillmentContact      = new Mozu.Api.Contracts.Core.Contact
                {
                    Address = new Address
                    {
                        Address1        = string.Format("{0} {1}", Generator.RandomString(8, Generator.RandomCharacterGroup.NumericOnly), Generator.RandomString(75, Generator.RandomCharacterGroup.AlphaNumericOnly)),
                        Address2        = Generator.RandomString(50, Generator.RandomCharacterGroup.AlphaNumericOnly),
                        Address3        = Generator.RandomString(20, Generator.RandomCharacterGroup.AlphaNumericOnly),
                        Address4        = Generator.RandomString(15, Generator.RandomCharacterGroup.AlphaNumericOnly),
                        CityOrTown      = Generator.RandomString(25, Generator.RandomCharacterGroup.AlphaOnly),
                        CountryCode     = "US",
                        PostalOrZipCode = "78713",
                        StateOrProvince = "TX"
                    },
                    CompanyOrOrganization = Generator.RandomString(50, Generator.RandomCharacterGroup.AlphaNumericOnly),
                    Email               = Generator.RandomEmailAddress(),
                    FirstName           = Generator.RandomString(15, Generator.RandomCharacterGroup.AlphaOnly),
                    MiddleNameOrInitial = Generator.RandomString(1, Generator.RandomCharacterGroup.AlphaOnly),
                    LastNameOrSurname   = Generator.RandomString(35, Generator.RandomCharacterGroup.AlphaOnly),
                    PhoneNumbers        = new Mozu.Api.Contracts.Core.Phone
                    {
                        Home = string.Format("{0}-{1}-{2}", Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(4, Generator.RandomCharacterGroup.NumericOnly)),
                        Mobile = string.Format("{0}-{1}-{2}", Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                               Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                               Generator.RandomString(4, Generator.RandomCharacterGroup.NumericOnly)),
                        Work = string.Format("{0}-{1}-{2}", Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(3, Generator.RandomCharacterGroup.NumericOnly),
                                             Generator.RandomString(4, Generator.RandomCharacterGroup.NumericOnly))
                    }
                },
                ShippingMethodCode = "CUSTOM_FLAT_RATE_PER_ORDER_EXACT_AMOUNT",
                ShippingMethodName = "Flat Rate"
            }, order.Id);
            var getOrderActions = OrderFactory.GetAvailableActions(ApiMsgHandler, order.Id);

            Assert.AreEqual(getOrderActions.Count, 1);
            Assert.IsTrue(getOrderActions[0].Equals("SubmitOrder"));
            var status = OrderFactory.PerformOrderAction(AnonShopperMsgHandler, new OrderAction()
            {
                ActionName = "SubmitOrder"
            }, order.Id);
            var getOrder          = OrderFactory.GetOrder(ApiMsgHandler, order.Id);
            var getPaymentActions = PaymentFactory.GetAvailablePaymentActions(ApiMsgHandler, order.Id, getOrder.Payments[0].Id);

            Assert.AreEqual(getPaymentActions.Count, 3);
            Assert.IsTrue(getPaymentActions[0].Equals("ApplyCheck") || getPaymentActions[0].Equals("VoidPayment") || getPaymentActions[0].Equals("DeclinePayment"));
            Assert.IsTrue(getPaymentActions[1].Equals("ApplyCheck") || getPaymentActions[1].Equals("VoidPayment") || getPaymentActions[1].Equals("DeclinePayment"));
            Assert.IsTrue(getPaymentActions[2].Equals("ApplyCheck") || getPaymentActions[2].Equals("VoidPayment") || getPaymentActions[2].Equals("DeclinePayment"));
            var paymentAction = new PaymentAction()
            {
                ActionName  = "ApplyCheck",
                CheckNumber = "12345",
                Amount      = Convert.ToDecimal(getOrder.Total)
            };
            var orderPayment1 = PaymentFactory.PerformPaymentAction(ApiMsgHandler, paymentAction, order.Id, getOrder.Payments[0].Id);

            Assert.AreEqual(orderPayment1.PaymentStatus, "Paid");
            Assert.AreEqual(orderPayment1.Payments[0].Status, "Collected");
            Assert.AreEqual(orderPayment1.Payments[0].AmountCollected, getOrder.Total);
            Assert.AreEqual(orderPayment1.Payments[0].Interactions.Count, 2);
            Assert.IsTrue(orderPayment1.Payments[0].Interactions[1].Status.Equals("Captured"));
            Assert.IsTrue(orderPayment1.Payments[0].Interactions[1].InteractionType.Equals("ApplyCheck"));
            Assert.IsTrue(orderPayment1.Payments[0].Interactions[1].CheckNumber.Equals("12345"));
            Assert.AreEqual(orderPayment1.Payments[0].Interactions[1].Amount, getOrder.Total);
        }