public <T> T getAttributeValue(ShadowType shadow, javax.xml.namespace.QName attributeQname) throws SchemaException { return ShadowUtil.getAttributeValue(shadow, attributeQname); }
public static <T> T getAttributeValue(ShadowType shadowType, QName attrName) throws SchemaException { return (T) getAttributeValue(shadowType.asPrismObject(), attrName); }
/** * Convenience method for shadow values that are read directly from repo (post-3.8). * This may ruin the "rawness" of the value. But it is OK for test asserts. */ protected <T> T getAttributeValue(PrismObject<? extends ShadowType> shadow, QName attrName, Class<T> expectedClass) throws SchemaException { Object value = ShadowUtil.getAttributeValue(shadow, attrName); if (value == null) { return (T) value; } if (expectedClass.isAssignableFrom(value.getClass())) { return (T)value; } if (value instanceof RawType) { T parsedRealValue = ((RawType)value).getParsedRealValue(expectedClass); return parsedRealValue; } fail("Expected that attribute "+attrName+" is "+expectedClass+", but it was "+value.getClass()+": "+value); return null; // not reached }
private String getConnectorToString(PrismObject<ShadowType> shadow, DummyResourceContoller ctl) throws SchemaException { return ShadowUtil.getAttributeValue(shadow, ctl.getAttributeQName(DummyResource.ATTRIBUTE_CONNECTOR_TO_STRING)); }
private String getConnectorStaticVal(PrismObject<ShadowType> shadow, DummyResourceContoller ctl) throws SchemaException { return ShadowUtil.getAttributeValue(shadow, ctl.getAttributeQName(DummyResource.ATTRIBUTE_CONNECTOR_STATIC_VAL)); }
private void assertConnectorToString(PrismObject<ShadowType> shadow, DummyResourceContoller ctl, String expectedVal) throws SchemaException { String connectorVal = ShadowUtil.getAttributeValue(shadow, ctl.getAttributeQName(DummyResource.ATTRIBUTE_CONNECTOR_TO_STRING)); assertEquals("Connector toString mismatch", expectedVal, connectorVal); }
@Override public boolean handle(PrismObject<ShadowType> object, OperationResult parentResult) { foundObjects.add(object); display("Found", object); XMLGregorianCalendar endTs = clock.currentTimeXMLGregorianCalendar(); assertTrue(object.canRepresent(ShadowType.class)); try { checkAccountShadow(object, parentResult, true, startTs, endTs); } catch (SchemaException e) { throw new SystemException(e.getMessage(), e); } assertCachingMetadata(object, false, startTs, endTs); if (object.asObjectable().getName().getOrig().equals("meathook")) { meathookAccountOid = object.getOid(); seenMeathookHolder.setValue(true); try { Integer loot = ShadowUtil.getAttributeValue(object, dummyResourceCtl.getAttributeQName(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_LOOT_NAME)); assertEquals("Wrong meathook's loot", 666, (int) loot); } catch (SchemaException e) { throw new SystemException(e.getMessage(), e); } } return true; } };
Integer dummyConnectorNumber = ShadowUtil.getAttributeValue(accountShadow, getDummyResourceController(RESOURCE_DUMMY_SCRIPTY_NAME).getAttributeQName(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_WEALTH_NAME)); assertTrue("Connector number hash changed: "+lastDummyConnectorNumber+" -> "+dummyConnectorNumber,
/** * MID-3044 */ @Test public void test502GetAccountJackResourceScripty() throws Exception { final String TEST_NAME = "test502GetAccountJackResourceScripty"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); PrismObject<UserType> userBefore = getUser(USER_JACK_OID); display("User before", userBefore); assertAssignments(userBefore, 1); String accountOid = getSingleLinkOid(userBefore); // WHEN displayWhen(TEST_NAME); PrismObject<ShadowType> accountShadow = modelService.getObject(ShadowType.class, accountOid, null, task, result); // THEN displayThen(TEST_NAME); assertSuccess(result); assertAttribute(getDummyResourceObject(RESOURCE_DUMMY_SCRIPTY_NAME), accountShadow.asObjectable(), getDummyResourceController(RESOURCE_DUMMY_SCRIPTY_NAME).getAttributeQName(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_SHIP_NAME), "Dummy Resource: Scripty"); lastDummyConnectorNumber = ShadowUtil.getAttributeValue(accountShadow, getDummyResourceController(RESOURCE_DUMMY_SCRIPTY_NAME).getAttributeQName(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_WEALTH_NAME)); }
/** * Check that the same connector instance is used. The connector should be pooled and cached. * MID-3104 */ @Test public void test504GetAccountJackResourceScriptyAgain() throws Exception { final String TEST_NAME = "test504GetAccountJackResourceScriptyAgain"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); PrismObject<UserType> userBefore = getUser(USER_JACK_OID); display("User before", userBefore); assertAssignments(userBefore, 1); String accountOid = getSingleLinkOid(userBefore); // WHEN displayWhen(TEST_NAME); PrismObject<ShadowType> accountShadow = modelService.getObject(ShadowType.class, accountOid, null, task, result); // THEN displayThen(TEST_NAME); assertSuccess(result); assertAttribute(getDummyResourceObject(RESOURCE_DUMMY_SCRIPTY_NAME), accountShadow.asObjectable(), getDummyResourceController(RESOURCE_DUMMY_SCRIPTY_NAME).getAttributeQName(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_SHIP_NAME), "Dummy Resource: Scripty"); Integer dummyConnectorNumber = ShadowUtil.getAttributeValue(accountShadow, getDummyResourceController(RESOURCE_DUMMY_SCRIPTY_NAME).getAttributeQName(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_WEALTH_NAME)); assertEquals("Connector number has changed", lastDummyConnectorNumber, dummyConnectorNumber); }
assertEquals("Not enabled", ActivationStatusType.ENABLED, provisioningShadow.getActivation().getAdministrativeStatus()); assertShadowPassword(provisioningShadow); Object createTimestamp = ShadowUtil.getAttributeValue(provisioningShadow, new QName(resourceNamespace, "createTimestamp")); assertTimestamp("createTimestamp", createTimestamp);