/** * Create a fake model instance from Blueprint * * @param Skovachev\Fakefactory\Model\Blueprint\Blueprint $blueprint * @return object */ protected function makeFromBlueprint($blueprint) { $modelClass = $blueprint->getClass(); $model = $this->reflector->instantiate($modelClass); foreach ($blueprint->getAttributes() as $attribute) { $this->model->setAttribute($model, $attribute); } foreach ($blueprint->getRelations() as $relation) { $relation->applyToModelAndContainedValue($model); $this->model->setRelation($model, $relation); } $this->clearBuildOptions(); return $model; }
public function testSetRelation() { $relationName = 'foo'; $relationValue = 'bar'; $databaseManager = Mockery::mock('Skovachev\\Fakefactory\\Model\\DatabaseManager'); $databaseManager->shouldReceive('registerTypeMapping')->once()->with('enum', 'string'); $reflector = Mockery::mock('Skovachev\\Fakefactory\\Model\\Reflector'); $manager = new ModelManager($databaseManager, $reflector); $relation = Mockery::mock('Skovachev\\Fakefactory\\Model\\Blueprint\\Relation'); $relation->shouldReceive('getName')->once()->andReturn($relationName); $relation->shouldReceive('getValue')->once()->andReturn($relationValue); $relation->shouldReceive('isToManyRelation')->once()->andReturn(false); $model = Mockery::mock(); $model->shouldReceive('setRelation')->once()->with($relationName, $relationValue); $manager->setRelation($model, $relation); }