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)); }