public function testAllPartsBuiltWhenCarStarted() { $muscleCarFactory = new MuscleCarPartsFactory(); $car = new Car($muscleCarFactory); $car->start(); $this->assertInstanceOf('V8Engine', $car->getEngine(), "MuscleCar gets correct V8Engine"); $this->assertInstanceOf('MusclePassengerCompartment', $car->getPassengerCompartment(), "MuscleCar gets correct MusclePassengerCompartment"); }
} public function getEngine() { return $this->engine; } } class Engine { private $engineCapacity; private $engineSerialNumber; public $car; function __construct($engineCapacity, $engineSerialNumber, $car) { $this->engineCapacity = $engineCapacity; $this->engineSerialNumber = $engineSerialNumber; $this->car = $car; } public function getEngineCapacity() { return $this->engineCapacity; } public function getEngineSerialNumber() { return $this->engineSerialNumber; } } $car = new Car('VW', 2010, $engine, 500, '23213ekdsdlkar'); $engine =& $car->getEngine(); var_dump($car, $engine); unset($car); var_dump($car, $engine);