Ejemplo n.º 1
0
        public void AndSpecificationTestAndSpecification()
        {
            // arrange
            var specFirstName = new AdHocSpecification <Sample>(x => x.FirstName.StartsWith("J"));
            var specLastName  = new AdHocSpecification <Sample>(x => x.LastName.StartsWith("R"));
            var spec          = new AndSpecification <Sample>(specFirstName, specLastName);

            // act
            var resultFirstName = TestData.List.Where(specFirstName.IsSatisfied()).OrderBy(c => c.FirstName);
            var resultLastName  = TestData.List.Where(specLastName.IsSatisfied()).OrderBy(c => c.FirstName);
            var result          = TestData.List.Where(spec.IsSatisfied()).OrderBy(c => c.FirstName);

            // assert
            Assert.That(resultFirstName.Count(), Is.EqualTo(2));
            Assert.That(resultFirstName.First().FirstName, Is.EqualTo("Jose"));
            Assert.That(resultFirstName.Last().FirstName, Is.EqualTo("Julian"));
            Assert.That(resultLastName.Count(), Is.EqualTo(2));
            Assert.That(resultLastName.First().LastName, Is.EqualTo("Rodriguez"));
            Assert.That(resultLastName.Last().LastName, Is.EqualTo("Rivera"));
            Assert.That(result.Count(), Is.EqualTo(1));
            Assert.That(result.First().FirstName, Is.EqualTo("Jose"));
            Assert.That(result.First().LastName, Is.EqualTo("Rodriguez"));
        }