use of com.evolveum.midpoint.repo.sqale.qmodel.focus.MUser in project midpoint by Evolveum.
the class SqaleRepoModifyObjectTest method test130ChangePolyStringAttribute.
@Test
public void test130ChangePolyStringAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
OperationResult result = createOperationResult();
given("delta with polystring nickname change for user 1");
ObjectDelta<UserType> delta = prismContext.deltaFor(UserType.class).item(UserType.F_NICK_NAME).add(new PolyString("nick-name")).asObjectDelta(user1Oid);
and("user row previously having dead property empty (null)");
MUser originalRow = selectObjectByOid(QUser.class, user1Oid);
assertThat(originalRow.nickNameOrig).isNull();
assertThat(originalRow.nickNameNorm).isNull();
when("modifyObject is called");
repositoryService.modifyObject(UserType.class, user1Oid, delta.getModifications(), result);
then("operation is successful");
assertThatOperationResult(result).isSuccess();
and("serialized form (fullObject) is updated");
UserType userObject = repositoryService.getObject(UserType.class, user1Oid, null, result).asObjectable();
assertThat(userObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
PolyStringType nickName = userObject.getNickName();
assertThat(nickName.getOrig()).isEqualTo("nick-name");
assertThat(nickName.getNorm()).isEqualTo("nickname");
and("externalized column is updated");
MUser row = selectObjectByOid(QUser.class, user1Oid);
assertThat(row.version).isEqualTo(originalRow.version + 1);
assertThat(row.nickNameOrig).isEqualTo("nick-name");
assertThat(row.nickNameNorm).isEqualTo("nickname");
}
use of com.evolveum.midpoint.repo.sqale.qmodel.focus.MUser in project midpoint by Evolveum.
the class SqaleRepoModifyObjectTest method test311DeleteAssignmentByCid.
@Test
public void test311DeleteAssignmentByCid() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
OperationResult result = createOperationResult();
MUser originalRow = selectObjectByOid(QUser.class, user1Oid);
QAssignment<?> a = QAssignmentMapping.getAssignmentMapping().defaultAlias();
int origAssignmentCount = (int) count(a, a.ownerOid.eq(UUID.fromString(user1Oid)));
given("delta deleting assignments using CID for user 1");
ObjectDelta<UserType> delta = prismContext.deltaFor(UserType.class).item(UserType.F_ASSIGNMENT).delete(new AssignmentType(prismContext).id(// last added assignment
originalRow.containerIdSeq - 1)).asObjectDelta(user1Oid);
when("modifyObject is called");
repositoryService.modifyObject(UserType.class, user1Oid, delta.getModifications(), result);
then("operation is successful");
assertThatOperationResult(result).isSuccess();
and("serialized form (fullObject) is updated");
UserType userObject = repositoryService.getObject(UserType.class, user1Oid, null, result).asObjectable();
assertThat(userObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
List<AssignmentType> assignments = userObject.getAssignment();
assertThat(assignments).hasSize(origAssignmentCount - 1).noneMatch(ass -> ass.getId().equals(originalRow.containerIdSeq - 1));
and("new assignment row is created");
MUser row = selectObjectByOid(QUser.class, user1Oid);
assertThat(row.version).isEqualTo(originalRow.version + 1);
// no need for change
assertThat(row.containerIdSeq).isEqualTo(originalRow.containerIdSeq);
List<MAssignment> aRows = select(a, a.ownerOid.eq(UUID.fromString(user1Oid)));
assertThat(aRows).hasSize(assignments.size()).noneMatch(aRow -> aRow.cid.equals(originalRow.containerIdSeq - 1));
}
Aggregations