protected void assertIterationDelta(ObjectDelta<ShadowType> shadowDelta, Integer expectedIteration, String expectedIterationToken) { PrismAsserts.assertPropertyReplace(shadowDelta, ShadowType.F_ITERATION, expectedIteration); PrismAsserts.assertPropertyReplace(shadowDelta, ShadowType.F_ITERATION_TOKEN, expectedIterationToken); }
assertEquals("Unexpected number of modifications", 7, modifications.size()); PrismAsserts.assertContainerDeleteGetContainerDelta(resourceDelta, ResourceType.F_SCHEMA); PrismAsserts.assertPropertyReplace(resourceDelta, pathTimeouts("update"), 3); PrismAsserts.assertPropertyReplace(resourceDelta, pathTimeouts("scriptOnResource"), 4); PrismAsserts.assertPropertyDelete(resourceDelta, ItemPath.create(ResourceType.F_CONNECTOR_CONFIGURATION, new ItemName(SchemaTestConstants.NS_ICFC, "producerBufferSize")),
@Test public void testUserReal() throws SchemaException, SAXException, IOException, JAXBException { System.out.println("===[ testUserReal ]==="); String userBeforeXml = MiscUtil.readFile(new File(TEST_DIR, "user-real-before.xml")); String userAfterXml = MiscUtil.readFile(new File(TEST_DIR, "user-real-after.xml")); // WHEN ObjectDelta<UserType> userDelta = DiffUtil.diff(userBeforeXml, userAfterXml, UserType.class, getPrismContext()); // THEN System.out.println("DELTA:"); System.out.println(userDelta.debugDump()); userDelta.checkConsistence(); assertEquals("Wrong delta OID", "2f9b9299-6f45-498f-bc8e-8d17c6b93b20", userDelta.getOid()); assertEquals("Wrong change type", ChangeType.MODIFY, userDelta.getChangeType()); Collection<? extends ItemDelta> modifications = userDelta.getModifications(); assertEquals("Unexpected number of modifications", 4, modifications.size()); PrismAsserts.assertPropertyReplace(userDelta, new ItemName(SchemaConstants.NS_C,"emailAddress"), "jack@blackpearl.com"); PrismAsserts.assertPropertyReplace(userDelta, new ItemName(SchemaConstants.NS_C,"locality"), new PolyString("World's End", "worlds end")); PrismAsserts.assertPropertyReplace(userDelta, SchemaConstants.PATH_ACTIVATION_ADMINISTRATIVE_STATUS, ActivationStatusType.DISABLED); PrismAsserts.assertPropertyAdd(userDelta, new ItemName(SchemaConstants.NS_C,"organizationalUnit"), new PolyString("Brethren of the Coast", "brethren of the coast")); }
private void assertAssignEntitlementToPirate(LensContext<RoleType> context) { display("Output context", context); assertTrue(context.getFocusContext().getPrimaryDelta().getChangeType() == ChangeType.MODIFY); assertSideEffectiveDeltasOnly(context.getFocusContext().getSecondaryDelta(), "focus secondary delta", ActivationStatusType.ENABLED); assertFalse("No projection changes", context.getProjectionContexts().isEmpty()); Collection<LensProjectionContext> projectionContexts = context.getProjectionContexts(); assertEquals(1, projectionContexts.size()); LensProjectionContext projContext = projectionContexts.iterator().next(); assertNull("Projection primary delta sneaked in", projContext.getPrimaryDelta()); ObjectDelta<ShadowType> projSecondaryDelta = projContext.getSecondaryDelta(); assertEquals("Wrong decision", SynchronizationPolicyDecision.ADD,projContext.getSynchronizationPolicyDecision()); assertEquals(ChangeType.MODIFY, projSecondaryDelta.getChangeType()); PrismAsserts.assertPropertyReplace(projSecondaryDelta, getIcfsNameAttributePath() , "Pirate"); PrismAsserts.assertPropertyReplace(projSecondaryDelta, getDummyResourceController().getAttributePath(DummyResourceContoller.DUMMY_GROUP_ATTRIBUTE_DESCRIPTION), "Bloody pirates"); PrismAsserts.assertOrigin(projSecondaryDelta, OriginType.OUTBOUND); }
@Test public void testContainerValueDiffDesciptionNoPath() throws Exception { System.out.println("\n\n===[ testContainerValueDiffDesciptionNoPath ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismContainerDefinition<AssignmentType> assignmentContDef = userDef.findContainerDefinition(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> ass1 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass1cval = ass1.createNewValue(); ass1cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "blah blah", PrismTestUtil.getPrismContext()); PrismContainer<AssignmentType> ass2 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass2cval = ass2.createNewValue(); ass2cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "chamalalia patlama paprtala", PrismTestUtil.getPrismContext()); // WHEN Collection<? extends ItemDelta> modifications = ass1cval.diff(ass2cval); // THEN assertNotNull(modifications); System.out.println(DebugUtil.debugDump(modifications)); assertEquals("Unexpected number of midifications", 1, modifications.size()); PrismAsserts.assertPropertyReplace( modifications, ItemPath.create(UserType.F_ASSIGNMENT, AssignmentType.F_DESCRIPTION), "chamalalia patlama paprtala"); ItemDeltaCollectionsUtil.checkConsistence(modifications); }
assertEquals("Wrong number of modificaitions", 10, jackDelta.getModifications().size()); PrismAsserts.assertPropertyReplace(jackDelta, USER_FULLNAME_QNAME, "Jack Sparrow"); PrismAsserts.assertPropertyReplace(jackDelta, USER_ENABLED_PATH, false); PrismAsserts.assertPropertyDelete(jackDelta, USER_VALID_FROM_PATH, USER_JACK_VALID_FROM); PrismAsserts.assertPropertyReplace(jackDelta, ItemPath.create(USER_ASSIGNMENT_QNAME, USER_ASSIGNMENT_2_ID, USER_DESCRIPTION_QNAME), "Assignment II");
@Test public void testUserSimplePropertyDiffReplace() throws Exception { System.out.println("\n\n===[ testUserSimplePropertyDiffReplace ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismObject<UserType> user1 = userDef.instantiate(); user1.setOid(USER_JACK_OID); user1.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("test name")); PrismObject<UserType> user2 = userDef.instantiate(); user2.setOid(USER_JACK_OID); user2.setPropertyRealValue(UserType.F_NAME, PrismTestUtil.createPolyString("other name")); // WHEN ObjectDelta<UserType> delta = user1.diff(user2); // THEN assertNotNull(delta); System.out.println(delta.debugDump()); assertEquals("Unexpected number of midifications", 1, delta.getModifications().size()); PrismAsserts.assertPropertyReplace(delta, UserType.F_NAME, PrismTestUtil.createPolyString("other name")); assertEquals("Wrong OID", USER_JACK_OID, delta.getOid()); delta.checkConsistence(); }
private void assertAssignAccountToJack(LensContext<UserType> context) { display("Output context", context); // Not loading anything. The account is already loaded in the context assertCounterIncrement(InternalCounters.SHADOW_FETCH_OPERATION_COUNT, 0); assertTrue(context.getFocusContext().getPrimaryDelta().getChangeType() == ChangeType.MODIFY); assertSideEffectiveDeltasOnly(context.getFocusContext().getSecondaryDelta(), "user secondary delta", ActivationStatusType.ENABLED); assertFalse("No account changes", context.getProjectionContexts().isEmpty()); Collection<LensProjectionContext> accountContexts = context.getProjectionContexts(); assertEquals(1, accountContexts.size()); LensProjectionContext accContext = accountContexts.iterator().next(); assertNull("Account primary delta sneaked in", accContext.getPrimaryDelta()); ObjectDelta<ShadowType> accountSecondaryDelta = accContext.getSecondaryDelta(); assertEquals("Wrong decision", SynchronizationPolicyDecision.ADD,accContext.getSynchronizationPolicyDecision()); assertEquals(ChangeType.MODIFY, accountSecondaryDelta.getChangeType()); PrismAsserts.assertPropertyReplace(accountSecondaryDelta, getIcfsNameAttributePath() , "jack"); PrismAsserts.assertPropertyReplace(accountSecondaryDelta, getDummyResourceController().getAttributeFullnamePath() , "Jack Sparrow"); PrismAsserts.assertPropertyAdd(accountSecondaryDelta, getDummyResourceController().getAttributePath(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_WEAPON_NAME) , "mouth", "pistol"); PrismAsserts.assertOrigin(accountSecondaryDelta, OriginType.OUTBOUND); }
@Test public void testContainerDiffModificationsDesciption() throws Exception { System.out.println("\n\n===[ testContainerDiffModificationsDesciption ]===\n"); // GIVEN PrismObjectDefinition<UserType> userDef = getUserTypeDefinition(); PrismContainerDefinition<AssignmentType> assignmentContDef = userDef.findContainerDefinition(UserType.F_ASSIGNMENT); PrismContainer<AssignmentType> ass1 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass1cval = ass1.createNewValue(); ass1cval.setId(1L); ass1cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "blah blah", PrismTestUtil.getPrismContext()); PrismContainer<AssignmentType> ass2 = assignmentContDef.instantiate(); PrismContainerValue<AssignmentType> ass2cval = ass2.createNewValue(); ass2cval.setId(1L); ass2cval.setPropertyRealValue(AssignmentType.F_DESCRIPTION, "chamalalia patlama paprtala", PrismTestUtil.getPrismContext()); // WHEN Collection<? extends ItemDelta> modifications = ass1.diffModifications(ass2); // THEN assertNotNull(modifications); System.out.println(DebugUtil.debugDump(modifications)); assertEquals("Unexpected number of midifications", 1, modifications.size()); PrismAsserts.assertPropertyReplace( modifications, ItemPath.create(UserType.F_ASSIGNMENT, 1L, AssignmentType.F_DESCRIPTION), "chamalalia patlama paprtala"); ItemDeltaCollectionsUtil.checkConsistence(modifications); }
assertEquals("Wrong number of modificaitions", 8, jackDelta.getModifications().size()); PrismAsserts.assertPropertyReplace(jackDelta, USER_FULLNAME_QNAME, "Jack Sparrow"); PrismAsserts.assertNoItemDelta(jackDelta, USER_VALID_FROM_PATH); PrismAsserts.assertPropertyReplace(jackDelta, ItemPath.create(USER_ASSIGNMENT_QNAME, USER_ASSIGNMENT_2_ID, USER_DESCRIPTION_QNAME), "Assignment II");
PrismAsserts.assertNoItemDelta(leftObjectdelta, UserType.F_NAME); PrismAsserts.assertNoItemDelta(leftObjectdelta, UserType.F_GIVEN_NAME); PrismAsserts.assertPropertyReplace(leftObjectdelta, UserType.F_FAMILY_NAME); PrismAsserts.assertPropertyReplace(leftObjectdelta, UserType.F_FULL_NAME, createPolyString(USER_GUYBRUSH_FULL_NAME)); PrismAsserts.assertPropertyReplace(leftObjectdelta, UserType.F_ADDITIONAL_NAME); PrismAsserts.assertPropertyReplace(leftObjectdelta, UserType.F_LOCALITY, createPolyString(USER_GUYBRUSH_LOCALITY)); PrismAsserts.assertPropertyAdd(leftObjectdelta, UserType.F_SUBTYPE,
PrismAsserts.assertPropertyReplace(accountSecondaryDelta, PATH_ACTIVATION_ADMINISTRATIVE_STATUS, ActivationStatusType.DISABLED); PrismAsserts.assertPropertyReplace(accountSecondaryDelta, SchemaConstants.PATH_ACTIVATION_DISABLE_REASON, SchemaConstants.MODEL_DISABLE_REASON_MAPPED);
/** * Let's add user without a fullname. The expression in user template should compute it. */ @Test public void test600AddLargo() throws Exception { final String TEST_NAME = "test600AddLargo"; displayTestTitle(TEST_NAME); // GIVEN Task task = createTask(TEST_NAME); OperationResult result = task.getResult(); assumeAssignmentPolicy(AssignmentPolicyEnforcementType.FULL); LensContext<UserType> context = createUserLensContext(); PrismObject<UserType> user = PrismTestUtil.parseObject(USER_LARGO_FILE); fillContextWithAddUserDelta(context, user); display("Input context", context); assertFocusModificationSanity(context); // WHEN projector.project(context, "test", task, result); // THEN display("Output context", context); // TODO assertSame(context.getFocusContext().getPrimaryDelta().getChangeType(), ChangeType.ADD); ObjectDelta<UserType> userSecondaryDelta = context.getFocusContext().getSecondaryDelta(); assertNotNull("No user secondary delta", userSecondaryDelta); assertFalse("Empty user secondary delta", userSecondaryDelta.isEmpty()); PrismAsserts.assertPropertyReplace(userSecondaryDelta, UserType.F_FULL_NAME, PrismTestUtil.createPolyString("Largo LaGrande")); PrismAsserts.assertPropertyReplace(userSecondaryDelta, UserType.F_NICK_NAME, PrismTestUtil.createPolyString("Largo LaGrande")); // MID-2149 }
PrismAsserts.assertNoItemDelta(delta, UserType.F_NAME); PrismAsserts.assertNoItemDelta(delta, UserType.F_GIVEN_NAME); PrismAsserts.assertPropertyReplace(delta, UserType.F_FAMILY_NAME); PrismAsserts.assertPropertyReplace(delta, UserType.F_FULL_NAME, createPolyString(USER_JACK_FULL_NAME)); PrismAsserts.assertPropertyReplace(delta, UserType.F_ADDITIONAL_NAME, createPolyString(USER_JACK_ADDITIONAL_NAME)); PrismAsserts.assertPropertyReplace(delta, UserType.F_LOCALITY, createPolyString(USER_JACK_LOCALITY)); PrismAsserts.assertPropertyAdd(delta, UserType.F_SUBTYPE, USER_JACK_SUBTYPE); PrismAsserts.assertPropertyAdd(delta, UserType.F_ORGANIZATION,
PrismAsserts.assertPropertyReplace(accountSecondaryDelta, getDummyResourceController().getAttributeFullnamePath() , "Jack Sparrow");
assertEquals(ChangeType.MODIFY, accountSecondaryDelta.getChangeType()); assertEquals("Unexpected number of account secondary changes", 3, accountSecondaryDelta.getModifications().size()); PrismAsserts.assertPropertyReplace(accountSecondaryDelta, getDummyResourceController().getAttributePath(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_LOCATION_NAME) , "Tortuga");
assertEquals(ChangeType.MODIFY, accountSecondaryDelta.getChangeType()); assertEquals("Unexpected number of account secondary changes", 3, accountSecondaryDelta.getModifications().size()); PrismAsserts.assertPropertyReplace(accountSecondaryDelta, getDummyResourceController().getAttributePath(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_FULLNAME_NAME) , "Captain Hector Barbossa");
PrismAsserts.assertPropertyReplace(userSecondaryDelta, UserType.F_COST_CENTER);
assertNotNull("No account primary delta", accountPrimaryDelta); PrismAsserts.assertModifications(accountPrimaryDelta, 1); PrismAsserts.assertPropertyReplace(accountPrimaryDelta, getAttributePath(getDummyResourceObject(RESOURCE_DUMMY_BLUE_NAME), DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_FULLNAME_NAME), "Elaine Threepwood");
assertNotNull("No account primary delta", accountPrimaryDelta); PrismAsserts.assertModifications(accountPrimaryDelta, 1); PrismAsserts.assertPropertyReplace(accountPrimaryDelta, getAttributePath(getDummyResourceObject(), DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_FULLNAME_NAME), "Elaine Threepwood");