2 * JCommon : библиотека классов общего назначения для платформы Java(tm)
3 * ========================================================================
4 *
5 * (C) Copyright 2000–2005, by Object Refinery Limited and Contributors.
6 *
7 * Информация о проекте: http://www.jfree.org/jcommon/index.html
8 *
9 * Библиотека распространяется бесплатно; вы можете свободно распространять
10 * и/или изменять ее на условиях лицензии Lesser General Public License
11 * в формулировке Free Software Foundation; либо версии 2.1 лицензии, либо
12 * (на ваше усмотрение) любой последующей версии.
13 *
14 * Библиотека распространяется в надежде, что она будет полезна, но
15 * БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемой гарантии ПРИГОДНОСТИ
16 * для КОНКРЕТНОЙ ЦЕЛИ. За подробностями обращайтесь к GNU Lesser General
17 * Public License.
18 *
19 * Вы должны получить копию лицензии GNU Lesser General Public License
20 * с этой библиотекой; если этого не произошло, обратитесь в Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22 * USA.
23 *
24 * [Java является зарегистрированной торговой маркой Sun Microsystems, Inc.
25 * в Соединенных Штатах и других странах].
26 *
27 * --------------------
28 * SerialDateTests.java
29 * --------------------
30 * (C) Copyright 2001–2005, by Object Refinery Limited.
31 *
32 * Автор: Дэвид Гилберт (для Object Refinery Limited);
33 * Участники: -;
34 *
35 * $Id: SerialDateTests.java,v 1.6 2005/11/16 15:58:40 taqua Exp $
36 *
37 * Изменения
38 * --------------------------
39 * 15.12.2001 : Версия 1 (DG);
40 * 25.06.2002 : Удаление лишнего импорта (DG);
41 * 24.10.2002 : Исправление ошибок по информации Checkstyle (DG);
42 * 13.03.2003 : Добавление теста сериализации (DG);
43 * 05.01.2005 : Добавление теста для ошибки по отчету 1096282 (DG);
44 *
45 */
46
47 package org.jfree.date.junit;
48
49 import java.io.ByteArrayInputStream;
50 import java.io.ByteArrayOutputStream;
Листинг Б.2 (продолжение)
51 import java.io.ObjectInput;
52 import java.io.ObjectInputStream;
53 import java.io.ObjectOutput;
54 import java.io.ObjectOutputStream;
55
56 import junit.framework.Test;
57 import junit.framework.TestCase;
58 import junit.framework.TestSuite;
59
60 import org.jfree.date.MonthConstants;
61 import org.jfree.date.SerialDate;
62
63 /**
64 * Тесты JUnit для класса {@link SerialDate}.
65 */
66 public class SerialDateTests extends TestCase {
67
68 /** Дата, представляющая 9 ноября. */
69 private SerialDate nov9Y2001;
70
71 /**
72 * Создает новый тестовый сценарий.
73 *
74 * @param name the name.
75 */
76 public SerialDateTests(final String name) {
77 super(name);
78 }
79
80 /**
81 * Возвращает пакет тестов для системы запуска тестов JUnit.
82 *
83 * @return тестовый пакет.
84 */
85 public static Test suite() {
86 return new TestSuite(SerialDateTests.class);
87 }
88
89 /**
90 * Подготовка задачи.
91 */
92 protected void setUp() {
93 this.nov9Y2001 = SerialDate.createInstance(9, MonthConstants.NOVEMBER, 2001);
94 }
95
96 /**
97 * 9 ноября 2001 + 2 месяца = должно быть 9 января 2002.
98 */
99 public void testAddMonthsTo9Nov2001() {
100 final SerialDate jan9Y2002 = SerialDate.addMonths(2, this.nov9Y2001);
101 final SerialDate answer = SerialDate.createInstance(9, 1, 2002);
102 assertEquals(answer, jan9Y2002);
103 }
104
105 /**
106 * Тестовый сценарий для известной ошибки (исправлено).
107 */
108 public void testAddMonthsTo5Oct2003() {
109 final SerialDate d1 = SerialDate.createInstance(5, MonthConstants.OCTOBER,
2003);
110 final SerialDate d2 = SerialDate.addMonths(2, d1);
111 assertEquals(d2, SerialDate.createInstance(5, MonthConstants.DECEMBER,
2003));
112 }
113
114 /**
115 * Тестовый сценарий для известной ошибки (исправлено).
116 */
117 public void testAddMonthsTo1Jan2003() {
118 final SerialDate d1 = SerialDate.createInstance(1, MonthConstants.JANUARY,
2003);
119 final SerialDate d2 = SerialDate.addMonths(0, d1);
120 assertEquals(d2, d1);
121 }
122
123 /**
124 * Понедельник, предшествующий 9 ноября 2001, - должно быть 5 ноября.
125 */
126 public void testMondayPrecedingFriday9Nov2001() {
127 SerialDate mondayBefore = SerialDate.getPreviousDayOfWeek(
128 SerialDate.MONDAY, this.nov9Y2001