2016-08-21 23:40:48 -05:00
|
|
|
<?php declare(strict_types = 1);
|
2015-09-25 23:41:15 -05:00
|
|
|
|
2016-08-23 16:47:40 -05:00
|
|
|
namespace Amp\Parallel\Test\Sync;
|
2016-08-18 11:04:48 -05:00
|
|
|
|
2016-08-23 16:47:40 -05:00
|
|
|
use Amp\Parallel\Sync\Lock;
|
|
|
|
use Amp\Parallel\Test\TestCase;
|
2015-09-25 23:41:15 -05:00
|
|
|
|
2016-08-18 17:36:58 -05:00
|
|
|
class LockTest extends TestCase {
|
|
|
|
public function testIsReleased() {
|
2015-09-25 23:41:15 -05:00
|
|
|
$lock = new Lock($this->createCallback(1));
|
|
|
|
$this->assertFalse($lock->isReleased());
|
|
|
|
$lock->release();
|
|
|
|
$this->assertTrue($lock->isReleased());
|
|
|
|
}
|
|
|
|
|
2016-08-18 17:36:58 -05:00
|
|
|
public function testIsReleasedOnDestruct() {
|
2015-09-25 23:41:15 -05:00
|
|
|
$lock = new Lock($this->createCallback(1));
|
|
|
|
unset($lock);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2016-08-23 16:47:40 -05:00
|
|
|
* @expectedException \Amp\Parallel\LockAlreadyReleasedError
|
2015-09-25 23:41:15 -05:00
|
|
|
*/
|
2016-08-18 17:36:58 -05:00
|
|
|
public function testThrowsOnMultiRelease() {
|
2015-09-25 23:41:15 -05:00
|
|
|
$lock = new Lock($this->createCallback(1));
|
|
|
|
$lock->release();
|
|
|
|
$lock->release();
|
|
|
|
}
|
|
|
|
}
|