/**
* Copyright 2010 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.time.impl;
import junit.framework.TestCase;
import java.text.ParseException;
import java.util.Set;
public class Quartz601Test extends TestCase {
public void testNormal() {
for(int i=0; i<6; i++) {
assertParsesForField("0 15 10 * * ? 2005", i);
}
}
public void testSecond() {
assertParsesForField("58-4 5 21 ? * MON-FRI", 0);
}
public void testMinute() {
assertParsesForField("0 58-4 21 ? * MON-FRI", 1);
}
public void testHour() {
assertParsesForField("0 0/5 21-3 ? * MON-FRI", 2);
}
public void testDayOfWeekNumber() {
assertParsesForField("58 5 21 ? * 6-2", 5);
}
public void testDayOfWeek() {
assertParsesForField("58 5 21 ? * FRI-TUE", 5);
}
public void testDayOfMonth() {
assertParsesForField("58 5 21 28-5 1 ?", 3);
}
public void testMonth() {
assertParsesForField("58 5 21 ? 11-2 FRI", 4);
}
public void testAmbiguous() {
System.err.println( assertParsesForField("0 0 14-6 ? * FRI-MON", 2) );
System.err.println( assertParsesForField("0 0 14-6 ? * FRI-MON", 5) );
System.err.println( assertParsesForField("55-3 56-2 6 ? * FRI", 0) );
System.err.println( assertParsesForField("55-3 56-2 6 ? * FRI", 1) );
}
private Set assertParsesForField(String expression, int constant) {
try {
TestCronExpression cronExpression = new TestCronExpression(expression);
Set set = cronExpression.getSetPublic(constant);
if(set.size() == 0) {
fail("Empty field ["+constant+"] returned for " + expression);
}
return set;
} catch(ParseException pe) {
fail("Exception thrown during parsing: " + pe);
}
return null; // not reachable
}
}
class TestCronExpression extends CronExpression {
public TestCronExpression(String cronExpression) throws ParseException {
super(cronExpression);
}
public Set getSetPublic(int constant) {
return super.getSet(constant);
}
}