diff --git a/tests/NestedSetsBehaviorTest.php b/tests/NestedSetsBehaviorTest.php index 3d57610..b0f3489 100644 --- a/tests/NestedSetsBehaviorTest.php +++ b/tests/NestedSetsBehaviorTest.php @@ -356,7 +356,50 @@ class NestedSetsBehaviorTest extends DatabaseTestCase */ public function testPrependExistsTo() { - $this->markTestSkipped(); + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->prependTo(Tree::findOne(2)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-prepend-exists-up-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->prependTo(Tree::findOne(16)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-prepend-exists-down-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->prependTo(MultipleRootsTree::findOne(24)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-prepend-exists-up-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->prependTo(MultipleRootsTree::findOne(38)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-prepend-exists-down-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(9); + $node->prependTo(MultipleRootsTree::findOne(53)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-prepend-exists-another-tree-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); } /** @@ -408,7 +451,50 @@ class NestedSetsBehaviorTest extends DatabaseTestCase */ public function testAppendExistsTo() { - $this->markTestSkipped(); + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->appendTo(Tree::findOne(2)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-append-exists-up-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->appendTo(Tree::findOne(16)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-append-exists-down-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->appendTo(MultipleRootsTree::findOne(24)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-append-exists-up-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->appendTo(MultipleRootsTree::findOne(38)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-append-exists-down-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(9); + $node->appendTo(MultipleRootsTree::findOne(53)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-append-exists-another-tree-to.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); } /** @@ -460,7 +546,50 @@ class NestedSetsBehaviorTest extends DatabaseTestCase */ public function testInsertExistsBefore() { - $this->markTestSkipped(); + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->insertBefore(Tree::findOne(2)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-insert-exists-before-up.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->insertBefore(Tree::findOne(16)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-insert-exists-before-down.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->insertBefore(MultipleRootsTree::findOne(24)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-insert-exists-before-up.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->insertBefore(MultipleRootsTree::findOne(38)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-insert-exists-before-down.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(9); + $node->insertBefore(MultipleRootsTree::findOne(53)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-insert-exists-before-another-tree.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); } /** @@ -512,7 +641,50 @@ class NestedSetsBehaviorTest extends DatabaseTestCase */ public function testInsertExistsAfter() { - $this->markTestSkipped(); + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->insertAfter(Tree::findOne(2)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-insert-exists-after-up.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = Tree::findOne(9); + $node->insertAfter(Tree::findOne(16)); + $dataSet = $this->getConnection()->createDataSet(['tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-after-insert-exists-after-down.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->insertAfter(MultipleRootsTree::findOne(24)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-insert-exists-after-up.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(31); + $node->insertAfter(MultipleRootsTree::findOne(38)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-insert-exists-after-down.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); + + $dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml'); + $this->getDatabaseTester()->setDataSet($dataSet); + $this->getDatabaseTester()->onSetUp(); + $node = MultipleRootsTree::findOne(9); + $node->insertAfter(MultipleRootsTree::findOne(53)); + $dataSet = $this->getConnection()->createDataSet(['multiple_roots_tree']); + $expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-after-insert-exists-after-another-tree.xml'); + $this->assertDataSetsEqual($expectedDataSet, $dataSet); } /**