public void SouldConsumePlainObjects() { var activeUser = new User { IsDeleted = false }; var deletedUser = new User { IsDeleted = true }; var spec = new UserActiveSpec(); Assert.IsTrue(spec.IsSatisfiedBy(activeUser)); Assert.IsFalse(spec.IsSatisfiedBy(deletedUser)); }
public void ShouldSupportConditionalLogic() { var activeAdmin = new User { Login = "******", IsDeleted = false }; var deletedAdmin = new User { Login = "******", IsDeleted = true }; var andSpec = new UserActiveSpec() && new UserByLoginSpec("admin"); Assert.IsTrue(andSpec.IsSatisfiedBy(activeAdmin)); Assert.IsFalse(andSpec.IsSatisfiedBy(deletedAdmin)); var orSpec = new UserActiveSpec() || new UserByLoginSpec("admin"); Assert.IsTrue(orSpec.IsSatisfiedBy(activeAdmin)); Assert.IsTrue(orSpec.IsSatisfiedBy(deletedAdmin)); var notSpec = !new UserByLoginSpec("admin"); Assert.IsFalse(notSpec.IsSatisfiedBy(activeAdmin)); Assert.IsFalse(notSpec.IsSatisfiedBy(deletedAdmin)); }
public UserOrSpec(string login) { Predicate = new UserActiveSpec() || new UserByLoginSpec(login); }