static void Main(string[] args) { try { OpsServiceUri = Properties.Settings.Default.OpsServiceUri; ShopsServiceUri = Properties.Settings.Default.ShopsServiceUri; MinionsServiceUri = Properties.Settings.Default.MinionsServiceUri; AuthoringServiceUri = Properties.Settings.Default.AuthoringServiceUri; SitecoreIdServerUri = Properties.Settings.Default.SitecoreIdServerUri; UserName = Properties.Settings.Default.UserName; Password = Properties.Settings.Default.Password; SitecoreTokenRaw = SitecoreIdServerAuth.GetToken(); SitecoreToken = $"Bearer {SitecoreTokenRaw}"; var stopwatch = new Stopwatch(); stopwatch.Start(); Console.ForegroundColor = ConsoleColor.Cyan; if (ShouldBootstrapOnLoad) { Bootstrapping.RunScenarios(); Content.RunScenarios(); } if (ShouldDevOpsScenarios) { Environments.RunScenarios(); Plugins.RunScenarios(); Entities.RunScenarios(); Policies.RunScenarios(); Caching.RunScenarios(); } if (ShouldRunCatalogScenarios) { Catalogs.RunScenarios(); CatalogsUX.RunScenarios(); Categories.RunScenarios(); CategoriesUX.RunScenarios(); // TODO: contains failing tests SellableItems.RunScenarios(); SellableItemsUX.RunScenarios(); } if (ShouldRunPricingScenarios) { Pricing.RunScenarios(); PricingUX.RunScenarios(); } if (ShouldRunPromotionsScenarios) { Promotions.RunScenarios(); PromotionsUX.RunScenarios(); PromotionsRuntime.RunScenarios(); Rules.RunScenarios(); Coupons.RunScenarios(); CouponsUX.RunScenarios(); } if (ShouldRunInventoryScenarios) { Inventory.RunScenarios(); InventoryUX.RunScenarios(); } if (ShouldRunOrdersScenarios) { Fulfillments.RunScenarios(); Payments.RunScenarios(); PaymentsFederated.RunScenarios(); Carts.RunScenarios(); Returns.RunScenarios(); OrdersUX.RunScenarios(); Orders.RunScenarios(); Shipments.RunScenarios(); // ORDERS HAVE TO BE RELEASED FOR SHIPMENTS TO GET GENERATED } if (ShouldRunCustomersScenarios) { CustomersUX.RunScenarios(); } if (ShouldRunEntitlementsScenarios) { Entitlements.RunScenarios(); } if (ShouldRunSearchScenarios) { Search.RunScenarios(); } if (ShouldRunBusinessUsersScenarios) { ComposerUX.RunScenarios(); // Composer.RunScenarios(); } if (ShouldRunVersionScenarios) { Versions.RunScenarios(); } stopwatch.Stop(); Console.WriteLine($"Test Runs Complete - {stopwatch.ElapsedMilliseconds} ms - (Hit any key to continue)"); if (DemoStops) { Console.ReadKey(); } } catch (Exception ex) { ConsoleExtensions.WriteErrorLine("An unexpected exception occurred."); ConsoleExtensions.WriteErrorLine(ex.ToString()); } Console.WriteLine("done."); }
private static string AddPromotion(string name, DateTimeOffset? validFrom = null, DateTimeOffset? validTo = null) { System.Console.WriteLine("Begin AddPromotionUX"); var view = Proxy.GetValue(AuthoringContainer.GetEntityView(_bookId, "Details", "AddPromotion", string.Empty)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); var version = view.Properties.FirstOrDefault(p => p.Name.Equals("Version")); var fromDate = validFrom ?? DateTimeOffset.Now; var toDate = validTo ?? DateTimeOffset.Now.AddDays(30); view.Properties = new ObservableCollection<ViewProperty> { new ViewProperty { Name = "Name", Value = name }, new ViewProperty { Name = "Description", Value = "promotion's description" }, new ViewProperty { Name = "DisplayName", Value = "promotion's display name" }, new ViewProperty { Name = "DisplayText", Value = "promotion's text" }, new ViewProperty { Name = "DisplayCartText", Value = "promotion's cart text" }, new ViewProperty { Name = "ValidFrom", Value = fromDate.ToString(CultureInfo.InvariantCulture) }, new ViewProperty { Name = "ValidTo", Value = toDate.ToString(CultureInfo.InvariantCulture) }, new ViewProperty { Name = "IsExclusive", Value = "true" }, version }; var result = Proxy.DoCommand(AuthoringContainer.DoAction(view)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Models.OfType<PromotionAdded>().FirstOrDefault().Should().NotBeNull(); var promotionFriendlyId = result.Models.OfType<PromotionAdded>().FirstOrDefault()?.PromotionFriendlyId; var promotion = Promotions.GetPromotion(promotionFriendlyId); promotion.Should().NotBeNull(); promotion.ValidFrom.Should().BeCloseTo(fromDate, 1000); promotion.ValidTo.Should().BeCloseTo(toDate, 1000); return promotionFriendlyId; }
private static void EditPromotion(string promotionId, string promotionFriendlyId) { System.Console.WriteLine("Begin EditPromotionUX"); var view = Proxy.GetValue(AuthoringContainer.GetEntityView(promotionId, "Details", "EditPromotion", string.Empty)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); var version = view.Properties.FirstOrDefault(p => p.Name.Equals("Version")); var fromDate = DateTimeOffset.Now.AddDays(60); var toDate = DateTimeOffset.Now.AddDays(90); view.Properties = new ObservableCollection<ViewProperty> { new ViewProperty { Name = "ValidFrom", Value = fromDate.ToString(CultureInfo.InvariantCulture) }, new ViewProperty { Name = "ValidTo", Value = toDate.ToString(CultureInfo.InvariantCulture) }, new ViewProperty { Name = "DisplayText", Value = "edited text" }, new ViewProperty { Name = "DisplayCartText", Value = "edited cart text" }, new ViewProperty { Name = "Description", Value = "edited description" }, new ViewProperty { Name = "DisplayName", Value = "edited display name" }, new ViewProperty { Name = "IsExclusive", Value = "false" }, version }; var result = Proxy.DoCommand(AuthoringContainer.DoAction(view)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var promotion = Promotions.GetPromotion(promotionFriendlyId); promotion.Should().NotBeNull(); promotion.ValidFrom.Should().BeCloseTo(fromDate, 1000); promotion.ValidTo.Should().BeCloseTo(toDate, 1000); }
private static void SetPromotionApprovalStatus() { Console.WriteLine("Begin SetPromotionApprovalStatusUX"); // ADD PROMOTION TO BE APPROVE var promotionFriendlyId = AddPromotion("consoleuxpromotionapproved", DateTimeOffset.Now.AddDays(3), DateTimeOffset.Now.AddDays(30)); promotionFriendlyId.Should().NotBeNullOrEmpty(); var promotionId = $"Entity-Promotion-{promotionFriendlyId}"; AddQualification(promotionId); AddBenefit(promotionId); ApprovePromotion(promotionId, promotionFriendlyId); // RETRACT var view = Proxy.GetValue(AuthoringContainer.GetEntityView(promotionId, "SetPromotionApprovalStatus", "RetractPromotion", string.Empty)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); view.Properties.FirstOrDefault(p => p.Name.Equals("Comment")).Value = "retract comment"; var result = Proxy.DoCommand(AuthoringContainer.DoAction(view)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Messages.Any(m => m.Code.Equals("information", StringComparison.OrdinalIgnoreCase)).Should().BeTrue(); var promotion = Promotions.GetPromotion(promotionFriendlyId); promotion.Components.OfType <ApprovalComponent>().FirstOrDefault()?.Status.Should().Be("Draft"); // DISABLE //// ADD PROMOTION TO BE DISABLE promotionFriendlyId = AddPromotion("consoleuxpromotiondisabled", DateTimeOffset.Now.AddDays(-3), DateTimeOffset.Now.AddDays(30)); promotionFriendlyId.Should().NotBeNullOrEmpty(); promotionId = $"Entity-Promotion-{promotionFriendlyId}"; AddQualification(promotionId); AddBenefit(promotionId); ApprovePromotion(promotionId, promotionFriendlyId); view = Proxy.GetValue(AuthoringContainer.GetEntityView(promotionId, "SetPromotionApprovalStatus", "DisablePromotion", string.Empty)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); view.Properties.FirstOrDefault(p => p.Name.Equals("Comment")).Value = "disable comment"; result = Proxy.DoCommand(AuthoringContainer.DoAction(view)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Messages.Any(m => m.Code.Equals("information", StringComparison.OrdinalIgnoreCase)).Should().BeTrue(); promotion = Promotions.GetPromotion(promotionFriendlyId); promotion.Components.OfType <ApprovalComponent>().FirstOrDefault()?.Status.Should().Be("Approved"); promotion.Policies.OfType <DisabledPolicy>().FirstOrDefault().Should().NotBeNull(); var detailsView = Proxy.GetValue(AuthoringContainer.GetEntityView(promotionId, "Details", string.Empty, string.Empty)); detailsView.Should().NotBeNull(); detailsView.Policies.Should().NotBeEmpty(); detailsView.Policies.OfType <ActionsPolicy>().FirstOrDefault().Should().NotBeNull(); detailsView.Policies.OfType <ActionsPolicy>().FirstOrDefault()?.Actions.FirstOrDefault(a => a.Name.Equals("DisablePromotion")).Should().NotBeNull(); detailsView.Policies.OfType <ActionsPolicy>().FirstOrDefault()?.Actions.FirstOrDefault(a => a.Name.Equals("DisablePromotion"))?.IsEnabled.Should().BeFalse(); }