/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestTask.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.scheduler; import com.uwyn.rife.scheduler.Task; import com.uwyn.rife.scheduler.exceptions.FrequencyException; import com.uwyn.rife.site.ValidationError; import com.uwyn.rife.tools.ExceptionUtils; import java.util.Calendar; import java.util.Iterator; import java.util.Set; import junit.framework.TestCase; public class TestTask extends TestCase { public TestTask(String name) { super(name); } public void testInstantiateTask() { Task task = null; assertNull(task); task = new Task(); assertNotNull(task); } public void testPopulateTask() { int id = 1; String type = TestTasktypes.UPLOAD_GROUPS; long planned = System.currentTimeMillis(); String frequency = "* * * * *"; boolean busy = true; try { Task task = new Task(); task.setId(id); task.setType(type); task.setPlanned(planned); task.setFrequency(frequency); task.setBusy(busy); assertEquals(id, task.getId()); assertEquals(type, task.getType()); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(planned); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); assertEquals(calendar.getTimeInMillis(), task.getPlanned()); assertEquals(frequency, task.getFrequency()); assertEquals(busy, task.isBusy()); } catch (FrequencyException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } } public void testCloneTask() { int id = 1; String type = TestTasktypes.UPLOAD_GROUPS; long planned = System.currentTimeMillis(); String frequency = "* * * * *"; boolean busy = true; try { Task task = new Task(); task.setId(id); task.setType(type); task.setPlanned(planned); task.setFrequency(frequency); task.setBusy(busy); Task task_clone = task.clone(); assertTrue(task != task_clone); assertNotNull(task_clone); assertTrue(task.equals(task_clone)); } catch (FrequencyException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } catch (CloneNotSupportedException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } } public void testTaskValidation() { try { Task task = new Task(); assertTrue(false == task.validate()); assertTrue(2 == task.countValidationErrors()); ValidationError error = null; Iterator<ValidationError> it = task.getValidationErrors().iterator(); error = it.next(); assertEquals(error.getIdentifier(), "MANDATORY"); assertEquals(error.getSubject(), "type"); error = it.next(); assertEquals(error.getIdentifier(), "MANDATORY"); assertEquals(error.getSubject(), "planned"); task.setType(TestTasktypes.UPLOAD_GROUPS); task.setPlanned(System.currentTimeMillis()+2000); task.setFrequency("* * * * *"); task.setBusy(false); task.resetValidation(); assertTrue(true == task.validate()); Calendar cal = Calendar.getInstance(); cal.set(1970, 10, 25); task.setPlanned(cal.getTime()); task.resetValidation(); assertTrue(false == task.validate()); assertTrue(1 == task.countValidationErrors()); Set<ValidationError> set = task.getValidationErrors(); error = set.iterator().next(); assertEquals(error.getIdentifier(), "INVALID"); assertEquals(error.getSubject(), "planned"); task.setPlanned(System.currentTimeMillis()+2000); task.setFrequency(null); task.resetValidation(); assertTrue(true == task.validate()); task.setFrequency("* * * * *"); } catch (FrequencyException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } } }