1 /* ====================================================================
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 2003 Digital Clash LLC. All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in
16 * the documentation and/or other materials provided with the
17 * distribution.
18 *
19 * 3. The end-user documentation included with the redistribution,
20 * if any, must include the following acknowledgment:
21 * "This product includes software developed by the
22 * ChronicJ team (http://www.chronicj.org/)."
23 * Alternately, this acknowledgment may appear in the software itself,
24 * if and wherever such third-party acknowledgments normally appear.
25 *
26 * 4. The names "ChronicJ" and "Digital Clash" not be used to endorse or
27 * promote products derived from this software without prior written
28 * permission. For written permission, please contact
29 * info@digitalclash.com.
30 *
31 * 5. Products derived from this software may not be called "ChronicJ",
32 * "Digital Clash", nor may "ChronicJ" or "Digital Clash" appear in
33 * their name, without prior written permission of Digital Clash LLC.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 * This product includes software developed by the by the
49 * Apache Software Foundation (http://www.apache.org/).
50 * ====================================================================
51 */
52 package org.chronicj.impl;
53
54 import org.chronicj.DatePrecision;
55 import org.chronicj.TemporalExpression;
56 import org.chronicj.TemporalExpressionTest;
57 import org.chronicj.TimePoint;
58
59
60 /***
61 * JUnit Test for DayInMonthTE that extends and implements {@link
62 * org.chronicj.TemporalExpressionTest}.
63 *
64 * @author <a href="mlipper@US-ABP.com">Matthew Lipper</a>
65 *
66 * @see <a href="http://junit.org">JUnit</a>
67 */
68 public class DayInMonthTETest extends TemporalExpressionTest {
69 /***
70 * Creates a new DayInMonthTETest object.
71 *
72 * @param arg0 DOCUMENT ME!
73 */
74 public DayInMonthTETest(String arg0) {
75 super(arg0);
76 }
77
78 /*
79 * @see org.chronicj.TemporalExpressionTest#initExpressionsAndResults(org.chronicj.DatePrecision)
80 */
81 protected void initExpressionsAndResults(DatePrecision precision)
82 throws Exception {
83 testExpression = new TemporalExpression[3];
84
85 if (DatePrecision.DATE.equals(precision)) {
86 expectedTimePoint = new TimePoint[3][2];
87 notExpectedTimePoint = new TimePoint[3][2];
88
89 /* ### First Thursday of the month ### */
90 testExpression[0] = new DayInMonthTE(5, 1);
91
92 //Thursday, July 3rd, 2003
93 expectedTimePoint[0][0] = new TimePoint(2003, 7, 3);
94
95 //Thursday, December 11th, 2003
96 notExpectedTimePoint[0][1] = new TimePoint(2003, 12, 11);
97
98 /* ### Second to last Friday of the month ### */
99 testExpression[1] = new DayInMonthTE(6, -2);
100
101 //Friday, August 22nd, 2003
102 expectedTimePoint[1][0] = new TimePoint(2003, 8, 22);
103
104 //Friday, January 30th, 2004
105 notExpectedTimePoint[1][1] = new TimePoint(2003, 1, 30);
106
107 /* ### Sunday ### */
108 testExpression[2] = new DayInMonthTE(1);
109
110 //Sunday, November 30th, 2003
111 expectedTimePoint[2][0] = new TimePoint(2003, 11, 30);
112
113 //Saturday, December 1st, 2003
114 notExpectedTimePoint[2][1] = new TimePoint(2003, 12, 1);
115 }
116 }
117
118 /* (non-Javadoc)
119 * @see org.chronicj.TemporalExpressionTest#supports(org.chronicj.DatePrecision)
120 */
121 protected boolean supports(DatePrecision precision)
122 throws Exception {
123 if (DatePrecision.DATE.equals(precision)) {
124 return true;
125 }
126
127 return false;
128 }
129 }
This page was automatically generated by Maven