public void TestSplitDishesWithSuccess() { using (var context = _serviceProvider.GetService <RestaurantOrderContext>()) { var repo = new ClientOrderHistoryRepository(context); var service = new RestaurantOrderAppService(repo, _mapper); var inputOrderDto = new InputOrderDto(); inputOrderDto.ClientOrderInput = "morning, 1, 2, 3, 3, 3"; var expectedResponse = new OrderSplitedDto(); var expectedListDishes = new List <string>(); expectedListDishes.Add(" 1"); expectedListDishes.Add(" 2"); expectedListDishes.Add(" 3"); expectedListDishes.Add(" 3"); expectedListDishes.Add(" 3"); expectedResponse.DayPeriod = DayPeriodEnum.morning; expectedResponse.DishesList = expectedListDishes; var response = service.SeparatePeriodFromDishes(inputOrderDto); Assert.Equal(expectedListDishes, response.DishesList); } }
public OrderSplitedDto SeparatePeriodFromDishes(InputOrderDto inputOrderDto) { var orderInfoDto = new OrderSplitedDto(); List <string> stringParts = inputOrderDto.ClientOrderInput.Split(',').ToList(); var dayPeriodString = stringParts.FirstOrDefault().ToLower(); Enum.TryParse(dayPeriodString, out DayPeriodEnum dayPeriodEnum); if (dayPeriodEnum != DayPeriodEnum.morning && dayPeriodEnum != DayPeriodEnum.night) { return(null); } orderInfoDto.DayPeriod = dayPeriodEnum; stringParts.RemoveAt(0); if (stringParts != null && stringParts.Count() != 0 && stringParts.FirstOrDefault().Trim() != "") { orderInfoDto.DishesList = stringParts; } else { return(null); } return(orderInfoDto); }
public void TestCreateOrderOutputWithError() { using (var context = _serviceProvider.GetService <RestaurantOrderContext>()) { var repo = new ClientOrderHistoryRepository(context); var service = new RestaurantOrderAppService(repo, _mapper); var input = "night, 1, 1"; var orderSplitedDto = new OrderSplitedDto(); var listDishes = new List <string>(); listDishes.Add("1"); listDishes.Add("1"); orderSplitedDto.DayPeriod = DayPeriodEnum.night; orderSplitedDto.DishesList = listDishes; var response = service.CreateOrderOutput(orderSplitedDto, input); Assert.Equal("steak, error", response.ClientOrderOutput); } }
public ClientOrderHistoryDto CreateOrderOutput(OrderSplitedDto orderInfoDto, string clientOrderInput) { var clientOrderHistoryDto = new ClientOrderHistoryDto(); clientOrderHistoryDto.ClientOrderInput = clientOrderInput; if (orderInfoDto.DayPeriod == DayPeriodEnum.morning) { clientOrderHistoryDto.ClientOrderOutput = CreateMorningDishesFromInput(orderInfoDto.DishesList); return(clientOrderHistoryDto); } else if (orderInfoDto.DayPeriod == DayPeriodEnum.night) { clientOrderHistoryDto.ClientOrderOutput = CreateNightDishesFromInput(orderInfoDto.DishesList); return(clientOrderHistoryDto); } else { clientOrderHistoryDto.ClientOrderOutput = "error"; return(clientOrderHistoryDto); } }