PHP7 Pool

This commit is contained in:
Dominik Liebler
2016-09-22 14:16:12 +02:00
parent 7beb1420b4
commit 61a6f03f04
5 changed files with 58 additions and 98 deletions

View File

@@ -2,21 +2,28 @@
namespace DesignPatterns\Creational\Pool\Tests;
use DesignPatterns\Creational\Pool\Pool;
use DesignPatterns\Creational\Pool\WorkerPool;
class PoolTest extends \PHPUnit_Framework_TestCase
{
public function testPool()
public function testCanGetNewInstancesWithGet()
{
$pool = new Pool('DesignPatterns\Creational\Pool\Tests\TestWorker');
$worker = $pool->get();
$pool = new WorkerPool();
$worker1 = $pool->get();
$worker2 = $pool->get();
$this->assertEquals(1, $worker->id);
$this->assertCount(2, $pool);
$this->assertNotSame($worker1, $worker2);
}
$worker->id = 5;
$pool->dispose($worker);
public function testCanGetSameInstanceTwiceWhenDisposingItFirst()
{
$pool = new WorkerPool();
$worker1 = $pool->get();
$pool->dispose($worker1);
$worker2 = $pool->get();
$this->assertEquals(5, $pool->get()->id);
$this->assertEquals(1, $pool->get()->id);
$this->assertCount(1, $pool);
$this->assertSame($worker1, $worker2);
}
}