@Test
public void testReindex() throws Exception {
final String TEST_NAME = "testReindex";
TestUtil.displayTestTitle(TEST_NAME);
OperationResult result = new OperationResult(TEST_NAME);
PrismObject<UserType> user = prismContext.createObjectable(UserType.class)
.name("unstable")
.asPrismObject();
ItemPath UNSTABLE_PATH = ItemPath.create(UserType.F_EXTENSION, "unstable");
PrismPropertyDefinition<String> unstableDef = user.getDefinition().findPropertyDefinition(UNSTABLE_PATH);
PrismProperty<String> unstable = unstableDef.instantiate();
unstable.setRealValue("hi");
user.addExtensionItem(unstable);
String oid = repositoryService.addObject(user, null, result);
unstableDef.toMutable().setIndexed(true);
repositoryService.modifyObject(UserType.class, oid, emptySet(), getModifyOptions(), result);
ObjectQuery query = prismContext.queryFor(UserType.class)
.item(UNSTABLE_PATH).eq("hi")
.build();
int count = repositoryService.countObjects(UserType.class, query, null, result);
assertEquals("Wrong # of objects found", 1, count);
}