/** * @test */ public function createNodeFromTemplateUsesWorkspacesOfContext() { $nodeTemplate = $this->generateBasicNodeTemplate(); $this->context = $this->contextFactory->create(array('workspaceName' => 'user1')); $rootNode = $this->context->getNode('/'); $node = $rootNode->createNodeFromTemplate($nodeTemplate, 'just-a-node'); $workspace = $node->getWorkspace(); $this->assertEquals('user1', $workspace->getName(), 'Node should be created in workspace of context'); }
/** * @return void */ protected function setUpRootNodeAndRepository() { $this->contextFactory = $this->objectManager->get('TYPO3\\TYPO3CR\\Domain\\Service\\ContextFactory'); $this->context = $this->contextFactory->create(array('workspaceName' => 'live')); $this->nodeDataRepository = $this->objectManager->get('TYPO3\\TYPO3CR\\Domain\\Repository\\NodeDataRepository'); $this->workspaceRepository = $this->objectManager->get('TYPO3\\TYPO3CR\\Domain\\Repository\\WorkspaceRepository'); $this->workspaceRepository->add(new Workspace('live')); $this->nodeTypeManager = $this->objectManager->get('TYPO3\\TYPO3CR\\Domain\\Service\\NodeTypeManager'); $this->rootNode = $this->context->getNode('/'); $this->persistenceManager->persistAll(); }
/** * @return void */ protected function setUpRootNodeAndRepository() { $this->contextFactory = $this->objectManager->get(ContextFactory::class); $this->context = $this->contextFactory->create(array('workspaceName' => 'live')); $this->nodeDataRepository = $this->objectManager->get(NodeDataRepository::class); $this->workspaceRepository = $this->objectManager->get(WorkspaceRepository::class); $this->workspaceRepository->add(new Workspace('live')); $this->nodeTypeManager = $this->objectManager->get(NodeTypeManager::class); $this->rootNode = $this->context->getNode('/'); $this->persistenceManager->persistAll(); }
/** * @test */ public function getPropertyReturnsReferencedNodesInCorrectWorkspace() { $nodeTypeManager = $this->objectManager->get('TYPO3\\TYPO3CR\\Domain\\Service\\NodeTypeManager'); $nodeType = $nodeTypeManager->getNodeType('TYPO3.TYPO3CR.Testing:NodeTypeWithReferences'); $identifier = '81c848ed-abb5-7608-a5db-7eea0331ccfa'; $rootNode = $this->context->getNode('/'); $referencedNode = $rootNode->createNode('referenced-node', $nodeType, $identifier); $node = $rootNode->createNode('node', $nodeType, '30e893c1-caef-0ca5-b53d-e5699bb8e506'); $node->setProperty('property2', $identifier); $testContext = $this->contextFactory->create(['workspaceName' => 'test']); $testRootNode = $testContext->getNode('/'); $testReferencedNode = $testRootNode->createNode('test-referenced-node', $nodeType, $identifier); $testNode = $testRootNode->getNode('node'); $referencedNodeProperty = $node->getProperty('property2'); $this->assertNotSame($referencedNodeProperty->getWorkspace(), $testReferencedNode->getWorkspace()); $this->assertSame($referencedNodeProperty->getWorkspace(), $referencedNode->getWorkspace()); $testReferencedNodeProperty = $testNode->getProperty('property2'); $this->assertNotSame($testReferencedNodeProperty->getWorkspace(), $referencedNode->getWorkspace()); $this->assertSame($testReferencedNodeProperty->getWorkspace(), $testReferencedNode->getWorkspace()); }
protected function importCategories($parentcategory = 0, $targetPath = '/sites/site') { $categoryNodeType = 'Sfi.Kateheo:Category'; $sql = "SELECT * FROM tx_news_domain_model_category\n\t\t\tWHERE parentcategory=:parentcategory AND deleted=0 AND hidden=0\n\t\t\tORDER BY 'sorting'"; $statement = $this->connection->prepare($sql); $params = array('parentcategory' => $parentcategory); $statement->execute($params); foreach ($statement->fetchAll(\PDO::FETCH_ASSOC) as $category) { $rootNode = $this->context->getNode($targetPath); $categoryNode = $this->getCategoryByOriginalId($category['uid']); if ($categoryNode) { echo "Node " . $category['uid'] . " already exists, skipped\n"; } else { echo "{$parentcategory} -- {$targetPath}\n"; $categoryNodeTemplate = new \TYPO3\TYPO3CR\Domain\Model\NodeTemplate(); $categoryNodeTemplate->setNodeType($this->nodeTypeManager->getNodeType($categoryNodeType)); $categoryNodeTemplate->setProperty('originalIdentifier', $category['uid']); $categoryNodeTemplate->setProperty('title', $category['title']); $categoryNode = $rootNode->createNodeFromTemplate($categoryNodeTemplate); } $this->importCategories($category['uid'], $categoryNode->getPath()); } }
/** * Do down migration. * * @return void */ public function migrateDown() { $rootNode = $this->context->getNode('/'); $this->walkNodes($rootNode, MigrationStatus::DIRECTION_DOWN); }