Project Report: fawkez

Packagesummary org.jcoderz.commons.types

org.jcoderz.commons.types.YearMonthTest

LineHitsNoteSource
1  /*
2   * $Id: YearMonthTest.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.types;
34  
35  import junit.framework.TestCase;
36  import org.jcoderz.commons.ArgumentMalformedException;
37  
38  /**
39   * Tests the YearMonth class.
40   * @author Andreas Mandel
41   */
42100 public class YearMonthTest
43        extends TestCase
44  {
45  
46     /** Tests the fromString method (positive). */
47     public final void testFromStringPositive ()
48     {
49100       testGood("2005-02Z", "2005-02Z");
50100       testGood("2005-03UTC", "2005-03Z");
51100       testGood("2005-04GMT", "2005-04Z");
52100       testGood("-2005-02", "-2005-02Z");
53100       testGood("2005-12", "2005-12Z");
54100       testGood("12005-01", "12005-01Z");
55100       testGood("0005-12", "0005-12Z");
56100       testGood("-0005-12", "-0005-12Z"); //
57100    }
58  
59     /** Tests the fromString method (negative). */
60     public final void testFromStringNegative ()
61     {
62100       testBad(null);
63100       testBad("");
64100       testBad("2005");
65100       testBad("5-02");
66100       testBad("2005-2");
67100       testBad("2005-2Z");
68100       testBad("2005--2");
69100       testBad("2005-02PST");
70100       testBad("2005--02");
71100       testBad("2005-+2");
72100       testBad("0000-01");
73100    }
74  
75     /**
76      * Test the to period method.
77      * @throws Exception in case of a testcase error.
78      */
79     public final void testToPeriod ()
80           throws Exception
81     {
82100       final YearMonth ym = YearMonth.fromString("1999-04");
83100       final Period p = ym.toPeriod();
84100       assertEquals("Start date of period unexpected",
85              Date.fromString("1999-04-01T00:00:00Z"), p.getStartTime());
86100       assertEquals("End date of period unexpected",
87              Date.fromString("1999-04-30T23:59:59.999Z"), p.getEndTime());
88  
89100       final YearMonth ym2 = YearMonth.fromString("2000-02");
90100       final Period p2 = ym2.toPeriod();
91100       assertEquals("Start date of period unexpected (leep year)",
92              Date.fromString("2000-02-01T00:00:00Z"), p2.getStartTime());
93100       assertEquals("End date of period unexpected (leep year)",
94              Date.fromString("2000-02-29T23:59:59.999Z"), p2.getEndTime());
95100    }
96  
97     private void testGood (String str, String ref)
98     {
99100       assertEquals("String representation unexpected.",
100              ref, YearMonth.fromString(str).toString());
101100    }
102  
103     private void testBad (String str)
104     {
105        try
106        {
1070          YearMonth.fromString(str);
1080          fail("YearMonth shold not be valid: '" + str + "'.");
109        }
110100       catch (ArgumentMalformedException ex)
111        {
112           // OK
1130       }
114100    }
115  
116  }

Findings in this File