public void GetDeliveryDates_EmptyPostalCode_ReturnsEmptyList() { var products = new List <Product>() { new Product { ProductId = 1, Name = "Gurka", ProductType = ProductType.Normal, DaysInAdvance = 2, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Tuesday, DayOfWeek.Sunday, DayOfWeek.Friday } }, new Product { ProductId = 2, Name = "Äpple", ProductType = ProductType.Normal, DaysInAdvance = 3, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Tuesday, DayOfWeek.Sunday, DayOfWeek.Friday } }, }; var deliveryDateService = new DeliveryDateService(); var result = deliveryDateService.GetDeliveryDates("", products); Assert.Empty(result); }
public void GetDeliveryDates_ValidListOfProducts_ReturnsListOfDelvieryDates() { var products = new List <Product>() { new Product { ProductId = 1, Name = "Gurka", ProductType = ProductType.Normal, DaysInAdvance = 2, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Tuesday, DayOfWeek.Sunday, DayOfWeek.Friday } }, new Product { ProductId = 2, Name = "Äpple", ProductType = ProductType.Normal, DaysInAdvance = 3, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Tuesday, DayOfWeek.Sunday, DayOfWeek.Friday } }, }; var deliveryDateService = new DeliveryDateService(); var result = deliveryDateService.GetDeliveryDates("54143", products); Assert.NotEmpty(result); }
public void GetAvailableDeliveryDays_NoValidDays_ReturnsEmptyListOfDays() { var products = new List <Product>() { new Product { ProductId = 1, Name = "Gurka", ProductType = ProductType.Normal, DaysInAdvance = 2, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Tuesday } }, new Product { ProductId = 2, Name = "Äpple", ProductType = ProductType.Normal, DaysInAdvance = 3, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Monday } }, }; var deliveryDateService = new DeliveryDateService(); var result = deliveryDateService.GetAvailableDeliveryDays(products); Assert.Empty(result); }
public void GetDeliveryDates_ExternalAndTemporaryProducts_ReturnsEmptyList() { var products = new List <Product>() { new Product { ProductId = 1, Name = "Gurka", ProductType = ProductType.External, DaysInAdvance = 7, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Sunday, DayOfWeek.Friday } }, new Product { ProductId = 1, Name = "Gurka", ProductType = ProductType.Temporary, DaysInAdvance = 2, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Sunday, DayOfWeek.Friday } }, }; var deliveryDateService = new DeliveryDateService(); var deliveryDates = deliveryDateService.GetDeliveryDates("54146", products); Assert.Empty(deliveryDates); }
public void GetAvailableDeliveryDays_OnlyMonday_ReturnsListOfDays() { var products = new List <Product>() { new Product { ProductId = 1, Name = "Gurka", ProductType = ProductType.Normal, DaysInAdvance = 2, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Monday, DayOfWeek.Tuesday } }, new Product { ProductId = 2, Name = "Äpple", ProductType = ProductType.Normal, DaysInAdvance = 3, DeliveryDays = new List <DayOfWeek>() { DayOfWeek.Monday } }, }; var deliveryDateService = new DeliveryDateService(); var result = deliveryDateService.GetAvailableDeliveryDays(products); Assert.True(result.Contains(DayOfWeek.Monday) && !result.Contains(DayOfWeek.Tuesday)); }
public void GetDeliveryDates_EmptyListOfProducts_ReturnsEmptyList() { var deliveryDateService = new DeliveryDateService(); var result = deliveryDateService.GetDeliveryDates("54146", new List <Product>()); Assert.Empty(result); }
static void Main(string[] args) { var productRepository = new ProductRepository(); var validProducts = productRepository.ValidateProducts(productRepository.GetProducts()); if (validProducts) { List <ProductDeliveryDate> deliveryDates = new DeliveryDateService() .GetDeliveryDates("54146", productRepository.GetProducts()); var json = JsonConvert.SerializeObject(deliveryDates, Formatting.Indented); Console.Write(json); } else { Console.WriteLine("The product list was not valid."); } }