1
0
Fork 0
mirror of https://github.com/Oreolek/yii2-nested-sets.git synced 2024-06-17 07:10:46 +03:00
yii2-nested-sets/tests/NestedSetsQueryBehaviorTest.php

57 lines
2.5 KiB
PHP

<?php
/**
* @link https://github.com/creocoder/yii2-nested-sets-behavior
* @copyright Copyright (c) 2015 Alexander Kochetov
* @license http://opensource.org/licenses/BSD-3-Clause
*/
namespace tests;
use tests\models\MultipleRootsTree;
use tests\models\Tree;
use yii\helpers\ArrayHelper;
/**
* NestedSetsQueryBehaviorTest
*/
class NestedSetsQueryBehaviorTest extends DatabaseTestCase
{
public function testRoots()
{
$dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml');
$this->getDatabaseTester()->setDataSet($dataSet);
$this->getDatabaseTester()->onSetUp();
$models = Tree::find()->roots()->all();
$dataSet = new ArrayDataSet(['tree' => ArrayHelper::toArray($models)]);
$expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-query-roots.xml');
$this->assertDataSetsEqual($expectedDataSet, $dataSet);
$dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml');
$this->getDatabaseTester()->setDataSet($dataSet);
$this->getDatabaseTester()->onSetUp();
$models = MultipleRootsTree::find()->roots()->all();
$dataSet = new ArrayDataSet(['multiple_roots_tree' => ArrayHelper::toArray($models)]);
$expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-query-roots.xml');
$this->assertDataSetsEqual($expectedDataSet, $dataSet);
}
public function testLeaves()
{
$dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree.xml');
$this->getDatabaseTester()->setDataSet($dataSet);
$this->getDatabaseTester()->onSetUp();
$models = Tree::find()->leaves()->all();
$dataSet = new ArrayDataSet(['tree' => ArrayHelper::toArray($models)]);
$expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/tree-query-leaves.xml');
$this->assertDataSetsEqual($expectedDataSet, $dataSet);
$dataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree.xml');
$this->getDatabaseTester()->setDataSet($dataSet);
$this->getDatabaseTester()->onSetUp();
$models = MultipleRootsTree::find()->leaves()->all();
$dataSet = new ArrayDataSet(['multiple_roots_tree' => ArrayHelper::toArray($models)]);
$expectedDataSet = $this->createFlatXMLDataSet(__DIR__ . '/datasets/multiple-roots-tree-query-leaves.xml');
$this->assertDataSetsEqual($expectedDataSet, $dataSet);
}
}