database); $this->assertEquals('', $handler->read('foo')); $this->database->insert("INSERT INTO sessions VALUES ('foo', 'Lorem Ipsum', CURRENT_TIMESTAMP)"); $this->assertEquals('Lorem Ipsum', $handler->read('foo')); } /** * @covers \Engelsystem\Http\SessionHandlers\DatabaseHandler::getCurrentTimestamp * @covers \Engelsystem\Http\SessionHandlers\DatabaseHandler::write */ public function testWrite(): void { $handler = new DatabaseHandler($this->database); foreach (['Lorem Ipsum', 'Dolor Sit!'] as $data) { $this->assertTrue($handler->write('foo', $data)); $return = $this->database->select('SELECT * FROM sessions WHERE id = :id', ['id' => 'foo']); $this->assertCount(1, $return); $return = array_shift($return); $this->assertEquals($data, $return->payload); } } /** * @covers \Engelsystem\Http\SessionHandlers\DatabaseHandler::destroy */ public function testDestroy(): void { $this->database->insert("INSERT INTO sessions VALUES ('foo', 'Lorem Ipsum', CURRENT_TIMESTAMP)"); $this->database->insert("INSERT INTO sessions VALUES ('bar', 'Dolor Sit', CURRENT_TIMESTAMP)"); $handler = new DatabaseHandler($this->database); $this->assertTrue($handler->destroy('batz')); $return = $this->database->select('SELECT * FROM sessions'); $this->assertCount(2, $return); $this->assertTrue($handler->destroy('bar')); $return = $this->database->select('SELECT * FROM sessions'); $this->assertCount(1, $return); $return = array_shift($return); $this->assertEquals('foo', $return->id); } /** * @covers \Engelsystem\Http\SessionHandlers\DatabaseHandler::gc */ public function testGc(): void { $this->database->insert("INSERT INTO sessions VALUES ('foo', 'Lorem Ipsum', '2000-01-01 01:00')"); $this->database->insert("INSERT INTO sessions VALUES ('bar', 'Dolor Sit', '3000-01-01 01:00')"); $handler = new DatabaseHandler($this->database); $this->assertEquals(1, $handler->gc(60 * 60)); $return = $this->database->select('SELECT * FROM sessions'); $this->assertCount(1, $return); $return = array_shift($return); $this->assertEquals('bar', $return->id); } /** * Prepare tests */ protected function setUp(): void { parent::setUp(); $this->initDatabase(); } }