public async Task UpdateStausTestPositive(AccountRoles accountRole, OrderStatuses previousOrderStatus, OrderStatuses nextStatus) { //Arrange var owner = EntitiesCreationService.GetOwner(); owner.HashedPassword = "******"; var restaurant = EntitiesCreationService.GetRestaurant(); owner.Restaurants = new List <Restaurant>() { restaurant }; owner = await accountsRepository.AddAsync(owner); var account = EntitiesCreationService.GetOwner(); account.HashedPassword = "******"; account.Role = accountRole; var order = EntitiesCreationService.GetOrder(); var orderStatus = EntitiesCreationService.GetOrderStatus(); orderStatus.Status = previousOrderStatus; order.OrderStatuses = new List <OrderStatus>() { orderStatus }; order.RestaurantId = owner.Restaurants[0].RestaurantId; account.Orders = new List <Order>() { order }; account = await accountsRepository.AddAsync(account); try { //Act await orderService.UpdateStaus(account.AccountId, account.Orders[0].EntityId, nextStatus); //Assert var statuses = ordersStatusRepository.GetAllStatusesForOrder(account.Orders[0].EntityId); Assert.Contains(statuses, s => s.Status == nextStatus); var orders = ordersRepository.GetAllOrdersForRegularUser(account.EntityId); Assert.Equal(orders[0].LatestOrderStatus, nextStatus); } finally { //Clear accountsRepository.Remove(account); accountsRepository.Remove(owner); } }
private bool IsNextStep(OrderStatuses newOrderStatus, int orderId) { var orderStatuses = ordersStatusRepository.GetAllStatusesForOrder(orderId); if (orderStatuses.Any(os => os.Status == OrderStatuses.Canceled)) { return(false); } var curStatus = orderStatuses.Max(os => os.Status); if (curStatus == OrderStatuses.Placed) { return(newOrderStatus == OrderStatuses.Canceled || newOrderStatus == OrderStatuses.Processed); } return(curStatus + 1 == newOrderStatus); }
public IActionResult GetOrderStatuses([FromQuery] int orderId) { var orderStatuses = ordersStatusRepository.GetAllStatusesForOrder(orderId); return(Ok(orderStatuses)); }