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 void SetSnapshotApprovalStatus() { Console.WriteLine("Begin SetSnapshotApprovalStatusUX"); var container = new CsrSheila().Context.ShopsContainer(); var result = Proxy.DoCommand(container.AddPriceCard(BookId, "consoleapprovalpricecard", "displayname", "description")); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var cardFriendlyId = result.Models.OfType <PriceCardAdded>().FirstOrDefault()?.PriceCardFriendlyId; cardFriendlyId.Should().NotBeNullOrEmpty(); var cardId = $"Entity-PriceCard-{cardFriendlyId}"; var snapshotDate = DateTimeOffset.Now.AddDays(3); result = Proxy.DoCommand(container.AddPriceSnapshot(cardId, snapshotDate)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); var snapshotId = result.Models.OfType <PriceSnapshotAdded>().FirstOrDefault()?.PriceSnapshotId; result = Proxy.DoCommand(ShopsContainer.AddPriceTier(cardId, snapshotId, "USD", 3, 13)); result.Messages.Any(m => m.Code.Equals("error", StringComparison.OrdinalIgnoreCase)).Should().BeFalse(); result.Models.OfType <PriceTierAdded>().FirstOrDefault().Should().NotBeNull(); // REQUEST APPROVAL var view = Proxy.GetValue(container.GetEntityView(cardId, "SetSnapshotApprovalStatus", "RequestSnapshotApproval", snapshotId)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); view.Properties.FirstOrDefault(p => p.Name.Equals("Comment")).Value = "request approval comment"; result = Proxy.DoCommand(container.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 card = Pricing.GetPriceCard(cardFriendlyId); var snapshot = card.Snapshots.FirstOrDefault(s => s.Id.Equals(snapshotId, StringComparison.OrdinalIgnoreCase)); snapshot.Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault().Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault()?.Status.Should().Be("ReadyForApproval"); // REJECT view = Proxy.GetValue(container.GetEntityView(cardId, "SetSnapshotApprovalStatus", "RejectSnapshot", snapshotId)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); view.Properties.FirstOrDefault(p => p.Name.Equals("Comment")).Value = "reject comment"; result = Proxy.DoCommand(container.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(); card = Pricing.GetPriceCard(cardFriendlyId); snapshot = card.Snapshots.FirstOrDefault(s => s.Id.Equals(snapshotId, StringComparison.OrdinalIgnoreCase)); snapshot.Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault().Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault()?.Status.Should().Be("Draft"); view = Proxy.GetValue(ShopsContainer.GetEntityView(cardId, "SetSnapshotApprovalStatus", "RequestSnapshotApproval", snapshotId)); view.Properties.FirstOrDefault(p => p.Name.Equals("Comment")).Value = "request approval second time comment"; result = Proxy.DoCommand(container.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(); // APPROVE view = Proxy.GetValue(container.GetEntityView(cardId, "SetSnapshotApprovalStatus", "ApproveSnapshot", snapshotId)); view.Should().NotBeNull(); view.Policies.Should().BeEmpty(); view.Properties.Should().NotBeEmpty(); view.ChildViews.Should().BeEmpty(); view.Properties.FirstOrDefault(p => p.Name.Equals("Comment")).Value = "approve comment"; result = Proxy.DoCommand(container.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(); card = Pricing.GetPriceCard(cardFriendlyId); snapshot = card.Snapshots.FirstOrDefault(s => s.Id.Equals(snapshotId, StringComparison.OrdinalIgnoreCase)); snapshot.Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault().Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault()?.Status.Should().Be("Approved"); // RETRACT view = Proxy.GetValue(container.GetEntityView(cardId, "SetSnapshotApprovalStatus", "RetractSnapshot", snapshotId)); 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"; result = Proxy.DoCommand(container.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(); card = Pricing.GetPriceCard(cardFriendlyId); snapshot = card.Snapshots.FirstOrDefault(s => s.Id.Equals(snapshotId, StringComparison.OrdinalIgnoreCase)); snapshot.Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault().Should().NotBeNull(); snapshot?.SnapshotComponents.OfType <ApprovalComponent>().FirstOrDefault()?.Status.Should().Be("Draft"); }