SqliteAdapterTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. include 'helpers/config.php';
  3. require_once __DIR__ . '/../lib/adapters/SqliteAdapter.php';
  4. class SqliteAdapterTest extends AdapterTest
  5. {
  6. public function set_up($connection_name=null)
  7. {
  8. parent::set_up('sqlite');
  9. }
  10. public function tearDown()
  11. {
  12. parent::tearDown();
  13. @unlink($this->db);
  14. @unlink(self::InvalidDb);
  15. }
  16. public function testConnectToInvalidDatabaseShouldNotCreateDbFile()
  17. {
  18. try
  19. {
  20. ActiveRecord\Connection::instance("sqlite://" . self::InvalidDb);
  21. $this->assertFalse(true);
  22. }
  23. catch (ActiveRecord\DatabaseException $e)
  24. {
  25. $this->assertFalse(file_exists(__DIR__ . "/" . self::InvalidDb));
  26. }
  27. }
  28. public function test_limit_with_null_offset_does_not_contain_offset()
  29. {
  30. $ret = array();
  31. $sql = 'SELECT * FROM authors ORDER BY name ASC';
  32. $this->conn->query_and_fetch($this->conn->limit($sql,null,1),function($row) use (&$ret) { $ret[] = $row; });
  33. $this->assert_true(strpos($this->conn->last_query, 'LIMIT 1') !== false);
  34. }
  35. public function test_gh183_sqliteadapter_autoincrement()
  36. {
  37. // defined in lowercase: id integer not null primary key
  38. $columns = $this->conn->columns('awesome_people');
  39. $this->assert_true($columns['id']->auto_increment);
  40. // defined in uppercase: `amenity_id` INTEGER NOT NULL PRIMARY KEY
  41. $columns = $this->conn->columns('amenities');
  42. $this->assert_true($columns['amenity_id']->auto_increment);
  43. // defined using int: `rm-id` INT NOT NULL
  44. $columns = $this->conn->columns('`rm-bldg`');
  45. $this->assert_false($columns['rm-id']->auto_increment);
  46. // defined using int: id INT NOT NULL PRIMARY KEY
  47. $columns = $this->conn->columns('hosts');
  48. $this->assert_true($columns['id']->auto_increment);
  49. }
  50. // not supported
  51. public function test_connect_with_port() {}
  52. }
  53. ?>