Search in sources :

Example 6 with MTask

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

the class SqaleRepoModifyObjectTest method test126DeleteTaskFullResult.

@Test
public void test126DeleteTaskFullResult() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    given("delta changing replacing operation result with no value task 1");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_RESULT).replace().asObjectDelta(task1Oid);
    and("test row previously having non-null fullResult");
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    assertThat(originalRow.fullResult).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");
    TaskType task = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(task.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    and("externalized column is set to null");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.fullResult).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 7 with MTask

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

the class SqaleRepoModifyObjectTest method test208AddingEmptyNestedMetadataContainer.

@Test
public void test208AddingEmptyNestedMetadataContainer() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    given("delta with empty metadata added for task 1");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(ObjectType.F_METADATA).add(new MetadataType()).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.getMetadata()).isNotNull().matches(m -> m.asPrismContainerValue().isEmpty());
}
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 8 with MTask

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

the class SqaleRepoModifyObjectTest method test111DeleteInstantAttribute.

/*
    We don't bother with replace tests for these other simple types, if update works for
    setting, it must work for replacing (it's the same code like for String).
    We test nulls just to be sure there is no JDBC type trick there (NULL is a bit special).
    */
@Test
public void test111DeleteInstantAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    given("delta with last run start timestamp replace to null ('delete') for task 1");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_LAST_RUN_START_TIMESTAMP).replace().asObjectDelta(task1Oid);
    and("task row previously having the timestamp value");
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    assertThat(originalRow.lastRunStartTimestamp).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 last run start timestamp is gone");
    TaskType taskObject = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(taskObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    assertThat(taskObject.getLastRunStartTimestamp()).isNull();
    and("externalized column is set to NULL");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertThat(row.lastRunStartTimestamp).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 9 with MTask

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

the class SqaleRepoModifyObjectTest method test201DeleteNestedMetadataAttribute.

@Test
public void test201DeleteNestedMetadataAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    given("delta with metadata/createChannel status replace to null ('delete') for task 1");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(ObjectType.F_METADATA, MetadataType.F_CREATE_CHANNEL).replace().asObjectDelta(task1Oid);
    and("task row previously having the createChannelId value");
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    assertThat(originalRow.createChannelId).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 create channel is gone");
    TaskType taskObject = repositoryService.getObject(TaskType.class, task1Oid, null, result).asObjectable();
    assertThat(taskObject.getVersion()).isEqualTo(String.valueOf(originalRow.version + 1));
    assertTrue(// if removed with last item
    taskObject.getMetadata() == null || taskObject.getMetadata().getCreateChannel() == null);
    and("externalized column is set to NULL");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertThat(row.createChannelId).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 10 with MTask

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

the class SqaleRepoModifyObjectTest method test143ChangeCachedUriAttribute.

@Test
public void test143ChangeCachedUriAttribute() throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException {
    OperationResult result = createOperationResult();
    MTask originalRow = selectObjectByOid(QTask.class, task1Oid);
    given("delta with handler change for task 1 adding value");
    ObjectDelta<TaskType> delta = prismContext.deltaFor(TaskType.class).item(TaskType.F_HANDLER_URI).add("any://handler/uri").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.getHandlerUri()).isEqualTo("any://handler/uri");
    and("externalized column is updated");
    MTask row = selectObjectByOid(QTask.class, task1Oid);
    assertThat(row.version).isEqualTo(originalRow.version + 1);
    assertCachedUri(row.handlerUriId, "any://handler/uri");
}
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