public AccessCertificationCampaignType stageDefinition(AccessCertificationStageDefinitionType value) { getStageDefinition().add(value); return this; }
public static int getNumberOfStages(AccessCertificationCampaignType campaign) { return campaign.getStageDefinition().size(); }
@NotNull public static AccessCertificationStageDefinitionType findStageDefinition(AccessCertificationCampaignType campaign, int stageNumber) { for (AccessCertificationStageDefinitionType stage : campaign.getStageDefinition()) { if (stage.getNumber() == stageNumber) { return stage; } } throw new IllegalStateException("No stage " + stageNumber + " in " + ObjectTypeUtil.toShortString(campaign)); }
public List<AccessCertificationStageDefinitionType> createStageDefinitionList() { PrismForJAXBUtil.createContainer(asPrismContainerValue(), F_STAGE_DEFINITION); return getStageDefinition(); }
protected void assertSanityAfterCampaignCreate(AccessCertificationCampaignType campaign, AccessCertificationDefinitionType definition) { assertEquals("Unexpected certification cases", 0, campaign.getCase().size()); assertStateAndStage(campaign, CREATED, 0); assertEquals("Unexpected # of stages", definition.getStageDefinition().size(), campaign.getStageDefinition().size()); assertDefinitionAndOwner(campaign, definition); assertNull("Unexpected start time", campaign.getStartTimestamp()); assertNull("Unexpected end time", campaign.getEndTimestamp()); } protected void assertSanityAfterCampaignStart(AccessCertificationCampaignType campaign, AccessCertificationDefinitionType definition, int cases)
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()); }
newCampaign.setReiterationDefinition(definition.getReiterationDefinition()); newCampaign.getStageDefinition().addAll(CloneUtil.cloneCollectionMembers(definition.getStageDefinition())); CertCampaignTypeUtil.checkStageDefinitionConsistency(newCampaign.getStageDefinition());
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); }