public void Apply_Returns_The_Intersection_Of_All_Provided_Queries() { //Arrange var organizationId = A <int>(); var subQuery1 = new QueryByAccessModifier <ItSystem>(AccessModifier.Local); var subQuery2 = new QueryByOrganizationId <ItSystem>(organizationId); var included = CreateItSystem(organizationId, AccessModifier.Local); var excluded1 = CreateItSystem(organizationId, AccessModifier.Public); var excluded2 = CreateItSystem(A <int>(), AccessModifier.Local); var input = new[] { included, excluded1, excluded2 }.AsQueryable(); var sut = new IntersectionQuery <ItSystem>(new List <IDomainQuery <ItSystem> >() { subQuery1, subQuery2 }); //Act var result = sut.Apply(input).ToList(); //Assert var itSystem = Assert.Single(result); Assert.Same(included, itSystem); }
public void Apply_Removes_Items_Without_OrganizationIdMatch() { //Arrange var organizationId = A <int>(); var included1 = CreateItSystem(organizationId); var included2 = CreateItSystem(organizationId); var excluded = CreateItSystem(A <int>()); var input = new[] { included1, included2, excluded }.AsQueryable(); var sut = new QueryByOrganizationId <ItSystem>(organizationId); //Act var result = sut.Apply(input).ToList(); //Assert Assert.Equal(2, result.Count); Assert.Contains(included1, result); Assert.Contains(included2, result); }