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()); }
public static void copyFromJAXB(AccessCertificationCampaignType jaxb, RAccessCertificationCampaign repo, RepositoryContext repositoryContext, IdGeneratorResult generatorResult) throws DtoTranslationException { copyAssignmentHolderInformationFromJAXB(jaxb, repo, repositoryContext, generatorResult); repo.setNameCopy(RPolyString.copyFromJAXB(jaxb.getName())); repo.setDefinitionRef(RUtil.jaxbRefToEmbeddedRepoRef(jaxb.getDefinitionRef(), repositoryContext.relationRegistry)); List<AccessCertificationCaseType> cases = jaxb.getCase(); if (!cases.isEmpty()) { for (AccessCertificationCaseType case1 : cases) { RAccessCertificationCase rCase = RAccessCertificationCase.toRepo(repo, case1, repositoryContext); rCase.setTransient(generatorResult.isTransient(case1.asPrismContainerValue())); // redundant? repo.getCase().add(rCase); } } repo.setOwnerRefCampaign(RUtil.jaxbRefToEmbeddedRepoRef(jaxb.getOwnerRef(), repositoryContext.relationRegistry)); repo.setHandlerUri(jaxb.getHandlerUri()); repo.setStart(jaxb.getStartTimestamp()); repo.setEnd(jaxb.getEndTimestamp()); repo.setState(RUtil.getRepoEnumValue(jaxb.getState(), RAccessCertificationCampaignState.class)); repo.setIteration(norm(jaxb.getIteration())); repo.setStageNumber(jaxb.getStageNumber()); } }
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); }