mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-08-11 01:14:01 +02:00
PHP7 Builder
This commit is contained in:
@@ -3,39 +3,24 @@
|
||||
namespace DesignPatterns\Creational\Builder\Tests;
|
||||
|
||||
use DesignPatterns\Creational\Builder\BikeBuilder;
|
||||
use DesignPatterns\Creational\Builder\BuilderInterface;
|
||||
use DesignPatterns\Creational\Builder\CarBuilder;
|
||||
use DesignPatterns\Creational\Builder\Director;
|
||||
|
||||
/**
|
||||
* DirectorTest tests the builder pattern.
|
||||
*/
|
||||
class DirectorTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $director;
|
||||
|
||||
protected function setUp()
|
||||
public function testCanBuildBike()
|
||||
{
|
||||
$this->director = new Director();
|
||||
$bikeBuilder = new BikeBuilder();
|
||||
$newVehicle = (new Director())->build($bikeBuilder);
|
||||
|
||||
$this->assertInstanceOf('DesignPatterns\Creational\Builder\Parts\Bike', $newVehicle);
|
||||
}
|
||||
|
||||
public function getBuilder()
|
||||
public function testCanBuildCar()
|
||||
{
|
||||
return array(
|
||||
array(new CarBuilder()),
|
||||
array(new BikeBuilder()),
|
||||
);
|
||||
}
|
||||
$carBuilder = new CarBuilder();
|
||||
$newVehicle = (new Director())->build($carBuilder);
|
||||
|
||||
/**
|
||||
* Here we test the build process. Notice that the client don't know
|
||||
* anything about the concrete builder.
|
||||
*
|
||||
* @dataProvider getBuilder
|
||||
*/
|
||||
public function testBuild(BuilderInterface $builder)
|
||||
{
|
||||
$newVehicle = $this->director->build($builder);
|
||||
$this->assertInstanceOf('DesignPatterns\Creational\Builder\Parts\Vehicle', $newVehicle);
|
||||
$this->assertInstanceOf('DesignPatterns\Creational\Builder\Parts\Car', $newVehicle);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user