public async Task StartAsync() { var orderId = Guid.NewGuid(); var order = await OrderSteps.CreateOrder(_orderServiceApi, orderId, _context.StoreId); var menuItems = _menuAvailabilityHelper.GetAvailableMenuItems(); var menuItemsCount = menuItems.Count; var i = new Random().Next(menuItemsCount); var menuitem1 = menuItems.Skip(i).First(); var orderitem1 = new RestaurantOrderItemDto() { OrderItemId = Guid.NewGuid(), MenuItemId = menuitem1.MenuItemId, MenuItemVersionIds = new VersionIdsDto() { ItemVersionId = menuitem1.MenuItemVersionId, PriceListItemVersionId = menuitem1.PriceListItemVersionId, }, OrderId = order.OrderId, CommonModifiers = new List <OrderItemCommonModifierDto>(), RelatedModifiers = new List <OrderItemRelatedModifierDto>(), Quantity = 1, CalculatedPrice = menuitem1.Price }; var response2 = await _orderServiceApi.AddOrderItem(orderitem1); var response3 = await _orderServiceApi.GetOrderInfo(order.OrderId); Assert.AreEqual(1, response3.Value.OrderItemsCosts.Count); var cost = response3.Value.OrderItemsCosts.Sum(p => p.Value); var discounts = await _terminalApi.GetAllDiscounts(_context.StoreId); Assert.IsTrue(discounts.Value.Any(a => a.IsActive && a.Value > 0)); var discount = discounts.Value.First(a => a.IsActive && a.Value > 0); var addDiscountResponse = await _orderServiceApi.AddDiscount( new AddDiscountDto() { DiscountVersionId = discount.DiscountVersionId, IsAggregate = discount.BitSettings.HasFlag(DiscountSettings.IsAggregatable), Type = DiscountType.ManualDiscount }); Assert.IsNull(addDiscountResponse.PostprocessingType); await OrderSteps.PayAndClose(_orderServiceApi, order.OrderId, cost); }