public void SundayOrder_WithLeadTimeOfOneDay_HasDespatchDateOfTuesday() { var orderDate = new DateTime(2020, 10, 4); var date = _controller.Get(DespatchDateRequest.SingleProduct(1, orderDate)); date.Date.ShouldBe(new DateTime(2020, 10, 6)); }
public void FridayOrder_WithLeadTimeOfElevenDays_HasDespatchDateOfThirdMonday() { var orderDate = new DateTime(2020, 10, 2); var date = _controller.Get(DespatchDateRequest.SingleProduct(10, orderDate)); date.Date.ShouldBe(new DateTime(2020, 10, 19)); }
public DespatchDate GetDespatchDate(DespatchDateRequest request) { var maxLeadTimeDays = request.ProductIds .Select(productId => _productRepository.GetProductLeadTime(productId)) .Max(); return(new DespatchDate { Date = request.OrderDate.AddWorkingDays(maxLeadTimeDays) }); }
public DespatchDate Get(DespatchDateRequest request) { return(_orderService.GetDespatchDate(request)); }
public void MondayOrder_WithLeadTimeOfTwoDays_HasDespathDateOfWednesday() { var date = _controller.Get(DespatchDateRequest.SingleProduct(2, _mondayOrderDate)); date.Date.Date.ShouldBe(new DateTime(2020, 10, 7)); }