示例#1
0
        public void And_AllSpecificationsArePersistenceAware_ShouldReturnPersistenceAwareSpecification()
        {
            //Assert
            var specification1 = new TestPersistenceAwareSpec <TestEntity>(x => x.A == 1);
            var specification2 = new TestPersistenceAwareSpec <TestEntity>(x => x.B == 2);

            //Act
            var combinedSpec = SpecificationLogic.And(specification1, specification2);

            //Assert
            Assert.That(combinedSpec, Is.AssignableTo <PersistenceAndSpecification <TestEntity> >());
        }
        public void IsSatisfiedBy_ShouldReturnSameResultAs_GetConditionExpressionCall()
        {
            //Arrange
            var entity        = new TestEntity();
            var specification = new TestPersistenceAwareSpec <TestEntity>(x => x.Id != Guid.Empty);

            AssertResultsAreEqual(specification, entity);

            entity.WithId(Guid.NewGuid());

            AssertResultsAreEqual(specification, entity);
        }
 private static void AssertResultsAreEqual(TestPersistenceAwareSpec <TestEntity> specification, TestEntity entity)
 {
     Assert.That(specification.IsSatisfiedBy(entity) ==
                 specification.GetConditionExpression().Compile().Invoke(entity));
 }