Search in sources :

Example 11 with MTask

use of com.evolveum.midpoint.repo.sqale.qmodel.task.MTask in project midpoint by Evolveum.

the class SqaleRepoModifyObjectTest method test140ChangeReferenceAttribute.

@Test
public void test140ChangeReferenceAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    given("delta with owner reference change for task 1 adding value");
    UUID ownerTaskOid = UUID.randomUUID();
    QName ownerTaskRelation = QName.valueOf("{https://random.org/ns}owner-task-rel");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_OWNER_REF).add(new ObjectReferenceType().oid(ownerTaskOid.toString()).type(UserType.COMPLEX_TYPE).relation(ownerTaskRelation)).asObjectDelta(task1Oid);
    when("modifyObject is called");
    repositoryService.modifyObject(TaskType.class, task1Oid, delta.getModifications(), result);
    then("operation is successful, repository doesn't check target existence");
    assertThatOperationResult(result).isSuccess();
    and("serialized form (fullObject) is updated");
    TaskType taskObject = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(taskObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    ObjectReferenceType ownerRef = taskObject.getOwnerRef();
    assertThat(ownerRef).isNotNull();
    assertThat(ownerRef.getOid()).isEqualTo(ownerTaskOid.toString());
    assertThat(ownerRef.getType()).isEqualTo(UserType.COMPLEX_TYPE);
    assertThat(ownerRef.getRelation()).isEqualTo(ownerTaskRelation);
    and("externalized column is updated");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertThat(row.ownerRefTargetOid).isEqualTo(ownerTaskOid);
    assertThat(row.ownerRefTargetType).isEqualTo(MObjectType.USER);
    assertCachedUri(row.ownerRefRelationId, ownerTaskRelation);
}
Also used : MTask(com.evolveum.midpoint.repo.sqale.qmodel.task.MTask) QName(javax.xml.namespace.QName) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test) SqaleRepoBaseTest(com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)

Example 12 with MTask

use of com.evolveum.midpoint.repo.sqale.qmodel.task.MTask in project midpoint by Evolveum.

the class SqaleRepoModifyObjectTest method test146ChangeEnumAttribute.

@Test
public void test146ChangeEnumAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    given("delta with execution status change for task 1 adding value");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_EXECUTION_STATE).add(TaskExecutionStateType.SUSPENDED).asObjectDelta(task1Oid);
    when("modifyObject is called");
    repositoryService.modifyObject(TaskType.class, task1Oid, delta.getModifications(), result);
    then("operation is successful");
    assertThatOperationResult(result).isSuccess();
    and("serialized form (fullObject) is updated");
    TaskType taskObject = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(taskObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    assertThat(taskObject.getExecutionState()).isEqualTo(TaskExecutionStateType.SUSPENDED);
    and("externalized column is updated");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertThat(row.executionState).isEqualTo(TaskExecutionStateType.SUSPENDED);
}
Also used : MTask(com.evolveum.midpoint.repo.sqale.qmodel.task.MTask) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test) SqaleRepoBaseTest(com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)

Example 13 with MTask

use of com.evolveum.midpoint.repo.sqale.qmodel.task.MTask in project midpoint by Evolveum.

the class SqaleRepoAddDeleteObjectTest method test830Task.

// TODO test for focus' related entities?
@Test
public void test830Task() throws Exception {
    OperationResult result = createOperationResult();
    given("task");
    String objectName = "task" + getTestNumber();
    UUID objectRefOid = UUID.randomUUID();
    UUID ownerRefOid = UUID.randomUUID();
    QName relationUri = QName.valueOf("{https://some.uri}someRelation");
    var task = new TaskType(prismContext).name(objectName).taskIdentifier("task-id").binding(TaskBindingType.LOOSE).category("category").completionTimestamp(MiscUtil.asXMLGregorianCalendar(1L)).executionState(TaskExecutionStateType.RUNNABLE).result(new OperationResultType().message("result message").status(OperationResultStatusType.FATAL_ERROR)).handlerUri("handler-uri").lastRunStartTimestamp(MiscUtil.asXMLGregorianCalendar(1L)).lastRunFinishTimestamp(MiscUtil.asXMLGregorianCalendar(2L)).node("node").objectRef(objectRefOid.toString(), OrgType.COMPLEX_TYPE, relationUri).ownerRef(ownerRefOid.toString(), UserType.COMPLEX_TYPE, relationUri).parent("parent").schedule(new ScheduleType(prismContext).recurrence(TaskRecurrenceType.RECURRING)).resultStatus(OperationResultStatusType.UNKNOWN).schedulingState(TaskSchedulingStateType.READY).autoScaling(new TaskAutoScalingType(prismContext).mode(TaskAutoScalingModeType.DEFAULT)).threadStopAction(ThreadStopActionType.RESCHEDULE).waitingReason(TaskWaitingReasonType.OTHER_TASKS).dependent("dep-task-1").dependent("dep-task-2");
    when("adding it to the repository");
    repositoryService.addObject(task.asPrismObject(), null, result);
    then("it is stored and relevant attributes are in columns");
    assertThatOperationResult(result).isSuccess();
    MTask row = selectObjectByOid(QTask.class, task.getOid());
    assertThat(row.taskIdentifier).isEqualTo("task-id");
    assertThat(row.binding).isEqualTo(TaskBindingType.LOOSE);
    assertThat(row.category).isEqualTo("category");
    assertThat(row.completionTimestamp).isEqualTo(Instant.ofEpochMilli(1));
    assertThat(row.executionState).isEqualTo(TaskExecutionStateType.RUNNABLE);
    assertThat(row.fullResult).isNotNull();
    assertThat(row.resultStatus).isEqualTo(OperationResultStatusType.UNKNOWN);
    assertCachedUri(row.handlerUriId, "handler-uri");
    assertThat(row.lastRunStartTimestamp).isEqualTo(Instant.ofEpochMilli(1));
    assertThat(row.lastRunFinishTimestamp).isEqualTo(Instant.ofEpochMilli(2));
    assertThat(row.node).isEqualTo("node");
    assertThat(row.objectRefTargetOid).isEqualTo(objectRefOid);
    assertThat(row.objectRefTargetType).isEqualTo(MObjectType.ORG);
    assertCachedUri(row.objectRefRelationId, relationUri);
    assertThat(row.ownerRefTargetOid).isEqualTo(ownerRefOid);
    assertThat(row.ownerRefTargetType).isEqualTo(MObjectType.USER);
    assertCachedUri(row.ownerRefRelationId, relationUri);
    assertThat(row.parent).isEqualTo("parent");
    assertThat(row.recurrence).isEqualTo(TaskRecurrenceType.RECURRING);
    assertThat(row.schedulingState).isEqualTo(TaskSchedulingStateType.READY);
    assertThat(row.autoScalingMode).isEqualTo(TaskAutoScalingModeType.DEFAULT);
    assertThat(row.threadStopAction).isEqualTo(ThreadStopActionType.RESCHEDULE);
    assertThat(row.waitingReason).isEqualTo(TaskWaitingReasonType.OTHER_TASKS);
    assertThat(row.dependentTaskIdentifiers).containsExactlyInAnyOrder("dep-task-1", "dep-task-2");
    and("stored full object does not contain operation result");
    TaskType parsedTask = parseFullObject(row.fullObject);
    assertThat(parsedTask.getResult()).isNull();
}
Also used : QName(javax.xml.namespace.QName) MTask(com.evolveum.midpoint.repo.sqale.qmodel.task.MTask) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) UUID(java.util.UUID) Test(org.testng.annotations.Test) SqaleRepoBaseTest(com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)

Example 14 with MTask

use of com.evolveum.midpoint.repo.sqale.qmodel.task.MTask in project midpoint by Evolveum.

the class SqaleRepoModifyObjectTest method test141DeleteReferenceAttribute.

@Test
public void test141DeleteReferenceAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    given("delta with owner reference replace to null ('delete') for task 1");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_OWNER_REF).replace().asObjectDelta(task1Oid);
    and("task row previously having the owner reference value");
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    assertThat(originalRow.ownerRefTargetOid).isNotNull();
    when("modifyObject is called");
    repositoryService.modifyObject(TaskType.class, task1Oid, delta.getModifications(), result);
    then("operation is successful");
    assertThatOperationResult(result).isSuccess();
    and("serialized form (fullObject) is updated and owner ref is gone");
    TaskType taskObject = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(taskObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    assertThat(taskObject.getOwnerRef()).isNull();
    and("externalized column is set to NULL");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertThat(row.ownerRefTargetOid).isNull();
    assertThat(row.ownerRefTargetType).isNull();
    assertThat(row.ownerRefRelationId).isNull();
}
Also used : MTask(com.evolveum.midpoint.repo.sqale.qmodel.task.MTask) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test) SqaleRepoBaseTest(com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)

Example 15 with MTask

use of com.evolveum.midpoint.repo.sqale.qmodel.task.MTask in project midpoint by Evolveum.

the class SqaleRepoModifyObjectTest method test110ChangeInstantAttribute.

@Test
public void test110ChangeInstantAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    given("delta with last run start timestamp change for task 1 adding value");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_LAST_RUN_START_TIMESTAMP).add(MiscUtil.asXMLGregorianCalendar(1L)).asObjectDelta(task1Oid);
    when("modifyObject is called");
    repositoryService.modifyObject(TaskType.class, task1Oid, delta.getModifications(), result);
    then("operation is successful");
    assertThatOperationResult(result).isSuccess();
    and("serialized form (fullObject) is updated");
    TaskType taskObject = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(taskObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    assertThat(taskObject.getLastRunStartTimestamp()).isEqualTo(MiscUtil.asXMLGregorianCalendar(1L));
    and("externalized column is updated");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertThat(row.lastRunStartTimestamp).isEqualTo(Instant.ofEpochMilli(1));
}
Also used : MTask(com.evolveum.midpoint.repo.sqale.qmodel.task.MTask) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test) SqaleRepoBaseTest(com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)

Aggregations

SqaleRepoBaseTest (com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)21 MTask (com.evolveum.midpoint.repo.sqale.qmodel.task.MTask)21 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)21 Test (org.testng.annotations.Test)21 QName (javax.xml.namespace.QName)4 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)1 UUID (java.util.UUID)1