ExceptionTestCase.hx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import haxe.unit.TestCase;
  2. import sys.FileSystem;
  3. import sys.db.Connection;
  4. import sys.db.Sqlite;
  5. import sys.db.ResultSet;
  6. class ExceptionTestCase extends TestCase
  7. {
  8. var file : String;
  9. var cnx : Connection;
  10. override public function setup( ) : Void
  11. {
  12. super.setup();
  13. file = '${currentTest.classname}-${currentTest.method}.sqlite';
  14. cnx = Sqlite.open(file);
  15. cnx.request('DROP TABLE IF EXISTS t1');
  16. cnx.request('CREATE TABLE t1(i int, f float, t text, bl blob, bo bool)');
  17. cnx.request('INSERT INTO t1 VALUES(1, 0.1, "hello", "\x11", 1)');
  18. cnx.request('INSERT INTO t1 VALUES(2, 0.00002, "goodbye", "\x1111", 0)');
  19. cnx.request('INSERT INTO t1 VALUES(3, 0.000000003, "Привет!", "\x111111", 1)');
  20. }
  21. override public function tearDown( ) : Void
  22. {
  23. super.tearDown();
  24. cnx.close();
  25. FileSystem.deleteFile(file);
  26. }
  27. public function testSqlError( ) : Void
  28. {
  29. var sql : String = 'SELECT * FRM t1';
  30. var expected : String = 'SQLite error: near "FRM": syntax error';
  31. var msg : String = null;
  32. try
  33. {
  34. var res : ResultSet = cnx.request(sql);
  35. }
  36. catch ( e : Dynamic )
  37. {
  38. msg = Std.string(e);
  39. }
  40. assertEquals(expected, msg);
  41. }
  42. public function testSameField( ) : Void
  43. {
  44. var sql : String = 'SELECT i as a, f as a FROM t1';
  45. var expected : String = 'SQLite error: Same field is two times in the request: $sql';
  46. var msg : String = null;
  47. try
  48. {
  49. var res : ResultSet = cnx.request(sql);
  50. }
  51. catch ( e : Dynamic )
  52. {
  53. msg = Std.string(e);
  54. }
  55. assertEquals(expected, msg);
  56. }
  57. }