/** * {@inheritdoc} */ public function deploy(ActionInterface $action, ActionManagerInterface $actionManager) { if ($action->getStatusWanted() !== ActionInterface::STATUS_PUBLISHED) { return; } $this->entryCollection->setActionManager($actionManager); $results = $this->processSpreads($action); $results->loadUnawareEntries(); $i = 1; foreach ($results as $context => $entries) { foreach ($entries as $entry) { $this->timelineManager->createAndPersist($action, $entry->getSubject(), $context, TimelineInterface::TYPE_TIMELINE); if ($i % $this->batchSize == 0) { $this->timelineManager->flush(); } $i++; } } if ($i > 1) { $this->timelineManager->flush(); } foreach ($this->notifiers as $notifier) { $notifier->notify($action, $results); } $action->setStatusCurrent(ActionInterface::STATUS_PUBLISHED); $action->setStatusWanted(ActionInterface::STATUS_FROZEN); $actionManager->updateAction($action); $this->entryCollection->clear(); }
public function testClear() { $this->if($collection = new TestedModel())->and($this->mockClass('\\Spy\\Timeline\\Spread\\Entry\\EntryInterface', '\\Mock'))->and($entry = new \Mock\EntryInterface())->and($entry->getMockController()->getIdent = 'ident1')->when($collection->add($entry, 'NOTGLOBAL'))->object($collection->getIterator())->isEqualTo(new \ArrayIterator(array('NOTGLOBAL' => array('ident1' => $entry), 'GLOBAL' => array('ident1' => $entry))))->when($collection->clear())->object($collection->getIterator())->isEqualTo(new \ArrayIterator(array())); }