public void Visible_Should_Throw_ArgumentNullException_If_Categories_Is_Null() { IQueryable<Category> categories = null; var ex = Assert.Throws<ArgumentNullException>(() => CategoryExtensions.Visible(categories)); Assert.Equal(nameof(categories), ex.ParamName); }
public void Visible_Should_Return_Only_Categories_Where_Today_Date_Is_Between_VisibleFrom_And_VisibleTo() { var c1 = Category.Create("c1", "c1", "c1"); var c2 = Category.Create("c2", "c2", "c2"); var c3 = Category.Create("c3", "c3", "c3"); var today = DateTime.Today; c1.SetAsVisible(); c2.SetAsVisible(today, today.AddDays(2)); IQueryable<Category> categories = new Category[] { c1, c2, c3 }.AsQueryable(); var visibleCategories = CategoryExtensions.Visible(categories); var now = DateTime.Now; Assert.Equal(2, visibleCategories.Count()); Assert.True(visibleCategories.All(c => c.IsVisible && c.VisibleFrom <= now && (!c.VisibleTo.HasValue || c.VisibleTo >= now))); }