Changeset 276
- Timestamp:
- 01/25/08 18:05:43 (1 year ago)
- Files:
-
- lex/trunk/test/com/qwirx/db/SqlDatabaseTest.java (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lex/trunk/test/com/qwirx/db/SqlDatabaseTest.java
r273 r276 74 74 "t_txt mediumtext," + 75 75 "t_flt decimal(10,2)," + // not supported by JDBC? 76 "t_dat date, "+ 77 "t_dtm datetime, "+ 78 "t_dat2 DATE NOT NULL"+ 76 "t_dat date, " + 77 "t_dtm datetime, " + 78 "t_dat2 DATE NOT NULL, " + 79 "t_txt2 varchar(40)" + 79 80 ")"); 80 81 } 81 82 public void tearDown() throws Exception82 83 public void assertOldValues() throws Exception 83 84 { 84 85 db.prepareSelect("SELECT * FROM logtest"); 85 86 ResultSet rs = db.select(); 86 87 87 if (rs.next()) 88 { 89 assertEquals("1", rs.getString("ID")); 90 assertEquals("1234", rs.getString("t_int")); 91 assertEquals("Hello World", rs.getString("t_str")); 92 assertEquals("A somewhat longer string", rs.getString("t_txt")); 93 assertEquals("3.14", rs.getString("t_flt")); 94 assertEquals("1979-01-07", rs.getString("t_dat")); 95 assertEquals("1979-01-07 06:35:00.0", rs.getString("t_dtm")); 96 assertEquals("0000-00-00", db.getString("t_dat2")); 97 assertFalse(rs.next()); 98 } 99 88 assertTrue(rs.next()); 89 assertEquals("1", rs.getString("ID")); 90 assertEquals("1234", rs.getString("t_int")); 91 assertEquals("Hello World", rs.getString("t_str")); 92 assertEquals("A somewhat longer string", rs.getString("t_txt")); 93 assertEquals("3.14", rs.getString("t_flt")); 94 assertEquals("1979-01-07", rs.getString("t_dat")); 95 assertEquals("1979-01-07 06:35:00.0", rs.getString("t_dtm")); 96 assertEquals("0000-00-00", db.getString("t_dat2")); 97 assertFalse(rs.next()); 98 } 99 100 public void tearDown() throws Exception 101 { 102 db.finish(); 100 103 db.executeDirect("DROP TABLE logtest"); 101 104 } … … 234 237 } 235 238 236 private void assertEquals(ChangedRow rowA, ChangedRow rowB)237 { 238 List fieldsA = rowA.getColumns();239 240 for (Iterator i = rowB.getColumns().iterator(); i.hasNext();)239 private void assertEquals(ChangedRow expected, ChangedRow actual) 240 { 241 List fieldsA = expected.getValues(); 242 243 for (Iterator i = actual.getColumns().iterator(); i.hasNext();) 241 244 { 242 245 String colName = (String)i.next(); 243 String valA = rowA.get(colName).getOldValue(); 244 String valB = rowB.get(colName).getOldValue(); 246 assertNotNull(colName + " should have an expected value", 247 expected.get(colName)); 248 String valA = expected.get(colName).getOldValue(); 249 String valB = actual.get(colName).getOldValue(); 245 250 if (valA != null && valB == null) 246 251 { … … 252 257 } 253 258 254 valA = rowA.get(colName).getNewValue();255 valB = rowB.get(colName).getNewValue();259 valA = expected.get(colName).getNewValue(); 260 valB = actual.get(colName).getNewValue(); 256 261 if (valA != null && valB == null) 257 262 { … … 263 268 } 264 269 265 fieldsA.remove( colName);270 fieldsA.remove(expected.get(colName)); 266 271 } 267 272 … … 328 333 }); 329 334 assertEquals(expectedReverseRowChange, expectedRowChange.reverse()); 330 assertEquals(expectedReverseRowChange, actualReverseRowChange); 335 expectedReverseRowChange.put(new ChangedValue("t_txt2", null, null)); 336 assertEquals(expectedReverseRowChange, actualReverseRowChange); 331 337 assertEquals(0, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 332 338 } 333 339 340 public void testInsert2() throws Exception 341 { 342 SqlChange insert1 = insertTestRecord(); 343 SqlChange insert2 = insertTestRecord(); 344 SqlChange insert3 = insertTestRecord(); 345 assertEquals(3, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 346 db.loadChange(insert3.getId()).undo(); 347 assertEquals(2, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 348 insert1.undo(); 349 assertEquals(1, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 350 insert2.undo(); 351 assertEquals(0, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 352 } 353 334 354 public void testUpdate() throws Exception 335 355 { … … 345 365 testUpdate.setString("t_dat", "1980-10-15"); // happy birthday 346 366 testUpdate.setString("t_dtm", "1980-10-15 12:34:56.0"); 367 testUpdate.setString("t_txt2", "This value was null"); 347 368 testUpdate.execute(); 348 369 … … 388 409 expectedRowChange.put(new ChangedValue("t_dtm", 389 410 "1979-01-07 06:35:00.0", "1980-10-15 12:34:56.0")); 411 expectedRowChange.put(new ChangedValue("t_txt2", 412 null, "This value was null")); 390 413 391 414 assertCurrentValues("SELECT * FROM logtest", expectedRowChange); … … 413 436 new ChangedValue("t_dtm", 414 437 "1980-10-15 12:34:56.0", "1979-01-07 06:35:00.0"), 438 new ChangedValue("t_txt2", "This value was null", null), 415 439 }); 416 440 assertEquals(expectedReverseRowChange, expectedRowChange.reverse()); 417 441 assertEquals(expectedReverseRowChange, actualReverseRowChange); 418 442 assertEquals(1, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 443 assertOldValues(); 419 444 } 420 445 … … 466 491 cr.put(new ChangedValue("t_dtm", "1979-01-07 06:35:00.0", null)); 467 492 cr.put(new ChangedValue("t_dat2", "0000-00-00", null)); 493 cr.put(new ChangedValue("t_txt2", null, null)); 468 494 469 495 stmt = db.prepareSelect("SELECT * FROM logtest"); … … 481 507 482 508 assertEquals(1, db.getSingleInteger("SELECT COUNT(1) FROM logtest")); 509 assertOldValues(); 483 510 } 484 511
