KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > net > ntp > TimeStampTest


1 package org.apache.commons.net.ntp;
2
3 /* ====================================================================
4  *
5  * The Apache Software License, Version 1.1
6  *
7  * Copyright (c) 2003 The Apache Software Foundation. All rights
8  * reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  *
14  * 1. Redistributions of source code must retain the above copyright
15  * notice, this list of conditions and the following disclaimer.
16  *
17  * 2. Redistributions in binary form must reproduce the above copyright
18  * notice, this list of conditions and the following disclaimer in
19  * the documentation and/or other materials provided with the
20  * distribution.
21  *
22  * 3. The end-user documentation included with the redistribution, if
23  * any, must include the following acknowlegement:
24  * "This product includes software developed by the
25  * Apache Software Foundation (http://www.apache.org/)."
26  * Alternately, this acknowlegement may appear in the software itself,
27  * if and wherever such third-party acknowlegements normally appear.
28  *
29  * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
30  * Foundation" must not be used to endorse or promote products derived
31  * from this software without prior written permission. For written
32  * permission, please contact apache@apache.org.
33  *
34  * 5. Products derived from this software may not be called "Apache"
35  * nor may "Apache" appear in their names without prior written
36  * permission of the Apache Group.
37  *
38  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
39  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
42  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
45  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
46  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
47  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
48  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
49  * SUCH DAMAGE.
50  * ====================================================================
51  *
52  * This software consists of voluntary contributions made by many
53  * individuals on behalf of the Apache Software Foundation. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 import java.util.Date JavaDoc;
59 import java.util.Calendar JavaDoc;
60 import junit.framework.TestCase;
61 import org.apache.commons.net.ntp.TimeStamp;
62
63 /**
64  * Test class that validates assertions for the basic TimeStamp operations and comparisons.
65  *
66  * @author Jason Mathews, MITRE Corp
67  */

68 public class TimeStampTest extends TestCase {
69
70     private static final String JavaDoc TIME1 = "c1a9ae1c.cf6ac48d"; // Tue, Dec 17 2002 14:07:24.810 UTC
71
private static final String JavaDoc TIME2 = "c1a9ae1c.cf6ac48f"; // Tue, Dec 17 2002 14:07:24.810 UTC
72
private static final String JavaDoc TIME3 = "c1a9ae1d.cf6ac48e"; // Tue, Dec 17 2002 14:07:25.810 UTC
73

74     /***
75      * main for running the test.
76      ***/

77     public static void main(String JavaDoc args[])
78     {
79         junit.textui.TestRunner.run(TimeStampTest.class);
80     }
81
82     public void testCompare() {
83
84         TimeStamp ts1 = new TimeStamp(TIME1); // Tue, Dec 17 2002 14:07:24.810 UTC
85
TimeStamp ts2 = new TimeStamp(TIME1);
86         TimeStamp ts3 = new TimeStamp(TIME2); // Tue, Dec 17 2002 14:07:24.810 UTC
87
TimeStamp ts4 = new TimeStamp(TIME3); // Tue, Dec 17 2002 14:07:25.810 UTC
88

89         // do assertion tests on TimeStamp class
90
assertEquals("equals(1,2)", ts1, ts2);
91         assertTrue("compareTo(1,2)", ts1.compareTo(ts2) == 0);
92         assertEquals("ntpValue(1,2)", ts1.ntpValue(), ts2.ntpValue());
93         assertEquals("hashCode(1,2)", ts1.hashCode(), ts2.hashCode());
94         assertEquals("ts1==ts1", ts1, ts1);
95
96     // timestamps in ts1 (TIME1) and ts3 (TIME2) are only off by the smallest
97
// fraction of a second (~200 picoseconds) so the times are not equal but
98
// when converted to Java dates (in milliseconds) they will be equal.
99
assertTrue("ts1 != ts3", !ts1.equals(ts3));
100         assertTrue("compareTo(1,3)", ts1.compareTo(ts3) == -1);
101         assertEquals("seconds", ts1.getSeconds(), ts3.getSeconds());
102         assertTrue("fraction", ts1.getFraction() != ts3.getFraction());
103         assertTrue("ntpValue(1,3)", ts1.ntpValue() != ts3.ntpValue());
104         assertTrue("hashCode(1,3)", ts1.hashCode() != ts3.hashCode());
105         long time1 = ts1.getTime();
106         long time3 = ts3.getTime();
107         assertEquals("equals(time1,3)", time1, time3); // ntpTime1 != ntpTime3 but JavaTime(t1) == JavaTime(t3)...
108

109         assertTrue("ts3 != ts4", !ts3.equals(ts4));
110         assertTrue("time3 != ts4.time", time3 != ts4.getTime());
111     }
112
113     public void testUTCString() {
114         TimeStamp ts1 = new TimeStamp(TIME1); // Tue, Dec 17 2002 14:07:24.810 UTC
115
String JavaDoc actual = ts1.toUTCString();
116     assertEquals("Tue, Dec 17 2002 14:07:24.810 UTC", actual);
117     }
118
119     public void testDateConversion() {
120     // convert current date to NtpTimeStamp then compare Java date
121
// computed from NTP timestamp with original Java date.
122
Calendar JavaDoc refCal = Calendar.getInstance(java.util.TimeZone.getTimeZone("UTC"));
123     Date JavaDoc refDate = refCal.getTime();
124     TimeStamp ts = new TimeStamp(refDate);
125     assertEquals("refDate.getTime()", refDate.getTime(), ts.getTime());
126     Date JavaDoc tsDate = ts.getDate();
127     assertEquals(refDate, tsDate);
128     }
129
130 }
131
Popular Tags