public void ShouldWorkWithEnumerable() { var users = new[] { new User { Login = "******", IsDeleted = false }, new User { Login = "******", IsDeleted = true }, }; var andSpec = new UserAndSpec("admin"); users.Where(andSpec.IsSatisfiedBy).Single(); users.Where(andSpec).Single(); }
public void ShouldSupportComposition() { var activeAdmin = new User { Login = "******", IsDeleted = false }; var deletedAdmin = new User { Login = "******", IsDeleted = true }; var andSpec = new UserAndSpec("admin"); Assert.IsTrue(andSpec.IsSatisfiedBy(activeAdmin)); Assert.IsFalse(andSpec.IsSatisfiedBy(deletedAdmin)); var orSpec = new UserOrSpec("admin"); Assert.IsTrue(orSpec.IsSatisfiedBy(activeAdmin)); Assert.IsTrue(orSpec.IsSatisfiedBy(deletedAdmin)); }
public void ShouldWorkWithQueryable() { using (var context = CreateSqliteDbContext()) { context.Users.AddRange(new[] { new User { Login = "******", IsDeleted = false }, new User { Login = "******", IsDeleted = true }, }); context.SaveChanges(); var andSpec = new UserAndSpec("admin"); context.Users.Where(andSpec.ToExpression()).Single(); context.Users.Where(andSpec).Single(); } }