function it_creates_manager(EventDispatcher $eventDispatcher, Manager $manager) { $eventDispatcher->dispatch(CreateManagerEvent::NAME, Argument::type('Netzmacht\\Workflow\\Factory\\Event\\CreateManagerEvent'))->will(function ($arguments) use($manager) { /** @var CreateManagerEvent $event */ $event = $arguments[1]; $event->setManager($manager->getWrappedObject()); }); $this->createManager('provider_name', 'type_name')->shouldReturn($manager); }
/** * Create workflows for a manager. * * @param Manager $manager The workflow manager. * @param string $providerName The provider name. * @param string $workflowType THe workflow type. * * @return void */ private function createWorkflows(Manager $manager, $providerName, $workflowType) { if ($workflowType) { $collection = WorkflowModel::findByProviderAndType($providerName, $workflowType); } else { $collection = WorkflowModel::findByProvider($providerName); } while ($collection && $collection->next()) { $workflow = new Workflow($collection->name, $collection->providerName, $collection->label, array_merge($collection->row(), array(Definition::SOURCE => Definition::SOURCE_DATABASE))); $event = new CreateWorkflowEvent($workflow); $this->getServiceContainer()->getEventDispatcher()->dispatch($event::NAME, $event); $manager->addWorkflow($workflow); } }
/** * {@inheritdoc} */ public function createItem(EntityId $entityId, $entity) { $key = $entityId->__toString(); if (!isset($this->items[$key])) { $this->items[$key] = $this->manager->createItem($entityId, $entity); } return $this->items[$key]; }