private void assertValidityTimestamp(PrismObject<UserType> user, XMLGregorianCalendar expected) { ActivationType activation = user.asObjectable().getActivation(); assertNotNull("No activation in "+user, activation); XMLGregorianCalendar validityChangeTimestamp = activation.getValidityChangeTimestamp(); assertNotNull("No validityChangeTimestamp in "+user, validityChangeTimestamp); assertEquals("wrong validityChangeTimestamp", expected, validityChangeTimestamp); }
public static void fromJaxb(ActivationType jaxb, RActivation repo, RepositoryContext repositoryContext) throws DtoTranslationException { Validate.notNull(jaxb, "JAXB object must not be null."); Validate.notNull(repo, "Repo object must not be null."); repo.setAdministrativeStatus(RUtil.getRepoEnumValue(jaxb.getAdministrativeStatus(), RActivationStatus.class)); repo.setEffectiveStatus(RUtil.getRepoEnumValue(jaxb.getEffectiveStatus(), RActivationStatus.class)); repo.setValidityStatus(RUtil.getRepoEnumValue(jaxb.getValidityStatus(), RTimeIntervalStatus.class)); repo.setValidFrom(jaxb.getValidFrom()); repo.setValidTo(jaxb.getValidTo()); repo.setDisableReason(jaxb.getDisableReason()); repo.setArchiveTimestamp(jaxb.getArchiveTimestamp()); repo.setDisableTimestamp(jaxb.getDisableTimestamp()); repo.setEnableTimestamp(jaxb.getEnableTimestamp()); repo.setValidityChangeTimestamp(jaxb.getValidityChangeTimestamp()); }
private void assertValidityTimestamp(PrismObject<UserType> user, long expected) { ActivationType activation = user.asObjectable().getActivation(); assertNotNull("No activation in "+user, activation); XMLGregorianCalendar validityChangeTimestamp = activation.getValidityChangeTimestamp(); assertNotNull("No validityChangeTimestamp in "+user, validityChangeTimestamp); assertEquals("wrong validityChangeTimestamp", expected, XmlTypeConverter.toMillis(validityChangeTimestamp)); }
private void assertValidityTimestamp(PrismObject<UserType> user, long lowerBound, long upperBound) { ActivationType activation = user.asObjectable().getActivation(); assertNotNull("No activation in "+user, activation); XMLGregorianCalendar validityChangeTimestamp = activation.getValidityChangeTimestamp(); assertNotNull("No validityChangeTimestamp in "+user, validityChangeTimestamp); long validityMillis = XmlTypeConverter.toMillis(validityChangeTimestamp); if (validityMillis >= lowerBound && validityMillis <= upperBound) { return; } AssertJUnit.fail("Expected validityChangeTimestamp to be between "+lowerBound+" and "+upperBound+", but it was "+validityMillis); }
public static void checkShadowActivationConsistency(PrismObject<ShadowType> shadow) { if (shadow == null) { // just for sure return; } ActivationType activation = shadow.asObjectable().getActivation(); if (activation == null) { return; } FailedOperationTypeType failedOperation = shadow.asObjectable().getFailedOperationType(); if (failedOperation == FailedOperationTypeType.ADD) { return; // in this case it's ok to have activation present } if (activation.getAdministrativeStatus() != null || activation.getEffectiveStatus() != null || activation.getValidFrom() != null || activation.getValidTo() != null || activation.getValidityStatus() != null || activation.getLockoutStatus() != null || activation.getLockoutExpirationTimestamp() != null || activation.getValidityChangeTimestamp() != null) { String m = "Unexpected content in shadow.activation for " + ObjectTypeUtil.toShortString(shadow) + ": " + activation; LOGGER.warn("{}", m); //throw new IllegalStateException(m); // use only for testing } }
@Test public void test211ModifyLargoValidToManana() throws Exception { final String TEST_NAME = "test211ModifyLargoValidToManana"; displayTestTitle(TEST_NAME); // GIVEN long startMillis = System.currentTimeMillis(); Task task = taskManager.createTaskInstance(TestActivation.class.getName() + "." + TEST_NAME); OperationResult result = task.getResult(); manana = XmlTypeConverter.createXMLGregorianCalendar(System.currentTimeMillis() + 10 * 24 * 60 * 60 * 1000); // WHEN modifyUserReplace(USER_LARGO_OID, ACTIVATION_VALID_TO_PATH, task, result, manana); // THEN PrismObject<UserType> userLargo = getUser(USER_LARGO_OID); display("User after change execution", userLargo); assertValidity(userLargo, TimeIntervalStatusType.IN); assertValidityTimestamp(userLargo, startMillis, System.currentTimeMillis()); lastValidityChangeTimestamp = userLargo.asObjectable().getActivation().getValidityChangeTimestamp(); assertEffectiveStatus(userLargo, ActivationStatusType.ENABLED); assertUser(userLargo, USER_LARGO_OID, USER_LARGO_USERNAME, "Largo LaGrande", "Largo", "LaGrande"); accountOid = getSingleLinkOid(userLargo); // Check shadow PrismObject<ShadowType> accountShadow = repositoryService.getObject(ShadowType.class, accountOid, null, result); assertDummyAccountShadowRepo(accountShadow, accountOid, USER_LARGO_USERNAME); // Check account PrismObject<ShadowType> accountModel = modelService.getObject(ShadowType.class, accountOid, null, task, result); assertDummyAccountShadowModel(accountModel, accountOid, USER_LARGO_USERNAME, "Largo LaGrande"); // Check account in dummy resource assertDefaultDummyAccount(USER_LARGO_USERNAME, "Largo LaGrande", true); }
i = i.item(ShadowType.F_ACTIVATION, ActivationType.F_LOCKOUT_EXPIRATION_TIMESTAMP).replace(); if (activation.getValidityChangeTimestamp() != null) { i = i.item(ShadowType.F_ACTIVATION, ActivationType.F_VALIDITY_CHANGE_TIMESTAMP).replace();
@Test public void test217ModifyLargoRemoveValidFrom() throws Exception { final String TEST_NAME = "test217ModifyLargoRemoveValidFrom"; displayTestTitle(TEST_NAME); // GIVEN long startMillis = clock.currentTimeMillis(); Task task = taskManager.createTaskInstance(TestActivation.class.getName() + "." + TEST_NAME); OperationResult result = task.getResult(); // WHEN modifyUserReplace(USER_LARGO_OID, ACTIVATION_VALID_FROM_PATH, task, result); // THEN PrismObject<UserType> userLargo = getUser(USER_LARGO_OID); display("User after change execution", userLargo); assertValidity(userLargo, null); assertValidityTimestamp(userLargo, startMillis, clock.currentTimeMillis()); lastValidityChangeTimestamp = userLargo.asObjectable().getActivation().getValidityChangeTimestamp(); assertEffectiveStatus(userLargo, ActivationStatusType.ENABLED); assertUser(userLargo, USER_LARGO_OID, USER_LARGO_USERNAME, "Largo LaGrande", "Largo", "LaGrande"); accountOid = getSingleLinkOid(userLargo); // Check shadow PrismObject<ShadowType> accountShadow = repositoryService.getObject(ShadowType.class, accountOid, null, result); assertDummyAccountShadowRepo(accountShadow, accountOid, USER_LARGO_USERNAME); // Check account PrismObject<ShadowType> accountModel = modelService.getObject(ShadowType.class, accountOid, null, task, result); assertDummyAccountShadowModel(accountModel, accountOid, USER_LARGO_USERNAME, "Largo LaGrande"); // Check account in dummy resource assertDefaultDummyAccount(USER_LARGO_USERNAME, "Largo LaGrande", true); }
@Test public void test215ModifyLargoRemoveValidTo() throws Exception { final String TEST_NAME = "test215ModifyLargoRemoveValidTo"; displayTestTitle(TEST_NAME); // GIVEN long startMillis = clock.currentTimeMillis(); Task task = taskManager.createTaskInstance(TestActivation.class.getName() + "." + TEST_NAME); OperationResult result = task.getResult(); // WHEN modifyUserDelete(USER_LARGO_OID, ACTIVATION_VALID_TO_PATH, task, result, manana); // THEN PrismObject<UserType> userLargo = getUser(USER_LARGO_OID); display("User after change execution", userLargo); assertValidity(userLargo, TimeIntervalStatusType.IN); assertValidityTimestamp(userLargo, startMillis, clock.currentTimeMillis()); lastValidityChangeTimestamp = userLargo.asObjectable().getActivation().getValidityChangeTimestamp(); assertEffectiveStatus(userLargo, ActivationStatusType.ENABLED); assertUser(userLargo, USER_LARGO_OID, USER_LARGO_USERNAME, "Largo LaGrande", "Largo", "LaGrande"); accountOid = getSingleLinkOid(userLargo); // Check shadow PrismObject<ShadowType> accountShadow = repositoryService.getObject(ShadowType.class, accountOid, null, result); assertDummyAccountShadowRepo(accountShadow, accountOid, USER_LARGO_USERNAME); // Check account PrismObject<ShadowType> accountModel = modelService.getObject(ShadowType.class, accountOid, null, task, result); assertDummyAccountShadowModel(accountModel, accountOid, USER_LARGO_USERNAME, "Largo LaGrande"); // Check account in dummy resource assertDefaultDummyAccount(USER_LARGO_USERNAME, "Largo LaGrande", true); }
if (activationNew != null) { validityStatusNew = activationComputer.getValidityStatus(activationNew, now); validityChangeTimestamp = activationNew.getValidityChangeTimestamp();
resultActivationType.setDisableTimestamp(repoActivation.getDisableTimestamp()); resultActivationType.setArchiveTimestamp(repoActivation.getArchiveTimestamp()); resultActivationType.setValidityChangeTimestamp(repoActivation.getValidityChangeTimestamp());