Search in sources :

Example 1 with MResource

use of com.evolveum.midpoint.repo.sqale.qmodel.resource.MResource in project midpoint by Evolveum.

the class SqaleRepoAddDeleteObjectTest method test810ResourceAndItsBusinessApproverReferences.

@Test
public void test810ResourceAndItsBusinessApproverReferences() throws Exception {
    OperationResult result = createOperationResult();
    given("resource");
    String objectName = "res" + getTestNumber();
    UUID connectorOid = UUID.randomUUID();
    QName approver1Relation = QName.valueOf("{https://random.org/ns}random-rel-1");
    QName approver2Relation = QName.valueOf("{https://random.org/ns}random-rel-2");
    QName connectorRelation = QName.valueOf("{https://random.org/ns}conn-rel");
    ResourceType resource = new ResourceType(prismContext).name(objectName).business(new ResourceBusinessConfigurationType(prismContext).administrativeState(ResourceAdministrativeStateType.DISABLED).approverRef(UUID.randomUUID().toString(), UserType.COMPLEX_TYPE, approver1Relation).approverRef(UUID.randomUUID().toString(), ServiceType.COMPLEX_TYPE, approver2Relation)).operationalState(new OperationalStateType().lastAvailabilityStatus(AvailabilityStatusType.BROKEN)).connectorRef(connectorOid.toString(), ConnectorType.COMPLEX_TYPE, connectorRelation);
    when("adding it to the repository");
    repositoryService.addObject(resource.asPrismObject(), null, result);
    then("it is stored and relevant attributes are in columns");
    assertThatOperationResult(result).isSuccess();
    MResource row = selectObjectByOid(QResource.class, resource.getOid());
    assertThat(row.businessAdministrativeState).isEqualTo(ResourceAdministrativeStateType.DISABLED);
    assertThat(row.operationalStateLastAvailabilityStatus).isEqualTo(AvailabilityStatusType.BROKEN);
    assertThat(row.connectorRefTargetOid).isEqualTo(connectorOid);
    assertThat(row.connectorRefTargetType).isEqualTo(MObjectType.CONNECTOR);
    assertCachedUri(row.connectorRefRelationId, connectorRelation);
    QObjectReference<?> ref = QObjectReferenceMapping.getForResourceBusinessConfigurationApprover().defaultAlias();
    List<MReference> refs = select(ref, ref.ownerOid.eq(row.oid));
    assertThat(refs).hasSize(2);
    refs.sort(comparing(rr -> rr.targetType));
    MReference refRow = refs.get(0);
    assertThat(refRow.referenceType).isEqualTo(MReferenceType.RESOURCE_BUSINESS_CONFIGURATION_APPROVER);
    assertThat(refRow.targetType).isEqualTo(MObjectType.SERVICE);
    assertCachedUri(refRow.relationId, approver2Relation);
}
Also used : MResource(com.evolveum.midpoint.repo.sqale.qmodel.resource.MResource) MArchetype(com.evolveum.midpoint.repo.sqale.qmodel.role.MArchetype) MReportData(com.evolveum.midpoint.repo.sqale.qmodel.report.MReportData) com.evolveum.midpoint.repo.sqale.qmodel.object(com.evolveum.midpoint.repo.sqale.qmodel.object) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) JdbcSession(com.evolveum.midpoint.repo.sqlbase.JdbcSession) SchemaException(com.evolveum.midpoint.util.exception.SchemaException) Test(org.testng.annotations.Test) com.evolveum.midpoint.repo.sqale.qmodel.ref(com.evolveum.midpoint.repo.sqale.qmodel.ref) QSystemConfiguration(com.evolveum.midpoint.repo.sqale.qmodel.system.QSystemConfiguration) BigDecimal(java.math.BigDecimal) DOMUtil(com.evolveum.midpoint.util.DOMUtil) Map(java.util.Map) QNode(com.evolveum.midpoint.repo.sqale.qmodel.node.QNode) BigInteger(java.math.BigInteger) MContainer(com.evolveum.midpoint.repo.sqale.qmodel.common.MContainer) MConnector(com.evolveum.midpoint.repo.sqale.qmodel.connector.MConnector) QUser(com.evolveum.midpoint.repo.sqale.qmodel.focus.QUser) RepoAddOptions.createOverwrite(com.evolveum.midpoint.repo.api.RepoAddOptions.createOverwrite) QContainer(com.evolveum.midpoint.repo.sqale.qmodel.common.QContainer) ObjectNotFoundException(com.evolveum.midpoint.util.exception.ObjectNotFoundException) MContainerType(com.evolveum.midpoint.repo.sqale.qmodel.common.MContainerType) MFocus(com.evolveum.midpoint.repo.sqale.qmodel.focus.MFocus) MiscUtil(com.evolveum.midpoint.util.MiscUtil) ObjectAlreadyExistsException(com.evolveum.midpoint.util.exception.ObjectAlreadyExistsException) UUID(java.util.UUID) Instant(java.time.Instant) QLookupTableRow(com.evolveum.midpoint.repo.sqale.qmodel.lookuptable.QLookupTableRow) StandardCharsets(java.nio.charset.StandardCharsets) QMessageTemplate(com.evolveum.midpoint.repo.sqale.qmodel.notification.QMessageTemplate) com.evolveum.midpoint.repo.sqale.qmodel.cases.workitem(com.evolveum.midpoint.repo.sqale.qmodel.cases.workitem) QGenericObject(com.evolveum.midpoint.repo.sqale.qmodel.focus.QGenericObject) MTask(com.evolveum.midpoint.repo.sqale.qmodel.task.MTask) List(java.util.List) QConnector(com.evolveum.midpoint.repo.sqale.qmodel.connector.QConnector) PolyStringType(com.evolveum.prism.xml.ns._public.types_3.PolyStringType) QName(javax.xml.namespace.QName) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) Jsonb(com.evolveum.midpoint.repo.sqale.jsonb.Jsonb) QResource(com.evolveum.midpoint.repo.sqale.qmodel.resource.QResource) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) MResource(com.evolveum.midpoint.repo.sqale.qmodel.resource.MResource) QCase(com.evolveum.midpoint.repo.sqale.qmodel.cases.QCase) SqaleRepoBaseTest(com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest) QConnectorHost(com.evolveum.midpoint.repo.sqale.qmodel.connector.QConnectorHost) MShadow(com.evolveum.midpoint.repo.sqale.qmodel.shadow.MShadow) Assertions.assertThatThrownBy(org.assertj.core.api.Assertions.assertThatThrownBy) MConnectorHost(com.evolveum.midpoint.repo.sqale.qmodel.connector.MConnectorHost) QReport(com.evolveum.midpoint.repo.sqale.qmodel.report.QReport) Comparator.comparing(java.util.Comparator.comparing) RepositoryService(com.evolveum.midpoint.repo.api.RepositoryService) Containerable(com.evolveum.midpoint.prism.Containerable) MLookupTableRow(com.evolveum.midpoint.repo.sqale.qmodel.lookuptable.MLookupTableRow) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) DeleteObjectResult(com.evolveum.midpoint.repo.api.DeleteObjectResult) MNode(com.evolveum.midpoint.repo.sqale.qmodel.node.MNode) com.evolveum.midpoint.repo.sqale.qmodel.assignment(com.evolveum.midpoint.repo.sqale.qmodel.assignment) PrismObject(com.evolveum.midpoint.prism.PrismObject) QShadow(com.evolveum.midpoint.repo.sqale.qmodel.shadow.QShadow) MUser(com.evolveum.midpoint.repo.sqale.qmodel.focus.MUser) SimpleExpressionUtil.velocityExpression(com.evolveum.midpoint.schema.util.SimpleExpressionUtil.velocityExpression) ChronoUnit(java.time.temporal.ChronoUnit) ItemName(com.evolveum.midpoint.prism.path.ItemName) QReportData(com.evolveum.midpoint.repo.sqale.qmodel.report.QReportData) MCase(com.evolveum.midpoint.repo.sqale.qmodel.cases.MCase) QArchetype(com.evolveum.midpoint.repo.sqale.qmodel.role.QArchetype) SqaleRepositoryService(com.evolveum.midpoint.repo.sqale.SqaleRepositoryService) QTask(com.evolveum.midpoint.repo.sqale.qmodel.task.QTask) com.evolveum.midpoint.repo.sqale.qmodel.accesscert(com.evolveum.midpoint.repo.sqale.qmodel.accesscert) QName(javax.xml.namespace.QName) 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)

Aggregations

Containerable (com.evolveum.midpoint.prism.Containerable)1 PrismObject (com.evolveum.midpoint.prism.PrismObject)1 ItemName (com.evolveum.midpoint.prism.path.ItemName)1 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)1 DeleteObjectResult (com.evolveum.midpoint.repo.api.DeleteObjectResult)1 RepoAddOptions.createOverwrite (com.evolveum.midpoint.repo.api.RepoAddOptions.createOverwrite)1 RepositoryService (com.evolveum.midpoint.repo.api.RepositoryService)1 SqaleRepoBaseTest (com.evolveum.midpoint.repo.sqale.SqaleRepoBaseTest)1 SqaleRepositoryService (com.evolveum.midpoint.repo.sqale.SqaleRepositoryService)1 Jsonb (com.evolveum.midpoint.repo.sqale.jsonb.Jsonb)1 com.evolveum.midpoint.repo.sqale.qmodel.accesscert (com.evolveum.midpoint.repo.sqale.qmodel.accesscert)1 com.evolveum.midpoint.repo.sqale.qmodel.assignment (com.evolveum.midpoint.repo.sqale.qmodel.assignment)1 MCase (com.evolveum.midpoint.repo.sqale.qmodel.cases.MCase)1 QCase (com.evolveum.midpoint.repo.sqale.qmodel.cases.QCase)1 com.evolveum.midpoint.repo.sqale.qmodel.cases.workitem (com.evolveum.midpoint.repo.sqale.qmodel.cases.workitem)1 MContainer (com.evolveum.midpoint.repo.sqale.qmodel.common.MContainer)1 MContainerType (com.evolveum.midpoint.repo.sqale.qmodel.common.MContainerType)1 QContainer (com.evolveum.midpoint.repo.sqale.qmodel.common.QContainer)1 MConnector (com.evolveum.midpoint.repo.sqale.qmodel.connector.MConnector)1 MConnectorHost (com.evolveum.midpoint.repo.sqale.qmodel.connector.MConnectorHost)1