public AccessCertificationCampaignType stage(AccessCertificationStageType value) { getStage().add(value); return this; }
public static AccessCertificationStageType getCurrentStage(AccessCertificationCampaignType campaign) { for (AccessCertificationStageType stage : campaign.getStage()) { if (stage.getNumber() == campaign.getStageNumber() && norm(stage.getIteration()) == norm(campaign.getIteration())) { return stage; } } return null; }
protected void assertSanityAfterStageOpen(AccessCertificationCampaignType campaign, AccessCertificationDefinitionType definition, int stageNumber, int iteration, int expectedStages) { assertStateStageIteration(campaign, IN_REVIEW_STAGE, stageNumber, iteration); assertDefinitionAndOwner(campaign, definition); assertApproximateTime("start time", new Date(), campaign.getStartTimestamp()); assertNull("Unexpected end time", campaign.getEndTimestamp()); assertEquals("wrong # of defined stages", definition.getStageDefinition().size(), campaign.getStageDefinition().size()); assertEquals("wrong # of stages", expectedStages, campaign.getStage().size()); AccessCertificationStageType stage = CertCampaignTypeUtil.findStage(campaign, stageNumber); assertEquals("wrong stage #", stageNumber, stage.getNumber()); assertApproximateTime("stage start", new Date(), stage.getStartTimestamp()); assertNotNull("stage deadline", stage.getDeadline()); // too lazy to compute exact datetime assertNull("unexpected stage end", stage.getEndTimestamp()); }
assertDefinitionAndOwner(campaign, certificationDefinition, USER_BOB_OID); assertApproximateTime("end time", new Date(), campaign.getEndTimestamp()); assertEquals("wrong # of stages", 1, campaign.getStage().size()); assertApproximateTime("stage 1 end", new Date(), campaign.getStage().get(0).getEndTimestamp());
protected void assertSanityAfterCampaignStart(AccessCertificationCampaignType campaign, AccessCertificationDefinitionType definition, int cases, int iteration, int expectedStages, Date expectedStartTime) throws ConfigurationException, ObjectNotFoundException, SchemaException, CommunicationException, SecurityViolationException, ExpressionEvaluationException { assertStateStageIteration(campaign, IN_REVIEW_STAGE, 1, iteration); assertDefinitionAndOwner(campaign, definition); assertApproximateTime("start time", expectedStartTime, campaign.getStartTimestamp()); assertNull("Unexpected end time", campaign.getEndTimestamp()); assertEquals("wrong # of defined stages", definition.getStageDefinition().size(), campaign.getStageDefinition().size()); assertEquals("wrong # of stages", expectedStages, campaign.getStage().size()); AccessCertificationStageType stage = campaign.getStage().stream().filter(s -> norm(s.getIteration()) == iteration && s.getNumber() == 1).findFirst().orElse(null); assertNotNull("No stage #1 for current iteration", stage); assertEquals("wrong stage #", 1, stage.getNumber()); assertApproximateTime("stage 1 start", expectedStartTime, stage.getStartTimestamp()); assertNotNull("stage 1 deadline", stage.getDeadline()); // too lazy to compute exact datetime assertNull("unexpected stage 1 end", stage.getEndTimestamp()); assertEquals("Wrong number of certification cases", cases, campaign.getCase().size()); PrismObject<AccessCertificationDefinitionType> def = getObjectViaRepo(AccessCertificationDefinitionType.class, definition.getOid()); if (iteration == 1) { assertApproximateTime("last campaign started", expectedStartTime, def.asObjectable().getLastCampaignStartedTimestamp()); assertNull("unexpected last campaign closed", def.asObjectable().getLastCampaignClosedTimestamp()); } else { assertNotNull("last campaign closed", def.asObjectable().getLastCampaignClosedTimestamp()); } assertCasesCount(campaign.getOid(), cases); }
public List<AccessCertificationStageType> createStageList() { PrismForJAXBUtil.createContainer(asPrismContainerValue(), F_STAGE); return getStage(); }
assertDefinitionAndOwner(campaign, certificationDefinition); assertApproximateTime("end time", new Date(), campaign.getEndTimestamp()); assertEquals("wrong # of stages", 4, campaign.getStage().size());
@NotNull public static AccessCertificationStageType findStage(AccessCertificationCampaignType campaign, int stageNumber) { for (AccessCertificationStageType stage : campaign.getStage()) { if (stage.getNumber() == stageNumber && norm(stage.getIteration()) == norm(campaign.getIteration())) { return stage; } } throw new IllegalStateException("No stage " + stageNumber + " (iteration " + norm(campaign.getIteration()) + " in " + ObjectTypeUtil.toShortString(campaign)); }
assertDefinitionAndOwner(campaign, certificationDefinition); assertApproximateTime("end time", new Date(), campaign.getEndTimestamp()); assertEquals("wrong # of stages", 1, campaign.getStage().size());
protected void assertSanityAfterStageClose(AccessCertificationCampaignType campaign, AccessCertificationDefinitionType definition, int stageNumber, int iteration, int expectedStages) { assertStateStageIteration(campaign, REVIEW_STAGE_DONE, stageNumber, iteration); assertDefinitionAndOwner(campaign, definition); assertNull("Unexpected end time", campaign.getEndTimestamp()); assertEquals("wrong # of stages", expectedStages, campaign.getStage().size()); AccessCertificationStageType stage = CertCampaignTypeUtil.getCurrentStage(campaign); assertNotNull(stage); assertEquals("wrong stage #", stageNumber, stage.getNumber()); assertEquals("wrong stage iteration #", iteration, norm(stage.getIteration())); assertApproximateTime("stage start", new Date(), stage.getStartTimestamp()); assertApproximateTime("stage end", new Date(), stage.getStartTimestamp()); for (AccessCertificationCaseType aCase : campaign.getCase()) { if (aCase.getStageNumber() != stageNumber || norm(aCase.getIteration()) != iteration) { continue; } checkCaseOutcomesSanity(aCase, campaign, stageNumber); } }
assertDefinitionAndOwner(campaign, certificationDefinition); assertApproximateTime("end time", new Date(), campaign.getEndTimestamp()); assertEquals("wrong # of stages", 2, campaign.getStage().size());