fixture->query("INSERT INTO test (textstuff) VALUES ('moo'), ('foo'), ('hey'), ('foo'), ('boo'), ('poo')"); } catch (BSDbException $e) { $this->fail('unexpected exception'); } try { $res = $this->fixture->query("SELECT * FROM test WHERE textstuff = 'foo'"); $row = $this->fixture->fetchArray($res); $this->assertNotNull($row['textstuff']); $row = $this->fixture->fetchArray($res); $this->assertNotNull($row['textstuff']); $row = $this->fixture->fetchArray($res); $this->assertNull($row['textstuff']); } catch (BSDbException $e) { $this->fail('unexpected exception'); } } public function testEscapeString() { $this->assertEquals("Robert\'s castle", $this->fixture->escapeString("Robert's castle")); } public function testFetchObject() { try { $this->fixture->query("INSERT INTO test (textstuff) VALUES ('foo')"); } catch (BSDbException $e) { $this->fail('unexpected exception'); } try { $res = $this->fixture->query("SELECT * FROM test"); $obj = $this->fixture->fetchObject($res); $this->assertNotNull($obj); $this->assertEquals('foo', $obj->textstuff); } catch (BSDbException $e) { $this->fail('unexpected exception'); } } public function testQueryFirst() { try { $this->fixture->query("INSERT INTO test (textstuff) VALUES ('abc'), ('123'), ('def')"); } catch (BSDbException $e) { $this->fail('unexpected exception'); } try { $res = $this->fixture->queryFirst("SELECT * FROM test ORDER BY id DESC"); $this->assertEquals('def', $res['textstuff']); } catch (BSDbException $e) { $this->fail('unexpected exception'); } } public function testInsertId() { try { $this->fixture->query("INSERT INTO test (textstuff) VALUES ('abc')"); $this->assertEquals(1, $this->fixture->insertId('test', 'textstuff')); $this->fixture->query("INSERT INTO test (textstuff) VALUES ('123')"); $this->assertEquals(2, $this->fixture->insertId('test', 'textstuff')); } catch (BSDbException $e) { $this->fail('unexpected exception'); } } public function testNumRows() { try { $this->fixture->query("INSERT INTO test (textstuff) VALUES ('123'), ('456'), ('789')"); $res = $this->fixture->query("SELECT * FROM test"); $this->assertEquals(3, $this->fixture->numRows($res)); $res = $this->fixture->query("SELECT * FROM test WHERE textstuff = '--invalid value--'"); $this->assertEquals(0, $this->fixture->numRows($res)); } catch (BSDbException $e) { $this->fail('unexpected exception'); } } public function testAffectedRows() { try { $this->fixture->query("INSERT INTO test (textstuff) VALUES ('123'), ('456'), ('123')"); $res = $this->fixture->query("UPDATE test SET textstuff = 'abc' WHERE textstuff = '123'"); $this->assertEquals(2, $this->fixture->affectedRows($res)); $res = $this->fixture->query("SELECT * FROM test WHERE textstuff = 'abc'"); $this->assertEquals(2, $this->fixture->numRows($res)); } catch (BSDbException $e) { $this->fail('unexpected exception'); } } public function testInvalidQuery() { try { $this->fixture->query("SELECT * FROM foobar"); $this->fail('exception expected'); } catch (BSDbException $e) { $this->assertEquals('SELECT * FROM foobar', $e->getQuery()); } } public function testTransactions() { $this->fixture->begin(); $this->fixture->query("INSERT INTO test (textstuff) VALUES ('foo')"); $this->fixture->commit(); $res = $this->fixture->query("SELECT * FROM test WHERE textstuff = 'foo'"); $this->assertEquals(1, $this->fixture->numRows($res)); $this->fixture->begin(); $this->fixture->query("UPDATE test SET textstuff = 'abc'"); $this->fixture->rollback(); $res = $this->fixture->query("SELECT * FROM test WHERE textstuff = 'abc'"); $this->assertEquals(0, $this->fixture->numRows($res)); $res = $this->fixture->query("SELECT * FROM test WHERE textstuff = 'foo'"); $this->assertEquals(1, $this->fixture->numRows($res)); } } ?>