package net.joelinn.quartz.mixin; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import net.joelinn.quartz.jobstore.mixin.TriggerMixin; import org.junit.Before; import org.junit.Test; import org.quartz.SimpleScheduleBuilder; import org.quartz.SimpleTrigger; import org.quartz.TriggerBuilder; import org.quartz.impl.triggers.SimpleTriggerImpl; import java.util.HashMap; import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.collection.IsMapContaining.hasKey; import static org.junit.Assert.assertEquals; /** * Joe Linn * 7/15/2014 */ public class SimpleTriggerMixinTest { protected ObjectMapper mapper; @Before public void setUp(){ mapper = new ObjectMapper(); mapper.addMixIn(SimpleTrigger.class, TriggerMixin.class); } @Test public void serialization(){ SimpleTrigger trigger = TriggerBuilder.newTrigger() .forJob("testJob", "testGroup") .withIdentity("testTrigger", "testTriggerGroup") .usingJobData("timeout", 5) .withDescription("A description!") .withSchedule(SimpleScheduleBuilder.repeatHourlyForever()) .build(); Map<String, String> triggerMap = mapper.convertValue(trigger, new TypeReference<HashMap<String, String>>() {}); assertThat(triggerMap, hasKey("name")); assertEquals("testTrigger", triggerMap.get("name")); assertThat(triggerMap, hasKey("group")); assertEquals("testTriggerGroup", triggerMap.get("group")); assertThat(triggerMap, hasKey("jobName")); assertEquals("testJob", triggerMap.get("jobName")); SimpleTriggerImpl simpleTrigger = mapper.convertValue(triggerMap, SimpleTriggerImpl.class); assertEquals(trigger.getKey().getName(), simpleTrigger.getKey().getName()); assertEquals(trigger.getKey().getGroup(), simpleTrigger.getKey().getGroup()); assertEquals(trigger.getStartTime(), simpleTrigger.getStartTime()); assertEquals(trigger.getRepeatInterval(), simpleTrigger.getRepeatInterval()); } }