private static void RefundPayment_Federated() { Console.WriteLine("Begin RefundFederatedPaymentUX"); var context = new AnonymousCustomerBob().Context; var container = context.ShopsContainer(); var orderid = Scenarios.SimplePhysical2Items.Run(new AnonymousCustomerBob().Context).Result; var order = Orders.GetOrder(container, orderid); var paymentId = order.Components.OfType <Sitecore.Commerce.Plugin.Payments.FederatedPaymentComponent>().FirstOrDefault()?.Id; Orders.RunPendingOrdersMinion(context); Orders.RunReleasedOrdersMinion(context); Orders.RunSettleSalesActivitiesMinion(context); var view = Proxy.GetValue(ShopsContainer.GetEntityView(orderid, "RefundPayment", "RefundPayment", paymentId)); var result = Proxy.DoCommand(ShopsContainer.DoAction(view)); result.Should().NotBeNull(); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var updatedOrderView = Proxy.GetValue(ShopsContainer.GetEntityView(orderid, "Master", string.Empty, string.Empty)); var salesActivities = updatedOrderView.ChildViews.FirstOrDefault(p => p.Name.Equals("SalesActivities")) as EntityView; salesActivities.Should().NotBeNull(); //There should be 2 Sales Activities now. The original one and the one for the refund. salesActivities?.ChildViews.Count.Should().Be(2); // Get the OrderPayments View and validate that the payment is now gone var paymentsView = Proxy.GetValue(ShopsContainer.GetEntityView(orderid, "OrderPayments", string.Empty, string.Empty)); paymentsView.ChildViews.Count().Should().Be(0); }
private static void ApplyingCartExclusiveCouponsPromotions() { Console.WriteLine("Begin ApplyingCartExclusiveCouponsPromotions"); var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Guid.NewGuid().ToString("B"); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 4)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add coupon cart exclusive 5% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNEC5P")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add coupon cart exclusive 5% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNEC5A")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); var messages = cart.Components.OfType <MessagesComponent>().FirstOrDefault(); messages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); messages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(2); messages?.Messages.FirstOrDefault(m => m.Code.Equals("Promotions"))?.Text.Should().Be("PromotionExcluded: Entity-Promotion-AdventureWorksPromotionBook-Cart5OffExclusiveCouponPromotion"); messages?.Messages.LastOrDefault(m => m.Code.Equals("Promotions"))?.Text.Should().Be("PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-Cart5PctOffExclusiveCouponPromotion"); }
private static void VoidPayment_Federated(string orderId = "") { using (new SampleMethodScope()) { if (string.IsNullOrEmpty(orderId)) { orderId = _orderId; } var container = new AnonymousCustomerBob().Context.ShopsContainer(); var order = Orders.GetOrder(container, orderId); var paymentId = order.Components.OfType <FederatedPaymentComponent>() .FirstOrDefault() ?.Id; var view = Proxy.GetValue( ShopsContainer.GetEntityView(orderId, "OrderPayments", "VoidPayment", paymentId)); view.Should().NotBeNull(); view.Properties.Should().NotBeEmpty(); var result = Proxy.DoCommand(ShopsContainer.DoAction(view)); result.Should().NotBeNull(); result.Messages.Should().NotContainErrors(); // Get the OrderPayments View and validate that the payment is now gone var paymentsView = Proxy.GetValue( ShopsContainer.GetEntityView(orderId, "OrderPayments", string.Empty, string.Empty)); paymentsView.ChildViews.Count().Should().Be(0); } }
private static void VoidPayment_Federated(string orderId = "") { Console.WriteLine("Begin DeleteFederatedPaymentUX"); if (string.IsNullOrEmpty(orderId)) { orderId = _orderId; } var container = new AnonymousCustomerBob().Context.ShopsContainer(); var order = Orders.GetOrder(container, orderId); var paymentId = order.Components.OfType <Sitecore.Commerce.Plugin.Payments.FederatedPaymentComponent>().FirstOrDefault()?.Id; var view = Proxy.GetValue(ShopsContainer.GetEntityView(orderId, "OrderPayments", "VoidPayment", paymentId)); view.Should().NotBeNull(); view.Properties.Should().NotBeEmpty(); var result = Proxy.DoCommand(ShopsContainer.DoAction(view)); result.Should().NotBeNull(); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // Get the OrderPayments View and validate that the payment is now gone var paymentsView = Proxy.GetValue(ShopsContainer.GetEntityView(orderId, "OrderPayments", string.Empty, string.Empty)); paymentsView.ChildViews.Count().Should().Be(0); }
private static void FixedPrice() { var bob = new AnonymousCustomerBob { Context = { Environment = "AdventureWorksShops" } }; var container = bob.Context.ShopsContainer(); var cartId = Guid.NewGuid().ToString("B"); var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW055 01|33", 1)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Models.OfType <Totals>().FirstOrDefault()?.GrandTotal.Amount.Should().Be(9); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.SellPrice.Amount.Should().Be(9); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.FixedSellPrice.Should().BeTrue(); result = Proxy.DoCommand(container.AddCouponToCart(cartId, "AWSELLPRICE")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Models.OfType <Totals>().FirstOrDefault()?.GrandTotal.Amount.Should().Be(5); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.SellPrice.Amount.Should().Be(5); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.FixedSellPrice.Should().BeTrue(); result = Proxy.DoCommand(container.RemoveCouponFromCart(cartId, "AWSELLPRICE")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Models.OfType <Totals>().FirstOrDefault()?.GrandTotal.Amount.Should().Be(9); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.SellPrice.Amount.Should().Be(9); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.FixedSellPrice.Should().BeTrue(); }
private static void FixedPrice() { var bob = new AnonymousCustomerBob { Context = { Environment = EnvironmentConstants.AdventureWorksShops } }; var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW055 01|33", 1)); result.Messages.Should().NotContainErrors(); result.Models.OfType <Totals>().FirstOrDefault()?.GrandTotal.Amount.Should().Be(9); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.SellPrice.Amount.Should().Be(9); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.FixedSellPrice.Should().BeTrue(); result = Proxy.DoCommand(container.AddCouponToCart(cartId, "AWSELLPRICE")); result.Messages.Should().NotContainErrors(); result.Models.OfType <Totals>().FirstOrDefault()?.GrandTotal.Amount.Should().Be(5); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.SellPrice.Amount.Should().Be(5); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.FixedSellPrice.Should().BeTrue(); result = Proxy.DoCommand(container.RemoveCouponFromCart(cartId, "AWSELLPRICE")); result.Messages.Should().NotContainErrors(); result.Models.OfType <Totals>().FirstOrDefault()?.GrandTotal.Amount.Should().Be(9); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.SellPrice.Amount.Should().Be(9); cart.Lines.FirstOrDefault()?.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()?.FixedSellPrice.Should().BeTrue(); }
public static void RunScenarios() { using (new SampleScenarioScope("Orders UX")) { try { var jeff = new AnonymousCustomerJeff(); _orderId = Simple2PhysicalDigitalItems.Run(jeff.Context); _orderId.Should().NotBeNull(); HoldOrder(_orderId); OrderFulfillments(); SetFulfillment_Digital(); SetFulfillment_ShipToMe(); SetFulfillment_Split(); OrderPayments(); VoidPayment_Federated(); AddPayment_Federated(64.23M); UndoOnHoldOrder(); OrderEntitlements(jeff.Context); OnHoldScenarios(); // Run Federated Scenarios var bob = new AnonymousCustomerBob(); _orderId = SimplePhysicalDigitalItemsFederatedPayment.Run(bob.Context); _orderId.Should().NotBeNull(); HoldOrder(_orderId); OrderFulfillments(); SetFulfillment_Digital(); SetFulfillment_ShipToMe(); SetFulfillment_Split(); OrderPayments(); VoidPayment_Federated(); AddPayment_Federated(64.23M); RefundPayment_Federated(); _orderId = SimplePhysical2Items.Run(jeff.Context); _orderId.Should().NotBeNull(); HoldOrder(_orderId); AddPayment_GiftCard(); UndoOnHoldOrder(); } catch (Exception ex) { ConsoleExtensions.WriteErrorLine($"Exception in Scenario 'OrdersUX' (${ex.Message}) : Stack={ex.StackTrace}"); } } }
private static void ApplyingLineExclusiveMixedPromotions() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart alpine var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW188 06|19", 1)); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeFalse(); cart.Lines.FirstOrDefault().Should().NotBeNull(); var lineMessages = cart.Lines.FirstOrDefault() ?.CartLineComponents.OfType <MessagesComponent>() .FirstOrDefault(); lineMessages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); lineMessages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(1); lineMessages?.Messages.FirstOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be( "PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-LineAlpineParkaExclusivePromotion"); // add coupon line exclusive 20% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNEL20P")); result.Messages.Should().NotContainErrors(); cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); var cartMessages = cart.Components.OfType <MessagesComponent>().FirstOrDefault(); cartMessages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); cartMessages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(1); cartMessages?.Messages.FirstOrDefault() ?.Text.Should() .Be( "PromotionExcluded: Entity-Promotion-AdventureWorksPromotionBook-LineAlpineParkaExclusivePromotion"); lineMessages = cart.Lines.FirstOrDefault() ?.CartLineComponents.OfType <MessagesComponent>() .FirstOrDefault(); lineMessages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); lineMessages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(1); lineMessages?.Messages.LastOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be( "PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-Line20PctOffExclusiveCouponPromotion"); } }
private static void ApplyingOrderOfPromotionsAndCouponPromotions() { Console.WriteLine("Begin ApplyingOrderOfPromotionsAndCouponPromotions"); var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Guid.NewGuid().ToString("B"); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 4)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeFalse(); // add coupon 15% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNC15P")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); // add coupon 10% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNC10P")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); result = Proxy.DoCommand(container.SetCartFulfillment(cartId, bob.Context.Components.OfType <PhysicalFulfillmentComponent>().First())); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); var messages = cart.Components.OfType <MessagesComponent>().FirstOrDefault(); messages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); messages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(3); messages?.Messages.ToList().FindIndex(m => m.Text.Equals("PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-CartFreeShippingPromotion")).Should().Be(0); messages?.Messages.ToList().FindIndex(m => m.Text.Equals("PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-Cart15PctOffCouponPromotion")).Should().Be(1); messages?.Messages.ToList().FindIndex(m => m.Text.Equals("PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-Cart10PctOffCouponPromotion")).Should().Be(2); }
private static void ApplyingCartExclusivePromotions() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart galaxy var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW535 11|12", 1)); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); var messages = cart.Components.OfType <MessagesComponent>().FirstOrDefault(); messages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); messages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(1); messages?.Messages.FirstOrDefault() ?.Text.Should() .Be( "PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-CartGalaxyTentExclusivePromotion"); // add fulfillment result = Proxy.DoCommand( container.SetCartFulfillment( cartId, bob.Context.Components.OfType <PhysicalFulfillmentComponent>().First())); result.Messages.Should().NotContainErrors(); cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); messages = cart.Components.OfType <MessagesComponent>().FirstOrDefault(); messages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); messages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(2); messages?.Messages.FirstOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be("PromotionExcluded: Entity-Promotion-AdventureWorksPromotionBook-CartFreeShippingPromotion"); messages?.Messages.LastOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be( "PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-CartGalaxyTentExclusivePromotion"); } }
private static void DisabledPromotions() { Console.WriteLine("Begin DisabledPromotion"); var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Guid.NewGuid().ToString("B"); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 1)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeFalse(); }
private static void DisabledPromotions() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 1)); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeFalse(); } }
private static void PromotionCalculationCartAllApply() { Console.WriteLine("Begin PromotionCalculationCartAllApply"); var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Guid.NewGuid().ToString("B"); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 1)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add to cart petzl spirit result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW014 08|", 1)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add coupon cart 10$ off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNC10A")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add coupon cart 10% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNC10P")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); var cartTotals = cart.Totals; cartTotals?.SubTotal.Amount.Should().Be(69M); cartTotals?.AdjustmentsTotal.Amount.Should().Be(-15.90M); cartTotals?.GrandTotal.Amount.Should().Be(53.10M); var cartPercentAdjustmentTotal = cart.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartSubtotalAmountOffAction")); cartPercentAdjustmentTotal.Should().NotBeNull(); cartPercentAdjustmentTotal?.Adjustment.Amount.Should().Be(-10M); var cartAmountAdjustment = cart.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartSubtotalPercentOffAction")); cartAmountAdjustment.Should().NotBeNull(); cartAmountAdjustment?.Adjustment.Amount.Should().Be(-5.90M); }
private static void PromotionCalculationCartAllApply() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 1)); result.Messages.Should().NotContainErrors(); // add to cart petzl spirit result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW014 08|", 1)); result.Messages.Should().NotContainErrors(); // add coupon cart 10$ off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNC10A")); result.Messages.Should().NotContainErrors(); // add coupon cart 10% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNC10P")); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); var cartTotals = cart.Totals; cartTotals?.SubTotal.Amount.Should().Be(69M); cartTotals?.AdjustmentsTotal.Amount.Should().Be(-15.90M); cartTotals?.GrandTotal.Amount.Should().Be(53.10M); var cartPercentAdjustmentTotal = cart.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartSubtotalAmountOffAction")); cartPercentAdjustmentTotal.Should().NotBeNull(); cartPercentAdjustmentTotal?.Adjustment.Amount.Should().Be(-10M); var cartAmountAdjustment = cart.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartSubtotalPercentOffAction")); cartAmountAdjustment.Should().NotBeNull(); cartAmountAdjustment?.Adjustment.Amount.Should().Be(-5.90M); } }
private static void ApplyingLinePromotions() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart sahara var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW114 06|23", 1)); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); var lineTotals = cart.Lines.FirstOrDefault()?.Totals; lineTotals?.SubTotal.Amount.Should().Be(120M); lineTotals?.AdjustmentsTotal.Amount.Should().Be(-62.5M); lineTotals?.GrandTotal.Amount.Should().Be(57.5M); var sahara5Off = cart.Lines.FirstOrDefault() ?.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartItemSubtotalAmountOffAction")); sahara5Off.Should().NotBeNull(); sahara5Off?.Adjustment.Amount.Should().Be(-5M); var sahara50PctOff = cart.Lines.FirstOrDefault() ?.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartItemSubtotalPercentOffAction")); sahara50PctOff.Should().NotBeNull(); sahara50PctOff?.Adjustment.Amount.Should().Be(-57.5M); var lineMessages = cart.Lines.FirstOrDefault() ?.CartLineComponents.OfType <MessagesComponent>() .FirstOrDefault(); lineMessages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); lineMessages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(2); lineMessages?.Messages.FirstOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be("PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-LineSaharaJacket5OffPromotion"); lineMessages?.Messages.LastOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be("PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-LineSaharaJacketPromotion"); } }
private static void RefundPayment_Federated() { using (new SampleMethodScope()) { var context = new AnonymousCustomerBob().Context; var container = context.ShopsContainer(); var orderid = SimplePhysical2Items.Run(new AnonymousCustomerBob().Context); var order = Orders.GetOrder(container, orderid); var paymentId = order.Components.OfType <FederatedPaymentComponent>() .FirstOrDefault() ?.Id; Orders.RunPendingOrdersMinion(context); Orders.RunReleasedOrdersMinion(context); var view = Proxy.GetValue( ShopsContainer.GetEntityView(orderid, "RefundPayment", "RefundPayment", paymentId)); var result = Proxy.DoCommand(ShopsContainer.DoAction(view)); result.Should().NotBeNull(); result.Messages.Should().NotContainErrors(); var updatedOrderView = Proxy.GetValue( ShopsContainer.GetEntityView(orderid, "Master", string.Empty, string.Empty)); var salesActivities = updatedOrderView.ChildViews.FirstOrDefault(p => p.Name.Equals("SalesActivities")) as EntityView; salesActivities.Should().NotBeNull(); //There should be 2 Sales Activities now. The original one and the one for the refund. salesActivities?.ChildViews.Count.Should().Be(2); // Get the OrderPayments View and validate that the payment is now gone var paymentsView = Proxy.GetValue( ShopsContainer.GetEntityView(orderid, "OrderPayments", string.Empty, string.Empty)); paymentsView.ChildViews.Count().Should().Be(0); } }
private static void PromotionCalculationLineAmountAndPercent() { Console.WriteLine("Begin PromotionCalculationLineAmountAndPercent"); var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Guid.NewGuid().ToString("B"); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 2)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add coupon line 5$ off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNL5A")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); // add coupon line 5% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNL5P")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var cart = Proxy.GetValue(container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); var lineTotals = cart.Lines.FirstOrDefault()?.Totals; lineTotals?.SubTotal.Amount.Should().Be(118M); lineTotals?.AdjustmentsTotal.Amount.Should().Be(-10.65M); lineTotals?.GrandTotal.Amount.Should().Be(107.35M); var linePercentAdjustment = cart.Lines.FirstOrDefault()?.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartAnyItemSubtotalPercentOffAction")); linePercentAdjustment.Should().NotBeNull(); linePercentAdjustment?.Adjustment.Amount.Should().Be(-5.65M); var lineAmountAdjustment = cart.Lines.FirstOrDefault()?.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartAnyItemSubtotalAmountOffAction")); lineAmountAdjustment.Should().NotBeNull(); lineAmountAdjustment?.Adjustment.Amount.Should().Be(-5M); }
private static void ApplyingCartExclusiveCouponsPromotions() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart scoutpride var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW475 14|", 4)); result.Messages.Should().NotContainErrors(); // add coupon cart exclusive 5% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNEC5P")); result.Messages.Should().NotContainErrors(); // add coupon cart exclusive 5% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNEC5A")); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); cart.Components.OfType <MessagesComponent>().Any().Should().BeTrue(); var messages = cart.Components.OfType <MessagesComponent>().FirstOrDefault(); messages?.Messages.Any(m => m.Code.Equals("Promotions")).Should().BeTrue(); messages?.Messages.Count(m => m.Code.Equals("Promotions")).Should().Be(2); messages?.Messages.FirstOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be( "PromotionExcluded: Entity-Promotion-AdventureWorksPromotionBook-Cart5OffExclusiveCouponPromotion"); messages?.Messages.LastOrDefault(m => m.Code.Equals("Promotions")) ?.Text.Should() .Be( "PromotionApplied: Entity-Promotion-AdventureWorksPromotionBook-Cart5PctOffExclusiveCouponPromotion"); } }
private static void PromotionCalculationLineAllApply() { using (new SampleMethodScope()) { var bob = new AnonymousCustomerBob(); var container = bob.Context.ShopsContainer(); var cartId = Carts.GenerateCartId(); // add to cart petzl spirit var result = Proxy.DoCommand(container.AddCartLine(cartId, "Adventure Works Catalog|AW014 08|", 1)); result.Messages.Should().NotContainErrors(); // add coupon line 5$ off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNL5A")); result.Messages.Should().NotContainErrors(); // add coupon line 5% off result = Proxy.DoCommand(container.AddCouponToCart(cartId, "RTRNL5P")); result.Messages.Should().NotContainErrors(); var cart = Proxy.GetValue( container.Carts.ByKey(cartId).Expand("Lines($expand=CartLineComponents),Components")); cart.Should().NotBeNull(); var lineTotals = cart.Lines.FirstOrDefault()?.Totals; lineTotals?.SubTotal.Amount.Should().Be(10M); lineTotals?.AdjustmentsTotal.Amount.Should().Be(-5.25M); lineTotals?.GrandTotal.Amount.Should().Be(4.75M); var linePercentAdjustment = cart.Lines.FirstOrDefault() ?.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartAnyItemSubtotalPercentOffAction")); linePercentAdjustment.Should().NotBeNull(); linePercentAdjustment?.Adjustment.Amount.Should().Be(-0.25M); var lineAmountAdjustment = cart.Lines.FirstOrDefault() ?.Adjustments.FirstOrDefault(a => a.AwardingBlock.Equals("CartAnyItemSubtotalAmountOffAction")); lineAmountAdjustment.Should().NotBeNull(); lineAmountAdjustment?.Adjustment.Amount.Should().Be(-5M); } }
public static void RunScenarios() { var watch = new Stopwatch(); watch.Start(); Console.WriteLine("Begin OrdersUX"); try { // Run CredtCard scenarios var jeff = new AnonymousCustomerJeff(); _orderId = Scenarios.Simple2PhysicalDigitalItems.Run(jeff.Context).Result; _orderId.Should().NotBeNull(); HoldOrder(_orderId); OrderFulfillments(); SetFulfillment_Digital(); SetFulfillment_ShipToMe(); SetFulfillment_Split(); OrderPayments(); VoidPayment_Federated(); AddPayment_Federated(64.23M); UndoOnHoldOrder(); OrderEntitlements(jeff.Context); OnHoldScenarios(); // Run Federated Scenarios var bob = new AnonymousCustomerBob(); _orderId = Scenarios.SimplePhysicalDigitalItemsFederatedPayment.Run(bob.Context).Result; _orderId.Should().NotBeNull(); HoldOrder(_orderId); OrderFulfillments(); SetFulfillment_Digital(); SetFulfillment_ShipToMe(); SetFulfillment_Split(); OrderPayments(); VoidPayment_Federated(); AddPayment_Federated(64.23M); RefundPayment_Federated(); _orderId = Scenarios.SimplePhysical2Items.Run(jeff.Context).Result; _orderId.Should().NotBeNull(); HoldOrder(_orderId); AddPayment_GiftCard(); UndoOnHoldOrder(); } catch (Exception ex) { ConsoleExtensions.WriteColoredLine(ConsoleColor.Red, $"Exception in Scenario 'OrdersUX' (${ex.Message}) : Stack={ex.StackTrace}"); } watch.Stop(); Console.WriteLine($"End PromotionsUX :{watch.ElapsedMilliseconds} ms"); }