public void TestBasicAndSpecification() { var bookList = DatabaseStub.Instance.Books; var bookName = "The Phoenix Project"; var specification = new BookSpecification(); specification .BooksSince(DateTime.Now.AddYears(-10)) .TitleStartingWith(bookName); var expression = specification.Create(); var result = bookList.FindAll(x => expression.SatisfiedBy(x)); Assert.IsTrue(result.Count == 1); Assert.IsTrue(result.FirstOrDefault()?.Title.StartsWith(bookName) ?? false); }
public void TestBasicOrSpecification() { var bookList = DatabaseStub.Instance.Books; var bookName = "The Goal"; var specification = new BookSpecification(); specification .BooksSince(DateTime.Now.AddYears(-10)) .Or() .TitleStartingWith(bookName); var expression = specification.Create(); var result = bookList.FindAll(x => expression.SatisfiedBy(x)); Assert.IsTrue(result.Count > 1); Assert.IsTrue(result.Exists(x => x.Title.StartsWith(bookName))); }