/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2012-2015 ForgeRock AS. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * http://forgerock.org/license/CDDLv1.0.html * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at http://forgerock.org/license/CDDLv1.0.html * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * */ package org.forgerock.openidm.quartz.impl; import java.util.Date; import java.util.Set; import org.assertj.core.api.Assertions; import org.quartz.JobDetail; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; /** * Tests {@link RepoJobStore} */ public class TestRepoJobstore { private RepoJobStore jobStore; private SimpleSignaler signaler; @BeforeMethod public void setUp() { signaler = new SimpleSignaler(); jobStore = new RepoJobStore(); //jobStore.setRepositoryService(Resources.newCollection(new MemoryBackend())); jobStore.setSchedulerSignaler(signaler); } @AfterMethod public void tearDown() { jobStore = null; } @SuppressWarnings("unchecked") public void disabletestStoreRetrieveRemoveTrigger() throws Exception { Trigger trigger = new SimpleTrigger("trigger1", "group1", new Date()); Trigger retrievedTrigger1 = null; Trigger retrievedTrigger2 = null; jobStore.storeTrigger(null, trigger, false); retrievedTrigger1 = jobStore.retrieveTrigger(null, trigger.getName(), trigger.getGroup()); jobStore.removeTrigger(null, trigger.getName(), trigger.getGroup()); retrievedTrigger2 = jobStore.retrieveTrigger(null, trigger.getName(), trigger.getGroup()); Assertions.assertThat(trigger).isEqualTo(retrievedTrigger1); Assertions.assertThat(retrievedTrigger2).isNotNull(); } public void disabletestStoreRetrieveRemoveJob() throws Exception { JobDetail job = new JobDetail("job1", "group1", SimpleJob.class); JobDetail retrievedJob1 = null; JobDetail retrievedJob2 = null; jobStore.storeJob(null, job, false); retrievedJob1 = jobStore.retrieveJob(null, job.getName(), job.getGroup()); jobStore.removeJob(null, job.getName(), job.getGroup()); retrievedJob2 = jobStore.retrieveJob(null, job.getName(), job.getGroup()); Assertions.assertThat(job).isEqualTo(retrievedJob1); Assertions.assertThat(retrievedJob2).isNotNull(); } @SuppressWarnings("unchecked") public void disabletestStoreJobAndTrigger() throws Exception { Trigger trigger = new SimpleTrigger("trigger1", "group1", new Date()); JobDetail job = new JobDetail("job1", "group1", SimpleJob.class); Trigger retrievedTrigger1 = null; JobDetail retrievedJob = null; jobStore.storeJobAndTrigger(null, job, trigger); retrievedJob = jobStore.retrieveJob(null, job.getName(), job.getGroup()); retrievedTrigger1 = jobStore.retrieveTrigger(null, trigger.getName(), trigger.getGroup()); jobStore.removeTrigger(null, trigger.getName(), trigger.getGroup()); jobStore.removeJob(null, job.getName(), job.getGroup()); Assertions.assertThat(job).isEqualTo(retrievedJob); Assertions.assertThat(trigger).isEqualTo(retrievedTrigger1); Assertions.assertThat(jobStore.retrieveTrigger(null, trigger.getName(), trigger.getGroup())).isNull(); Assertions.assertThat(jobStore.retrieveJob(null, job.getName(), job.getGroup())).isNull(); } public void disabletestJobState() throws Exception { Trigger trigger = new SimpleTrigger("trigger1", "group1", new Date()); JobDetail job = new JobDetail("job1", "group1", SimpleJob.class); jobStore.storeJobAndTrigger(null, job, trigger); Assertions.assertThat(0).isEqualTo(jobStore.getPausedTriggerGroups(null).size()); jobStore.pauseTriggerGroup(null, "group1"); Set<String> paused = jobStore.getPausedTriggerGroups(null); Assertions.assertThat(1).isEqualTo(paused.size()); String pausedGroup = paused.iterator().next(); Assertions.assertThat("group1").isEqualTo(pausedGroup); jobStore.resumeAll(null); Assertions.assertThat(0).isEqualTo(jobStore.getPausedTriggerGroups(null).size()); } /*public void disabletestAcquireNextTrigger() throws Exception { long currentTime = System.currentTimeMillis(); Date start1 = new Date(currentTime + 10000); Date start2 = new Date(currentTime + 20000); Date start3 = new Date(currentTime - 3600000); Date end1 = new Date(currentTime + 11000); Date end2 = new Date(currentTime + 21000); Date end3 = new Date(currentTime - 3500000); JobDetail job = new JobDetail("job1", "group1", SimpleJob.class); Trigger trigger1 = new SimpleTrigger("trigger1", "group1", job.getName(), job.getGroup(), start1, end1, 2, 2000); Trigger trigger2 = new SimpleTrigger("trigger2", "group1", job.getName(), job.getGroup(), start2, end2, 2, 2000); Trigger trigger3 = new SimpleTrigger("trigger3", "group1", job.getName(), job.getGroup(), start3, end3, 2, 2000); trigger1.computeFirstFireTime(null); trigger2.computeFirstFireTime(null); trigger3.computeFirstFireTime(null); jobStore.storeTrigger(null, trigger1, false); jobStore.storeTrigger(null, trigger2, false); jobStore.storeTrigger(null, trigger3, false); assertEquals(trigger1, jobStore.acquireNextTrigger(null, currentTime + 2000)); assertEquals(trigger2, jobStore.acquireNextTrigger(null, currentTime + 2000)); assertEquals(trigger3, jobStore.acquireNextTrigger(null, currentTime + 2000)); assertNull(jobStore.acquireNextTrigger(null, currentTime + 3600000)); assertEquals(1, signaler.getMisfiredCount()); jobStore.releaseAcquiredTrigger(null, trigger2); jobStore.releaseAcquiredTrigger(null, trigger1); assertEquals(trigger1, jobStore.acquireNextTrigger(null, currentTime + 3600000)); assertEquals(trigger2, jobStore.acquireNextTrigger(null, currentTime + 3600000)); assertNull(jobStore.acquireNextTrigger(null, currentTime + 3600000)); jobStore.removeTrigger(null, trigger1.getName(), trigger1.getGroup()); jobStore.removeTrigger(null, trigger2.getName(), trigger2.getGroup()); jobStore.removeTrigger(null, trigger3.getName(), trigger3.getGroup()); signaler.clear(); }*/ }