@Override protected DummyObjectClass getObjectClass() throws ConnectException, FileNotFoundException, SchemaViolationException, ConflictException, InterruptedException { return resource.getAccountObjectClass(); }
@Override protected void extraDummyResourceInit() throws Exception { DummyObjectClass accountObjectClass = dummyResource.getAccountObjectClass(); dummyResourceCtl.addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_MATE_NAME, String.class, false, true); }
objectClass = resource.getAccountObjectClass(); } catch (ConnectException e) { log.error(e, e.getMessage());
dummyAccountObjectClass = resource.getAccountObjectClass(); } catch (ConnectException e) { throw new ConnectionFailedException(e.getMessage(), e);
@Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { // DO NOT DO provisioningService.postInit(..) // We want to avoid connector discovery and insert our own connector object // provisioningService.postInit(initResult); connector = repoAddObjectFromFile(CONNECTOR_DUMMY_FILE, initResult); resource = repoAddObjectFromFile(RESOURCE_DUMMY_FILE, initResult); resourceType = resource.asObjectable(); dummyResource = DummyResource.getInstance(); dummyResource.reset(); dummyResource.populateWithDefaultSchema(); DummyObjectClass accountObjectClass = dummyResource.getAccountObjectClass(); accountObjectClass.addAttributeDefinition(ProvisioningTestUtil.CONNID_DESCRIPTION_NAME, String.class); }
/** * Extend dummy schema to look like AD */ public void extendSchemaAd() throws ConnectException, FileNotFoundException, SchemaViolationException, ConflictException, InterruptedException { DummyObjectClass accountObjectClass = dummyResource.getAccountObjectClass(); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_GIVEN_NAME_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_SN_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_SAM_ACCOUNT_NAME_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_USER_PRINCIPAL_NAME_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_USER_SHARED_FOLDER_OTHER_NAME, String.class, false, true); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_MAIL_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_DEPARTMENT_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_FACSIMILE_TELEPHONE_NUMBER_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_TELEPHONE_NUMBER_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_MOBILE_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_IP_PHONE_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_PHYSICAL_DELIVERY_OFFICE_NAME_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_DESCRIPTION_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_ACCOUNT_EXPIRES_NAME, Long.class, false, false); // This should in fact be icfs:groups but this is OK for now addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_AD_GROUPS_NAME, String.class, false, true); isExtendedSchema = true; }
/** * Extend schema in piratey fashion. Arr! This is used in many tests. Lots of attributes, various combination of types, etc. */ public void extendSchemaPirate() throws ConnectException, FileNotFoundException, SchemaViolationException, ConflictException, InterruptedException { populateWithDefaultSchema(); DummyObjectClass accountObjectClass = dummyResource.getAccountObjectClass(); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_TITLE_NAME, String.class, false, true); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_SHIP_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_LOCATION_NAME, String.class, false, false); DummyAttributeDefinition lootAttrDef = addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_LOOT_NAME, Integer.class, false, false); lootAttrDef.setReturnedByDefault(false); DummyAttributeDefinition treasureAttrDef = addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_TREASURE_NAME, String.class, false, false); treasureAttrDef.setReturnedByDefault(false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_WEALTH_NAME, Integer.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_WEAPON_NAME, String.class, false, true); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_DRINK_NAME, String.class, false, true); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_QUOTE_NAME, String.class, false, true); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_GOSSIP_NAME, String.class, false, true); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_WATER_NAME, String.class, false, false); addAttrDef(accountObjectClass, DUMMY_ACCOUNT_ATTRIBUTE_ENLIST_TIMESTAMP_NAME, ZonedDateTime.class, false, false); DummyObjectClass groupObjectClass = dummyResource.getGroupObjectClass(); addAttrDef(groupObjectClass, DUMMY_GROUP_ATTRIBUTE_DESCRIPTION, String.class, false, false); addAttrDef(groupObjectClass, DUMMY_GROUP_ATTRIBUTE_CC, String.class, false, false); DummyObjectClass privilegeObjectClass = dummyResource.getPrivilegeObjectClass(); addAttrDef(privilegeObjectClass, DUMMY_PRIVILEGE_ATTRIBUTE_POWER, Integer.class, false, false); isExtendedSchema = true; }
@Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { super.initSystem(initTask, initResult); dummyResourceCtlKhaki = DummyResourceContoller.create(RESOURCE_DUMMY_KHAKI_NAME, resourceDummyKhaki); dummyResourceCtlKhaki.extendSchemaPirate(); dummyResourceKhaki = dummyResourceCtlKhaki.getDummyResource(); resourceDummyKhaki = importAndGetObjectFromFile(ResourceType.class, RESOURCE_DUMMY_KHAKI_FILE, RESOURCE_DUMMY_KHAKI_OID, initTask, initResult); resourceDummyKhakiType = resourceDummyKhaki.asObjectable(); dummyResourceCtlKhaki.setResource(resourceDummyKhaki); dummyResourceCtlCoral = DummyResourceContoller.create(RESOURCE_DUMMY_CORAL_NAME, resourceDummyCoral); DummyObjectClass accountObjectClass = dummyResourceCtlCoral.getDummyResource().getAccountObjectClass(); dummyResourceCtlCoral.addAttrDef(accountObjectClass, SUSPENDED_ATTRIBUTE_NAME, Boolean.class, false, false); dummyResourceCoral = dummyResourceCtlCoral.getDummyResource(); resourceDummyCoral = importAndGetObjectFromFile(ResourceType.class, RESOURCE_DUMMY_CORAL_FILE, RESOURCE_DUMMY_CORAL_OID, initTask, initResult); resourceDummyCoralType = resourceDummyCoral.asObjectable(); dummyResourceCtlCoral.setResource(resourceDummyCoral); }
@Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { super.initSystem(initTask, initResult); initDummyResource(RESOURCE_DUMMY_PURPLE_NAME, RESOURCE_DUMMY_PURPLE_FILE, RESOURCE_DUMMY_PURPLE_OID, controller -> { controller.extendSchemaPirate(); controller.addAttrDef(controller.getDummyResource().getAccountObjectClass(), DUMMY_ACCOUNT_ATTRIBUTE_MATE_NAME, String.class, false, true); }, initTask, initResult); importObjectFromFile(ACCOUNT_JDOE_FILE); importObjectFromFile(ACCOUNT_CREW_FILE); importObjectFromFile(USER_JDOE_FILE); importObjectFromFile(ROLE_TEST_MATE_FILE); DummyAccount jdoe = new DummyAccount("jdoe"); jdoe.addAttributeValue("privileges", "test-mate"); getDummyResource(RESOURCE_DUMMY_PURPLE_NAME).addAccount(jdoe); DummyPrivilege crew = new DummyPrivilege("test-mate"); getDummyResource(RESOURCE_DUMMY_PURPLE_NAME).addPrivilege(crew); }
@Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { super.initSystem(initTask, initResult); dummyResourceCtl = DummyResourceContoller.create(null); dummyResourceCtl.extendSchemaPirate(); dummyResource = dummyResourceCtl.getDummyResource(); dummyResourceCtl.addAttrDef(dummyResource.getAccountObjectClass(), DUMMY_ACCOUNT_ATTRIBUTE_SEA_NAME, String.class, false, false); // Add resource directly to repo to avoid any initialization resourceDummy = PrismTestUtil.parseObject(RESOURCE_DUMMY_FILE); PrismObject<ConnectorType> connectorDummy = findConnectorByTypeAndVersion(CONNECTOR_DUMMY_TYPE, CONNECTOR_DUMMY_VERSION, initResult); resourceDummy.asObjectable().getConnectorRef().setOid(connectorDummy.getOid()); repositoryService.addObject(resourceDummy, null, initResult); dummyResourceCtl.setResource(resourceDummy); dummyResourceCtlRed = DummyResourceContoller.create(RESOURCE_DUMMY_RED_NAME, resourceDummyRed); dummyResourceCtlRed.extendSchemaPirate(); dummyResourceRed = dummyResourceCtlRed.getDummyResource(); // Add resource directly to repo to avoid any initialization resourceDummyRed = PrismTestUtil.parseObject(RESOURCE_DUMMY_RED_FILE); resourceDummyRed.asObjectable().getConnectorRef().setOid(connectorDummy.getOid()); repositoryService.addObject(resourceDummyRed, null, initResult); dummyResourceCtlRed.setResource(resourceDummyRed); ResourceCarefulAntUtil.initAnts(ants, RESOURCE_DUMMY_FILE, prismContext); descriptionAnt = ants.get(0); InternalMonitor.reset(); InternalMonitor.setTrace(InternalOperationClasses.SHADOW_FETCH_OPERATIONS, true); InternalMonitor.setTrace(InternalOperationClasses.RESOURCE_SCHEMA_OPERATIONS, true); InternalsConfig.encryptionChecks = false; InternalMonitor.setTrace(InternalOperationClasses.PRISM_OBJECT_CLONES, true); }
dummyResourceCtl.extendSchemaPirate(); dummyResource = dummyResourceCtl.getDummyResource(); dummyResourceCtl.addAttrDef(dummyResource.getAccountObjectClass(), DUMMY_ACCOUNT_ATTRIBUTE_SEA_NAME, String.class, false, false); resourceDummy = importAndGetObjectFromFile(ResourceType.class, RESOURCE_DUMMY_FILE, RESOURCE_DUMMY_OID, initTask, initResult);
controller -> { controller.extendSchemaPirate(); controller.addAttrDef(controller.getDummyResource().getAccountObjectClass(), DUMMY_ACCOUNT_ATTRIBUTE_SEA_NAME, String.class, false, false); }, controller -> { controller.extendSchemaPirate(); controller.addAttrDef(controller.getDummyResource().getAccountObjectClass(), DUMMY_ACCOUNT_ATTRIBUTE_MATE_NAME, String.class, false, true); },