KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jonas > jtests > clients > entity > A_EtypeOsqlts


1 /*
2  * JOnAS: Java(TM) Open Application Server
3  * Copyright (C) 1999 Bull S.A.
4  * Contact: jonas-team@objectweb.org
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19  * USA
20  *
21  * --------------------------------------------------------------------------
22  * $Id: A_EtypeOsqlts.java,v 1.1 2004/01/09 15:56:05 joaninh Exp $
23  * --------------------------------------------------------------------------
24  */

25
26 package org.objectweb.jonas.jtests.clients.entity;
27
28 import java.sql.Timestamp JavaDoc;
29 import java.util.Collection JavaDoc;
30 import java.util.Iterator JavaDoc;
31 import javax.ejb.FinderException JavaDoc;
32
33 import org.objectweb.jonas.jtests.beans.etype.osqlts.Osqlts;
34 import org.objectweb.jonas.jtests.beans.etype.osqlts.OsqltsHome;
35 import org.objectweb.jonas.jtests.util.JTestCase;
36
37 /**
38  * This set of test are common to CMP version 1 and CMP version 2
39  * These are tests about java.sql.Timestamp field of entity bean .
40  * Beans used: etype/osqlts
41  * @author Helene Joanin
42  */

43 public abstract class A_EtypeOsqlts extends JTestCase {
44
45     private static final long ONE_HOUR = 60L * 60L * 1000L;
46     private static final long ONE_DAY = 24L * ONE_HOUR;
47
48     public A_EtypeOsqlts(String JavaDoc name) {
49         super(name);
50     }
51
52     protected void setUp() {
53         super.setUp();
54         useBeans("osqlts", true);
55     }
56
57     /**
58      * Return OsqltsHome, that can be either CMP version 1 or CMP version 2 bean.
59      */

60     abstract public OsqltsHome getHome();
61
62     /**
63      * findByPrimaryKey() test
64      */

65     public void testSqlTsFindByPk() throws Exception JavaDoc {
66         String JavaDoc pk = "pk1";
67         Osqlts bean = getHome().findByPrimaryKey(pk);
68         assertEquals("Pk", pk, bean.getPk());
69     }
70
71     /**
72      * findByF1() test
73      */

74     public void testSqlTsFindByF1() throws Exception JavaDoc {
75         Timestamp JavaDoc d5 = new Timestamp JavaDoc(5 * ONE_DAY);
76         Collection JavaDoc cBeans = getHome().findByF1(d5);
77         int nb = 0;
78         Iterator JavaDoc iBeans = cBeans.iterator();
79         while (iBeans.hasNext()) {
80             Osqlts bean = (Osqlts) javax.rmi.PortableRemoteObject.narrow(iBeans.next(),
81                                                                              Osqlts.class);
82             Timestamp JavaDoc f1 = bean.getF1();
83             // This assert may fail because of TIME ZONE problem ??
84
// F1 expected:<Tue Jan 06 01:00:00 CET 1970> but was:<1970-01-06>
85
//assertEquals("F1", d5, f1);
86
if ((f1.getTime() - d5.getTime() > 2 * ONE_HOUR)
87                 || (f1.getTime() - d5.getTime() < -2 * ONE_HOUR)) {
88                 // The two dates differs than more 2 HOURS -> error
89
assertEquals("F1", d5, f1);
90             }
91             nb++;
92         }
93         assertEquals("Beans number: ", 2, nb);
94     }
95
96     /**
97      * getF1() test
98      */

99     public void testSqlTsGetF1() throws Exception JavaDoc {
100         String JavaDoc pk = "pk2";
101         Osqlts bean = getHome().findByPrimaryKey(pk);
102         Timestamp JavaDoc d2 = new Timestamp JavaDoc(2 * ONE_DAY);
103         Timestamp JavaDoc f1 = bean.getF1();
104         assertEquals("Pk", pk, bean.getPk());
105         // The following assert may fail because of TIME ZONE problem ??
106
// F1 expected:<Sat Jan 03 01:00:00 CET 1970> but was:<1970-01-03>
107
// assertEquals("F1", new Timestamp(2*ONE_DAY), f1);
108
if ((f1.getTime() - d2.getTime() > 2 * ONE_HOUR)
109             || (f1.getTime() - d2.getTime() < -2 * ONE_HOUR)) {
110             // The two dates differs than more 2 HOURS -> error
111
assertEquals("F1", d2, f1);
112         }
113     }
114
115     /**
116      * getF1Null() test: f1 with a 'null' value
117      */

118     public void testSqlTsGetF1Null() throws Exception JavaDoc {
119         String JavaDoc pk = "pknull";
120         Osqlts bean = getHome().findByPrimaryKey(pk);
121         Timestamp JavaDoc f1 = bean.getF1();
122         assertEquals("Pk", pk, bean.getPk());
123         assertNull("F1 not null", f1);
124     }
125
126     /**
127      * setF1() test
128      */

129     public void testSqlTsSetF1() throws Exception JavaDoc {
130         String JavaDoc pk = "pk3";
131         Osqlts bean = getHome().findByPrimaryKey(pk);
132         Timestamp JavaDoc f1 = new Timestamp JavaDoc(30 * ONE_DAY);
133         bean.setF1(f1);
134         assertEquals("Pk", pk, bean.getPk());
135         assertEquals("F1", f1, bean.getF1());
136     }
137
138     /**
139      * setF1Null() test: f1 with a 'null' value
140      */

141     public void testSqlTsSetF1Null() throws Exception JavaDoc {
142         String JavaDoc pk = "pkchangenull";
143         Osqlts bean = getHome().findByPrimaryKey(pk);
144         bean.setF1(null);
145         assertEquals("Pk", pk, bean.getPk());
146         assertNull("F1", bean.getF1());
147     }
148
149     /**
150      * create() test
151      */

152     public void testSqlTsCreate() throws Exception JavaDoc {
153         String JavaDoc pk = "pkcreated";
154         Timestamp JavaDoc f1 = new Timestamp JavaDoc(1959 * ONE_DAY);
155         Osqlts bean = getHome().create(pk, f1);
156         assertEquals("Pk", pk, bean.getPk());
157         assertEquals("F1", f1, bean.getF1());
158         bean = getHome().findByPrimaryKey(pk);
159         // cleaning
160
bean.remove();
161     }
162
163     /**
164      * remove() test
165      */

166     public void testSqlTsRemove() throws Exception JavaDoc {
167         String JavaDoc pk = "pktoremove";
168         Osqlts bean = getHome().findByPrimaryKey(pk);
169         Timestamp JavaDoc f1 = bean.getF1();
170         bean.remove();
171         try {
172             getHome().findByPrimaryKey(pk);
173             fail("not removed");
174         } catch (FinderException JavaDoc e) {
175             // ok
176
}
177         // cleaning
178
getHome().create(pk, f1);
179     }
180
181 }
182
Popular Tags