Ejemplo n.º 1
0
 /** @test */
 public function visitorCorrectlyCreatesLeftRightEnumerationOnTree()
 {
     $node1 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('1', 0, 0, 1, '1');
     $node2 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('2', 0, 0, 1, '2');
     $node3 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('3', 0, 0, 1, '3');
     $node4 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('4', 0, 0, 1, '4');
     $node5 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('5', 0, 0, 1, '5');
     $node6 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('6', 0, 0, 1, '6');
     $node1->addChild($node2);
     $node2->setParent($node1);
     $node1->addChild($node5);
     $node5->setParent($node1);
     $node2->addChild($node3);
     $node3->setParent($node2);
     $node2->addChild($node4);
     $node4->setParent($node2);
     $node5->addChild($node6);
     $node6->setParent($node5);
     $tree = Tx_PtExtbase_Tree_Tree::getInstanceByRootNode($node1);
     $visitor = new Tx_PtExtbase_Tree_NestedSetVisitor();
     $treeWalker = new Tx_PtExtbase_Tree_TreeWalker(array($visitor));
     $treeWalker->traverseTreeDfs($tree);
     $this->assertEquals($node1->getLft(), 1);
     $this->assertEquals($node1->getRgt(), 12);
     $this->assertEquals($node2->getLft(), 2);
     $this->assertEquals($node2->getRgt(), 7);
     $this->assertEquals($node3->getLft(), 3);
     $this->assertEquals($node3->getRgt(), 4);
     $this->assertEquals($node4->getLft(), 5);
     $this->assertEquals($node4->getRgt(), 6);
     $this->assertEquals($node5->getLft(), 8);
     $this->assertEquals($node5->getRgt(), 11);
     $this->assertEquals($node6->getLft(), 9);
     $this->assertEquals($node6->getRgt(), 10);
 }
Ejemplo n.º 2
0
 /**
  * Helper method to create a node mock object
  *
  * @param $uid
  * @param integer $lft
  * @param integer $rgt
  * @param integer $root
  * @param string $label
  * @param string $namespace
  * @param bool $accessible
  * @return Tx_PtExtbase_Tree_Node
  */
 public static function createNode($uid, $lft, $rgt, $root, $label = '', $namespace = '', $accessible = true)
 {
     $node = new Tx_PtExtbase_Tests_Unit_Tree_NodeMock($uid, $label, $namespace);
     $node->setLft($lft);
     $node->setRgt($rgt);
     $node->setRoot($root);
     $node->setAccessible($accessible);
     return $node;
 }
 /** @test */
 public function saveTreeCallsRemoveInRepositoryIfNodesShouldBeRemoved()
 {
     $rootNodeMock = $this->getMock('Tx_PtExtbase_Tree_Node', array('getSubNodes'), array(), '', false);
     $rootNodeMock->expects($this->any())->method('getSubNodes')->will($this->returnValue(array()));
     $nodeMockUncloned = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode(1, 2, 1, 1);
     $nodeMock = clone $nodeMockUncloned;
     $treeMock = $this->getMock('Tx_PtExtbase_Tree_Tree', array('getDeletedNodes', 'getRoot', 'getNamespace'), array(), '', false);
     $treeMock->expects($this->any())->method('getNamespace')->will($this->returnValue('namespace'));
     $treeMock->expects($this->any())->method('getDeletedNodes')->will($this->returnValue(array($nodeMock)));
     $treeMock->expects($this->any())->method('getRoot')->will($this->returnValue($rootNodeMock));
     $nodeRepositoryMock = $this->getMock('Tx_PtExtbase_Tree_NodeRepository', array('remove', 'update', 'updateOrAdd'), array(), '', false);
     $nodeRepositoryMock->expects($this->once())->method('remove')->with($nodeMock);
     $nodeRepositoryMock->expects($this->any())->method('updateOrAdd');
     $nestedSetTreeStorage = new Tx_PtExtbase_Tree_NestedSetTreeStorage($nodeRepositoryMock);
     $nestedSetTreeStorage->saveTree($treeMock);
 }
 /**
  * @return Tx_PtExtbase_Tree_Tree
  */
 protected function getTestTree()
 {
     $node1 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('1', 0, 0, 1, '1');
     $node2 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('2', 0, 0, 1, '2');
     $node3 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('3', 0, 0, 1, '3');
     $node4 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('4', 0, 0, 1, '4');
     $node5 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('5', 0, 0, 1, '5');
     $node6 = Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode('6', 0, 0, 1, '6');
     $node1->addChild($node2);
     $node2->setParent($node1);
     $node1->addChild($node5);
     $node5->setParent($node1);
     $node2->addChild($node3);
     $node3->setParent($node2);
     $node2->addChild($node4);
     $node4->setParent($node2);
     $node5->addChild($node6);
     $node6->setParent($node5);
     $tree = Tx_PtExtbase_Tree_Tree::getInstanceByRootNode($node1);
     return $tree;
 }
Ejemplo n.º 5
0
 /** @test */
 public function deletingNodeFromTreeAddsDeletedNodesToListOfDeletedNodes()
 {
     $rootNode = new Tx_PtExtbase_Tests_Unit_Tree_NodeMock(1);
     $firstChild = new Tx_PtExtbase_Tests_Unit_Tree_NodeMock(2);
     $secondChild = new Tx_PtExtbase_Tests_Unit_Tree_NodeMock(3);
     $thirdChild = new Tx_PtExtbase_Tests_Unit_Tree_NodeMock(4);
     $fourthChild = new Tx_PtExtbase_Tests_Unit_Tree_NodeMock(5);
     $thirdChild->addChild($fourthChild);
     $firstChild->addChild($secondChild);
     $firstChild->addChild($thirdChild);
     $rootNode->addChild($firstChild);
     $tree = Tx_PtExtbase_Tree_Tree::getInstanceByRootNode($rootNode);
     $tree->deleteNode($thirdChild);
     $this->assertTrue(in_array($thirdChild, $tree->getDeletedNodes()));
     $this->assertTrue(in_array($fourthChild, $tree->getDeletedNodes()));
 }
Ejemplo n.º 6
0
 /**
  * Helper method to return a wrong sorted set of nodes
  *
  * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage
  */
 protected static function buildWrongSortedSetOfNodes()
 {
     $setOfNodes = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
     $setOfNodes->attach(Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode(5, 8, 11, 1, '5'));
     $setOfNodes->attach(Tx_PtExtbase_Tests_Unit_Tree_NodeMock::createNode(6, 9, 10, 1, '6'));
     return $setOfNodes;
 }