diff options
Diffstat (limited to 'tests/lock')
-rw-r--r-- | tests/lock/db_test.php | 67 | ||||
-rw-r--r-- | tests/lock/fixtures/config.xml | 13 |
2 files changed, 80 insertions, 0 deletions
diff --git a/tests/lock/db_test.php b/tests/lock/db_test.php new file mode 100644 index 0000000000..0702a2c21e --- /dev/null +++ b/tests/lock/db_test.php @@ -0,0 +1,67 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +require_once __DIR__ . '/../../phpBB/includes/functions.php'; + +class phpbb_lock_db_test extends phpbb_database_test_case +{ + private $db; + private $config; + private $lock; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/config.xml'); + } + + public function setUp() + { + global $db, $config; + + $db = $this->db = $this->new_dbal(); + $config = $this->config = array('rand_seed' => '', 'rand_seed_last_update' => '0'); + $this->lock = new phpbb_lock_db('test_lock', $this->config, $this->db); + } + + public function test_new_lock() + { + global $config; + + $this->assertTrue($this->lock->lock()); + $this->assertTrue(isset($config['test_lock']), 'Lock was created'); + + $lock2 = new phpbb_lock_db('test_lock', $config, $this->db); + $this->assertFalse($lock2->lock()); + + $this->lock->unlock(); + $this->assertEquals('0', $config['test_lock'], 'Lock was released'); + } + + public function test_expire_lock() + { + $lock = new phpbb_lock_db('foo_lock', $this->config, $this->db); + $this->assertTrue($lock->lock()); + } + + public function test_double_lock() + { + global $config; + + $this->assertTrue($this->lock->lock()); + $this->assertTrue(isset($config['test_lock']), 'Lock was created'); + + $value = $config['test_lock']; + + $this->assertTrue($this->lock->lock()); + $this->assertEquals($value, $config['test_lock'], 'Second lock was ignored'); + + $this->lock->unlock(); + $this->assertEquals('0', $config['test_lock'], 'Lock was released'); + } +} diff --git a/tests/lock/fixtures/config.xml b/tests/lock/fixtures/config.xml new file mode 100644 index 0000000000..f36c8b929a --- /dev/null +++ b/tests/lock/fixtures/config.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<dataset> + <table name="phpbb_config"> + <column>config_name</column> + <column>config_value</column> + <column>is_dynamic</column> + <row> + <value>foo_lock</value> + <value>1 abcd</value> + <value>1</value> + </row> + </table> +</dataset> |