01: /*
02: * Copyright 2006-2007 The Kuali Foundation.
03: *
04: * Licensed under the Educational Community License, Version 1.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.opensource.org/licenses/ecl1.php
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16: package org.kuali.module.chart.bo;
17:
18: import java.sql.Timestamp;
19: import java.text.ParseException;
20:
21: import org.kuali.core.service.DateTimeService;
22: import org.kuali.kfs.context.KualiTestBase;
23: import org.kuali.kfs.context.SpringContext;
24: import org.kuali.test.ConfigureContext;
25:
26: /**
27: * This class...
28: */
29: @ConfigureContext
30: public class AccountTest extends KualiTestBase {
31:
32: private static final String TEST_DATE_1_TODAY = "04/22/2002 07:48 PM";
33: private static final String TEST_DATE_1_YESTERDAY = "04/21/2002 07:48 PM";
34: private static final String TEST_DATE_1_TOMORROW = "04/23/2002 07:48 PM";
35:
36: private static final String TEST_DATE_2_TODAY = "04/22/2002 10:23 AM";
37: private static final String TEST_DATE_2_YESTERDAY = "04/21/2002 10:23 AM";
38: private static final String TEST_DATE_2_TOMORROW = "04/23/2002 10:23 AM";
39:
40: private static final String TEST_DATE_3_TODAY = "04/22/2002 06:14 AM";
41: private static final String TEST_DATE_3_YESTERDAY = "04/21/2002 06:14 AM";
42: private static final String TEST_DATE_3_TOMORROW = "04/23/2002 06:14 AM";
43:
44: // pass this a name, and it returns a setup timestamp instance
45: private Timestamp getTimestamp(String timestampString) {
46: Timestamp timestamp;
47: try {
48: timestamp = SpringContext.getBean(DateTimeService.class)
49: .convertToSqlTimestamp(timestampString);
50: } catch (ParseException e) {
51: assertNull("Timestamp String was not parseable", e);
52: return null;
53: }
54: return timestamp;
55: }
56:
57: // since all the tests are doing the same thing, this is centralized
58: private void doTest(String expirationDateString,
59: String testDateString, boolean expectedResult) {
60:
61: Timestamp expirationDate = getTimestamp(expirationDateString);
62: Timestamp testDate = getTimestamp(testDateString);
63:
64: // setup the account, and set its expiration date
65: Account account = new Account();
66: account.setAccountExpirationDate(expirationDate);
67:
68: // test against isExpired, and get the result
69: boolean actualResult = account.isExpired(SpringContext.getBean(
70: DateTimeService.class).getCalendar(testDate));
71:
72: // compare the result to what was expected
73: assertEquals(expectedResult, actualResult);
74: }
75:
76: // if date of expiration and date of today is the same date (time excluded)
77: // then the account is not considered expired
78: public void testIsExpiredToday_ExpirationDateToday_ExpirationDateEarlierTime() {
79: doTest(TEST_DATE_2_TODAY, TEST_DATE_1_TODAY, false);
80: }
81:
82: // if date of expiration and date of today is the same date (time excluded)
83: // then the account is not considered expired
84: public void testIsExpiredToday_ExpirationDateToday_ExpirationDateLaterTime() {
85: doTest(TEST_DATE_2_TODAY, TEST_DATE_3_TODAY, false);
86: }
87:
88: // if date of expiration is one day later than day of testDate, fail
89: public void testIsExpiredToday_ExpirationDateTomorrow() {
90: doTest(TEST_DATE_2_TOMORROW, TEST_DATE_1_TODAY, false);
91: }
92:
93: // if date of expiration is one day earlier than day of testDate, succeed
94: public void testIsExpiredToday_ExpirationDateYesterday() {
95: doTest(TEST_DATE_2_YESTERDAY, TEST_DATE_1_TODAY, true);
96: }
97:
98: }
|