Source code: org/enableit/db/daf/JdbcDafTest.java
1 package org.enableit.db.daf;
2
3 // Java imports
4 import java.io.File ;
5 import java.io.FileReader ;
6 import java.io.FileWriter ;
7 import java.io.StringReader ;
8 import java.io.StringWriter ;
9 import java.math.BigDecimal ;
10 import java.sql.Connection ;
11 import java.text.SimpleDateFormat ;
12 import java.util.Arrays ;
13 import java.util.Date ;
14 import java.util.Iterator ;
15 import java.util.List ;
16 import java.util.Map ;
17
18 // Testing framework imports
19 import junit.framework.*;
20
21 // Log4J imports
22 import org.apache.log4j.Category;
23
24 // My imports
25 import org.enableit.apps.task.TaskForm ;
26 import org.enableit.apps.task.TaskBean ;
27 import org.enableit.db.* ;
28 import org.enableit.db.daf.* ;
29 import org.enableit.db.daf.castor.* ;
30
31 /**
32 * Tests ...
33 */
34 public class JdbcDafTest extends TestCase
35 {
36 /*
37 * Properties
38 */
39
40 /**
41 * Define a static Category variable for logging.
42 */
43 private static Category logger = Category.getInstance(JdbcDafTest.class);
44
45 private static TaskBean bean ;
46 private static TaskBean existingBean ;
47
48 /*
49 * Constructors
50 */
51 /**
52 * Default Constructor
53 */
54 public JdbcDafTest(String name)
55 {
56 super(name) ;
57 }
58
59 /*
60 * Methods
61 */
62
63 /**
64 * Defines all the tests for the Web Service application including
65 * tests in this class.
66 */
67 public static Test suite() {
68 TestSuite suite = new TestSuite(JdbcDafTest.class);
69 return suite;
70 }
71
72 /**
73 * Define the test environment.
74 */
75 protected void setUp()
76 throws java.lang.Exception
77 {
78 bean = new TaskBean() ;
79 bean.setTaskName("testing jdbc daf") ;
80 bean.setTaskDesc("desc") ;
81 bean.setTaskCreationDate(new Date()) ;
82 bean.setTaskDueDate(new Date()) ;
83 bean.setTaskAllocatedTo("tim") ;
84 bean.setTaskCreatedBy("tim") ;
85 bean.setCategoryId(new Long(1)) ;
86 bean.setStatusId(new Long(1)) ;
87 bean.setPriorityId(new Long(1)) ;
88
89 Long existingId = null ;
90 try {
91 String sql = "select max(taskId) 'taskId' from Task where taskName like 'testing%'" ;
92 Connection conn =
93 ConnectionFactory.getConnection("com.sybase.jdbc2.jdbc.SybDriver",
94 "jdbc:sybase:Tds:localhost:2641",
95 "dba",
96 "sql") ;
97 List results = DatabaseProxy.executeQuery(conn, sql) ;
98 Map record = (Map)results.get(0) ;
99 existingId = new Long( ((BigDecimal)record.get("taskId")).longValue() ) ;
100 } catch (Exception e) {
101 e.printStackTrace() ;
102 fail(e.getClass().getName() + ":" + e.getMessage()) ;
103 }
104 existingBean = bean ;
105 existingBean.setTaskId(existingId) ;
106
107 }
108
109 /**
110 * Run a test to create a Bean using the DataAbstractionFacade and its factory.
111 *
112 */
113 public void testCreate()
114 {
115 try {
116 DataAbstractionFacade daf = DataAbstractionFacadeFactory.getInstance(bean) ;
117 assertNotNull("Received null DAF", daf) ;
118 assertEquals("Received wrong DAF", daf.getClass().getName(), "org.enableit.db.daf.jdbc.JdbcDaf") ;
119
120 bean = (TaskBean)daf.create(bean) ;
121 assertNotNull("Null bean returned from DAF. ", bean) ;
122 assertNotNull("No key set on bean.", bean.getTaskId()) ;
123 logger.debug("Returned bean=" + bean) ;
124 } catch (Exception e) {
125 e.printStackTrace() ;
126 fail(e.getClass().getName() + ":" + e.getMessage()) ;
127 }
128
129 }
130
131 /**
132 * Run a test to update a Bean using the DataAbstractionFacade and its factory.
133 *
134 */
135 public void testModify()
136 {
137 try {
138 DataAbstractionFacade daf = DataAbstractionFacadeFactory.getInstance(bean) ;
139 assertNotNull("Received null DAF", daf) ;
140 assertEquals("Received wrong DAF", daf.getClass().getName(), "org.enableit.db.daf.jdbc.JdbcDaf") ;
141
142 existingBean.setTaskDesc("modified desc") ;
143 existingBean = (TaskBean)daf.modify(existingBean) ;
144 assertNotNull("Null existingBean returned from DAF. ", existingBean) ;
145 assertNotNull("No key set on existingBean.", existingBean.getTaskId()) ;
146 assertEquals("No update to existingBean.", existingBean.getTaskDesc(), "modified desc") ;
147 logger.debug("Returned existingBean=" + existingBean) ;
148 } catch (Exception e) {
149 e.printStackTrace() ;
150 fail(e.getClass().getName() + ":" + e.getMessage()) ;
151 }
152
153 }
154
155 /**
156 * Run a test to retrieve a Bean using the DataAbstractionFacade and its factory.
157 *
158 */
159 public void testLoad()
160 {
161 try {
162 DataAbstractionFacade daf = DataAbstractionFacadeFactory.getInstance(bean) ;
163 assertNotNull("Received null DAF", daf) ;
164 assertEquals("Received wrong DAF", daf.getClass().getName(), "org.enableit.db.daf.jdbc.JdbcDaf") ;
165
166 existingBean = (TaskBean)daf.load(existingBean) ;
167 assertNotNull("Null existingBean returned from DAF. ", existingBean) ;
168 assertNotNull("No key set on existingBean.", existingBean.getTaskId()) ;
169 logger.debug("Returned existingBean=" + existingBean) ;
170 } catch (Exception e) {
171 e.printStackTrace() ;
172 fail(e.getClass().getName() + ":" + e.getMessage()) ;
173 }
174
175 }
176
177 /**
178 * Run a test to delete a Bean using the DataAbstractionFacade and its factory.
179 *
180 */
181 public void testRemove()
182 {
183 try {
184 DataAbstractionFacade daf = DataAbstractionFacadeFactory.getInstance(bean) ;
185 assertNotNull("Received null DAF", daf) ;
186 assertEquals("Received wrong DAF", daf.getClass().getName(), "org.enableit.db.daf.jdbc.JdbcDaf") ;
187
188 existingBean = (TaskBean)daf.remove(existingBean) ;
189 assertNotNull("Null existingBean returned from DAF. ", existingBean) ;
190 assertNotNull("No key set on existingBean.", existingBean.getTaskId()) ;
191 logger.debug("Returned existingBean=" + existingBean) ;
192 } catch (Exception e) {
193 e.printStackTrace() ;
194 fail(e.getClass().getName() + ":" + e.getMessage()) ;
195 }
196
197 }
198
199 }