From 21476d1fb0e02a836d4ea1bb15f798c8f4b7cec0 Mon Sep 17 00:00:00 2001 From: "Katarina Valalikova (katkav)" Date: Mon, 12 Oct 2015 15:57:11 +0200 Subject: [PATCH] Test for and filter (Ref + ref) --- .../midpoint/repo/sql/SearchTest.java | 54 +++++++++++++++++++ .../src/test/resources/basic/objects.xml | 8 +++ 2 files changed, 62 insertions(+) diff --git a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java index 2350c9d5762..f4c74871176 100644 --- a/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java +++ b/repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/SearchTest.java @@ -23,6 +23,7 @@ import com.evolveum.midpoint.prism.match.PolyStringStrictMatchingRule; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.polystring.PolyString; +import com.evolveum.midpoint.prism.query.AndFilter; import com.evolveum.midpoint.prism.query.EqualFilter; import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; @@ -34,7 +35,9 @@ import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; @@ -209,4 +212,55 @@ public void roleMembershipSearchTest() throws Exception { AssertJUnit.assertTrue(result.isSuccess()); AssertJUnit.assertEquals("Should find two users", 2, users.size()); } + + @Test + public void roleAssignmentSearchTest() throws Exception { + PrismReferenceValue r456 = new PrismReferenceValue("r123", RoleType.COMPLEX_TYPE); + RefFilter rFilter = RefFilter.createReferenceEqual(new ItemPath(UserType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF), UserType.class, prismContext, r456); + + + ObjectQuery query = ObjectQuery.createObjectQuery(rFilter); + + OperationResult result = new OperationResult("search"); + List> users = repositoryService.searchObjects(UserType.class, query, null, result); + result.recomputeStatus(); + AssertJUnit.assertTrue(result.isSuccess()); + AssertJUnit.assertEquals("Should find one user", 1, users.size()); + AssertJUnit.assertEquals("Wrong user name", "atestuserX00002", users.get(0).getName().getOrig()); + + } + + @Test + public void orgAssignmentSearchTest() throws Exception { + + PrismReferenceValue org = new PrismReferenceValue("00000000-8888-6666-0000-100000000085", OrgType.COMPLEX_TYPE); + RefFilter oFilter = RefFilter.createReferenceEqual(new ItemPath(UserType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF), UserType.class, prismContext, org); + ObjectQuery query = ObjectQuery.createObjectQuery(oFilter); + + OperationResult result = new OperationResult("search"); + List> users = repositoryService.searchObjects(UserType.class, query, null, result); + result.recomputeStatus(); + AssertJUnit.assertTrue(result.isSuccess()); + AssertJUnit.assertEquals("Should find one user", 1, users.size()); + AssertJUnit.assertEquals("Wrong user name", "atestuserX00002", users.get(0).getName().getOrig()); + + } + + @Test(enabled = false) + public void roleAndOrgAssignmentSearchTest() throws Exception { + PrismReferenceValue r456 = new PrismReferenceValue("r123", RoleType.COMPLEX_TYPE); + RefFilter rFilter = RefFilter.createReferenceEqual(new ItemPath(UserType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF), UserType.class, prismContext, r456); + + PrismReferenceValue org = new PrismReferenceValue("00000000-8888-6666-0000-100000000085", OrgType.COMPLEX_TYPE); + RefFilter oFilter = RefFilter.createReferenceEqual(new ItemPath(UserType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF), UserType.class, prismContext, org); + ObjectQuery query = ObjectQuery.createObjectQuery(AndFilter.createAnd(rFilter, oFilter)); + + OperationResult result = new OperationResult("search"); + List> users = repositoryService.searchObjects(UserType.class, query, null, result); + result.recomputeStatus(); + AssertJUnit.assertTrue(result.isSuccess()); + AssertJUnit.assertEquals("Should find one user", 1, users.size()); + AssertJUnit.assertEquals("Wrong user name", "atestuserX00002", users.get(0).getName().getOrig()); + + } } diff --git a/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml b/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml index 6fbc729b66e..3ec8f86b7b3 100644 --- a/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml +++ b/repo/repo-sql-impl-test/src/test/resources/basic/objects.xml @@ -74,6 +74,14 @@ 10 + + + + + + + + Test UserX00002