/** * @param HasNodeInterface $hasNode The object * @param NodeTranslation $nodeTranslation The node translation * @param BaseUser $owner The user * @param NodeVersion $origin The nodeVersion this nodeVersion originated from * @param string $type (public|draft) * @param DateTime $created The date this node version is created * * @return NodeVersion */ public function createNodeVersionFor(HasNodeInterface $hasNode, NodeTranslation $nodeTranslation, BaseUser $owner, NodeVersion $origin = null, $type = 'public', $created = null) { $em = $this->getEntityManager(); $nodeVersion = new NodeVersion(); $nodeVersion->setNodeTranslation($nodeTranslation); $nodeVersion->setType($type); $nodeVersion->setOwner($owner); $nodeVersion->setRef($hasNode); $nodeVersion->setOrigin($origin); if (!is_null($created)) { $nodeVersion->setCreated($created); } $em->persist($nodeVersion); $em->flush(); $em->refresh($nodeVersion); return $nodeVersion; }
/** * @covers Kunstmaan\NodeBundle\Entity\NodeVersion::setCreated * @covers Kunstmaan\NodeBundle\Entity\NodeVersion::getCreated */ public function testSetGetCreated() { $created = new \DateTime(); $this->object->setCreated($created); $this->assertEquals($created, $this->object->getCreated()); }
/** * @param HasNodeInterface $page The page * @param NodeTranslation $nodeTranslation The node translation * @param NodeVersion $nodeVersion The node version * * @return NodeVersion */ private function createDraftVersion(HasNodeInterface $page, NodeTranslation $nodeTranslation, NodeVersion $nodeVersion) { $publicPage = $this->get('kunstmaan_admin.clone.helper')->deepCloneAndSave($page); /* @var NodeVersion $publicNodeVersion */ $publicNodeVersion = $this->em->getRepository('KunstmaanNodeBundle:NodeVersion')->createNodeVersionFor($publicPage, $nodeTranslation, $this->user, $nodeVersion->getOrigin(), 'public', $nodeVersion->getCreated()); $nodeTranslation->setPublicNodeVersion($publicNodeVersion); $nodeVersion->setType('draft'); $nodeVersion->setOrigin($publicNodeVersion); $nodeVersion->setCreated(new DateTime()); $this->em->persist($nodeTranslation); $this->em->persist($nodeVersion); $this->em->flush(); $this->get('event_dispatcher')->dispatch(Events::CREATE_DRAFT_VERSION, new NodeEvent($nodeTranslation->getNode(), $nodeTranslation, $nodeVersion, $page)); return $nodeVersion; }