/** * Need a schema */ public Schema getSchema() { return getConnectorFacade().schema(); }
/** * Need a schema */ public Schema getSchema() { return getConnectorFacade().schema(); }
/** * Need a schema */ public Schema getSchema() { return getConnectorFacade().schema(); }
@Async public Future<Set<ObjectClassInfo>> getObjectClassInfo(final ConnectorFacade connector) { Set<ObjectClassInfo> result = Collections.emptySet(); try { result = connector.schema().getObjectClassInfo(); } catch (Exception e) { // catch exception in order to manage unpredictable behaviors LOG.debug("While reading schema on connector {}", connector, e); } return new AsyncResult<>(result); }
/** * Gets {@link ObjectClassInfo} for object class returned by {@link ObjectClassRunner#getSupportedObjectClass}. * * @return {@link ObjectClassInfo} */ public ObjectClassInfo getObjectClassInfo(ObjectClass objectClass) { return getConnectorFacade().schema().findObjectClassInfo(objectClass.getObjectClassValue()); }
/** * Tests that the schema doesn't contain {@link Uid} */ @Test public void testUidNotPresent() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); ocInfos.stream().map((ocInfo) -> ocInfo.getAttributeInfo()). forEachOrdered(attInfos -> { attInfos.forEach((attInfo) -> { //ensure there is not Uid present assertTrue(!attInfo.is(Uid.NAME), "Uid can't be present in connector Schema!"); }); }); }
/** * check to see if ANY objectclass supports a particular operations * @param connectorFacade * @param operation * @return */ public static boolean operationsSupported(ConnectorFacade connectorFacade, Set<Class<? extends APIOperation>> operations) { boolean opSupported = false; Schema schema = connectorFacade.schema(); Assert.assertNotNull("Connector did not return a schema", schema); Set<ObjectClassInfo> objectClassInfoSet = schema.getObjectClassInfo(); for(ObjectClassInfo objectClassInfo : objectClassInfoSet) { if(operationsSupported(connectorFacade, ConnectorHelper.getObjectClassFromObjectClassInfo(objectClassInfo), operations)) { opSupported = true; break; } } return opSupported; }
/** * Tests that every object class contains {@link Name} among its attributes. */ @Test public void testNamePresent() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); ocInfos.forEach((ocInfo) -> { Set<AttributeInfo> attInfos = ocInfo.getAttributeInfo(); // ensure there is NAME present boolean found = attInfos.stream().anyMatch(attInfo -> attInfo.is(Name.NAME)); final String msg = "Name is not present among attributes of object class '%s'."; assertTrue(found, String.format(msg, ocInfo.getType())); }); }
Schema schema = ConnectorHelper.createConnectorFacade(getDataProvider()).schema(); for (ObjectClassInfo ocInfo : schema.getObjectClassInfo()) { oclasses.add(new Object[] {ConnectorHelper.getObjectClassFromObjectClassInfo(ocInfo)});
/** * Returns ObjectClassInfo stored in connector schema for object class. */ private ObjectClassInfo findOInfo(ObjectClass oclass) { Schema schema = getConnectorFacade().schema(); for (ObjectClassInfo oinfo : schema.getObjectClassInfo()) { if (oinfo.is(oclass.getObjectClassValue())) { return oinfo; } } return null; }
/** * Returns ObjectClassInfo stored in connector schema for object class. */ private ObjectClassInfo findOInfo(ObjectClass oclass) { Schema schema = getConnectorFacade().schema(); for (ObjectClassInfo oinfo : schema.getObjectClassInfo()) { if (oinfo.is(oclass.getObjectClassValue())) { return oinfo; } } return null; }
/** * Test ensures that following operations are supported by all object * classes when supported at all: ScriptOnConnectorApiOp, ScriptOnResourceApiOp, * TestApiOp, ValidateApiOp. */ @Test public void testOpSupportedByAllOClasses() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); OP_SUPPORTED_BY_ALL_OCLASSES.forEach((apiOp) -> { Set<ObjectClassInfo> suppOClasses = schema.getSupportedObjectClassesByOperation(apiOp); if (!suppOClasses.isEmpty()) { // operation is supported for at least one object class // then it must be supported for all object classes final String MSG = "Operation %s must be in the schema supported by all object classes which supports connector."; assertTrue(CollectionUtil.equals(suppOClasses, ocInfos), String.format(MSG, apiOp)); } }); }
/** * Returns ObjectClassInfo stored in connector schema for object class. */ private ObjectClassInfo findOInfo(ObjectClass oclass) { Schema schema = getConnectorFacade().schema(); for (ObjectClassInfo oinfo : schema.getObjectClassInfo()) { if (oinfo.is(oclass.getObjectClassValue())) { return oinfo; } } return null; }
/** * Test ensures that following operations are supported by all object * classes when supported at all: ScriptOnConnectorApiOp, ScriptOnResourceApiOp, * TestApiOp, ValidateApiOp. */ @Test public void testOpSupportedByAllOClasses() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); for (Class<? extends APIOperation> apiOp : opSupportedByAllOClasses) { Set<ObjectClassInfo> suppOClasses = schema.getSupportedObjectClassesByOperation(apiOp); if (!suppOClasses.isEmpty()) { // operation is supported for at least one object class // then it must be supported for all object classes final String MSG = "Operation %s must be in the schema supported by all object classes which supports connector."; assertTrue(String.format(MSG, apiOp), CollectionUtil.equals(suppOClasses, ocInfos)); } } }
/** * Test ensures that following operations are supported by all object * classes when supported at all: ScriptOnConnectorApiOp, ScriptOnResourceApiOp, * TestApiOp, ValidateApiOp. */ @Test public void testOpSupportedByAllOClasses() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); for (Class<? extends APIOperation> apiOp : opSupportedByAllOClasses) { Set<ObjectClassInfo> suppOClasses = schema.getSupportedObjectClassesByOperation(apiOp); if (!suppOClasses.isEmpty()) { // operation is supported for at least one object class // then it must be supported for all object classes final String MSG = "Operation %s must be in the schema supported by all object classes which supports connector."; assertTrue(String.format(MSG, apiOp), CollectionUtil.equals(suppOClasses, ocInfos)); } } }
/** * check to see if ANY objectclass supports a particular operations * * @param connectorFacade * @param operation * @return */ public static boolean operationsSupported(ConnectorFacade connectorFacade, Set<Class<? extends APIOperation>> operations) { boolean opSupported = false; Schema schema = connectorFacade.schema(); assertNotNull("Connector did not return a schema", schema); Set<ObjectClassInfo> objectClassInfoSet = schema.getObjectClassInfo(); for (ObjectClassInfo objectClassInfo : objectClassInfoSet) { if (operationsSupported(connectorFacade, ConnectorHelper.getObjectClassFromObjectClassInfo(objectClassInfo), operations)) { opSupported = true; break; } } return opSupported; }
/** * Tests that every object class contains {@link Name} among its attributes. */ @Test public void testNamePresent() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); for (ObjectClassInfo ocInfo : ocInfos) { Set<AttributeInfo> attInfos = ocInfo.getAttributeInfo(); // ensure there is NAME present boolean found = false; for (AttributeInfo attInfo : attInfos) { if (attInfo.is(Name.NAME)) found = true; } final String MSG = "Name is not present among attributes of object class '%s'."; assertTrue(String.format(MSG, ocInfo.getType()), found); } }
/** * Tests that every object class contains {@link Name} among its attributes. */ @Test public void testNamePresent() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); for (ObjectClassInfo ocInfo : ocInfos) { Set<AttributeInfo> attInfos = ocInfo.getAttributeInfo(); // ensure there is NAME present boolean found = false; for (AttributeInfo attInfo : attInfos) { if (attInfo.is(Name.NAME)) found = true; } final String MSG = "Name is not present among attributes of object class '%s'."; assertTrue(String.format(MSG, ocInfo.getType()), found); } }
/** * Tests that the schema doesn't contain {@link Uid} */ @Test public void testUidNotPresent() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); for (ObjectClassInfo ocInfo : ocInfos) { Set<AttributeInfo> attInfos = ocInfo.getAttributeInfo(); for (AttributeInfo attInfo : attInfos) { //ensure there is not Uid present assertTrue("Uid can't be present in connector Schema!", !attInfo.is(Uid.NAME)); } } }
/** * Tests that the schema doesn't contain {@link Uid} */ @Test public void testUidNotPresent() { final Schema schema = getConnectorFacade().schema(); Set<ObjectClassInfo> ocInfos = schema.getObjectClassInfo(); for (ObjectClassInfo ocInfo : ocInfos) { Set<AttributeInfo> attInfos = ocInfo.getAttributeInfo(); for (AttributeInfo attInfo : attInfos) { //ensure there is not Uid present assertTrue("Uid can't be present in connector Schema!", !attInfo.is(Uid.NAME)); } } }