DummyResource() { allObjects = Collections.synchronizedMap(new LinkedHashMap<String,DummyObject>()); accounts = Collections.synchronizedMap(new LinkedHashMap<String, DummyAccount>()); groups = Collections.synchronizedMap(new LinkedHashMap<String, DummyGroup>()); privileges = Collections.synchronizedMap(new LinkedHashMap<String, DummyPrivilege>()); orgs = Collections.synchronizedMap(new LinkedHashMap<String, DummyOrg>()); scriptHistory = new ArrayList<>(); accountObjectClass = new DummyObjectClass(); groupObjectClass = new DummyObjectClass(); privilegeObjectClass = new DummyObjectClass(); syncStyle = DummySyncStyle.NONE; deltas = Collections.synchronizedList(new ArrayList<DummyDelta>()); latestSyncToken = 0; }
/** * Populates the resource with some kind of "default" schema. This is a schema that should suit * majority of basic test cases. */ public void populateWithDefaultSchema() { accountObjectClass.clear(); accountObjectClass.addAttributeDefinition(DummyAccount.ATTR_FULLNAME_NAME, String.class, true, false); accountObjectClass.addAttributeDefinition(DummyAccount.ATTR_INTERNAL_ID, String.class, false, false); accountObjectClass.addAttributeDefinition(DummyAccount.ATTR_DESCRIPTION_NAME, String.class, false, false); accountObjectClass.addAttributeDefinition(DummyAccount.ATTR_INTERESTS_NAME, String.class, false, true); accountObjectClass.addAttributeDefinition(DummyAccount.ATTR_PRIVILEGES_NAME, String.class, false, true); groupObjectClass.clear(); groupObjectClass.addAttributeDefinition(DummyGroup.ATTR_MEMBERS_NAME, String.class, false, true); privilegeObjectClass.clear(); }
public void addAttributeDefinition(String attributeName, Class<?> attributeType) { addAttributeDefinition(attributeName,attributeType,false,false); }
public DummyAttributeDefinition addAttrDef(DummyObjectClass accountObjectClass, String attrName, Class<?> type, boolean isRequired, boolean isMulti) { DummyAttributeDefinition attrDef = new DummyAttributeDefinition(attrName, type, isRequired, isMulti); accountObjectClass.add(attrDef); return attrDef; }
public DummyAttributeDefinition getAttributeDefinition(String attrName) { DummyAttributeDefinition def = getObjectClassNoExceptions().getAttributeDefinition(attrName); if (def != null) { return def; } for (String auxClassName : getAuxiliaryObjectClassNames()) { DummyObjectClass auxObjectClass = resource.getAuxiliaryObjectClassMap().get(auxClassName); if (auxObjectClass == null) { throw new IllegalStateException("Auxiliary object class " + auxClassName + " couldn't be found"); } def = auxObjectClass.getAttributeDefinition(attrName); if (def != null) { return def; } } return null; }
private void buildAttributes(ObjectClassInfoBuilder icfObjClassBuilder, DummyObjectClass dummyObjectClass) { for (DummyAttributeDefinition dummyAttrDef : dummyObjectClass.getAttributeDefinitions()) { AttributeInfoBuilder attrBuilder = new AttributeInfoBuilder(dummyAttrDef.getAttributeName(), dummyAttrDef.getAttributeType()); attrBuilder.setMultiValued(dummyAttrDef.isMulti()); attrBuilder.setRequired(dummyAttrDef.isRequired()); attrBuilder.setReturnedByDefault(dummyAttrDef.isReturnedByDefault()); icfObjClassBuilder.addAttributeInfo(attrBuilder.build()); } }
public void addAttributeDefinition(String attributeName) { addAttributeDefinition(attributeName,String.class,false,false); }
public void addAttributeDefinition(String attributeName, Class<?> attributeType, boolean isRequired, boolean isMulti) { DummyAttributeDefinition attrDef = new DummyAttributeDefinition(attributeName,attributeType,isRequired,isMulti); add(attrDef); }
public void addAttributeDefinition(String attributeName, Class<?> attributeType, boolean isOptional) { addAttributeDefinition(attributeName,attributeType,isOptional,false); }
/** * Clears everything, just like the resouce was just created. */ public void reset() { allObjects.clear(); accounts.clear(); groups.clear(); privileges.clear(); orgs.clear(); scriptHistory.clear(); accountObjectClass = new DummyObjectClass(); groupObjectClass = new DummyObjectClass(); privilegeObjectClass = new DummyObjectClass(); syncStyle = DummySyncStyle.NONE; deltas.clear(); latestSyncToken = 0; writeOperationCount = 0; operationDelayOffset = 0; operationDelayRange = 0; resetBreakMode(); }
@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 have an auxiliary OC. */ public void extendSchemaPosix() throws ConnectException, FileNotFoundException, SchemaViolationException { DummyObjectClass posixAccount = new DummyObjectClass(); addAttrDef(posixAccount, DUMMY_ACCOUNT_ATTRIBUTE_POSIX_UID_NUMBER, Integer.class, false, false); // uid and gid are temporarily not required addAttrDef(posixAccount, DUMMY_ACCOUNT_ATTRIBUTE_POSIX_GID_NUMBER, Integer.class, false, false); dummyResource.addAuxiliaryObjectClass(DUMMY_POSIX_ACCOUNT_OBJECT_CLASS_NAME, posixAccount); isExtendedSchema = true; }