Completed
Push — master ( b71955...d0b2f2 )
by Tomáš
04:45
created

TreeTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 71
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 7
dl 0
loc 71
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 12 1
A testInstance() 0 7 1
A testParent() 0 10 1
A testPath() 0 10 1
A testTreeRepository() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Zenify\DoctrineExtensionsTree\Tests\Tree;
6
7
use Doctrine\ORM\EntityManager;
8
use Gedmo\Tree\Entity\Repository\MaterializedPathRepository;
9
use Gedmo\Tree\TreeListener;
10
use Nette\DI\Container;
11
use PHPUnit\Framework\TestCase;
12
use Zenify\DoctrineExtensionsTree\Tests\ContainerFactory;
13
use Zenify\DoctrineExtensionsTree\Tests\DatabaseLoader;
14
use Zenify\DoctrineExtensionsTree\Tests\Project\Entities\Category;
15
16
17
final class TreeTest extends TestCase
18
{
19
20
	/**
21
	 * @var Container
22
	 */
23
	private $container;
24
25
	/**
26
	 * @var MaterializedPathRepository
27
	 */
28
	private $categoryRepository;
29
30
31
	protected function setUp()
32
	{
33
		$this->container = (new ContainerFactory)->create();
34
35
		/** @var EntityManager $entityManager */
36
		$entityManager = $this->container->getByType(EntityManager::class);
37
		$this->categoryRepository = $entityManager->getRepository(Category::class);
38
39
		/** @var DatabaseLoader $databaseLoader */
40
		$databaseLoader = $this->container->getByType(DatabaseLoader::class);
41
		$databaseLoader->prepareCategoryTableWithTwoItems();
42
	}
43
44
45
	public function testInstance()
46
	{
47
		$this->assertInstanceOf(
48
			TreeListener::class,
49
			$this->container->getByType(TreeListener::class)
50
		);
51
	}
52
53
54
	public function testParent()
55
	{
56
		/** @var Category $category */
57
		$category = $this->categoryRepository->find(2);
58
		$this->assertInstanceOf(Category::class, $category);
59
		$this->assertSame('Apple', $category->getName());
60
61
		$this->assertInstanceOf(Category::class, $category->getParent());
62
		$this->assertSame('Fruit', $category->getParent()->getName());
63
	}
64
65
66
	public function testPath()
67
	{
68
		/** @var Category $category */
69
		$category = $this->categoryRepository->find(1);
70
		$this->assertSame('Fruit-1|', $category->getPath());
71
72
		/** @var Category $category */
73
		$category = $this->categoryRepository->find(2);
74
		$this->assertSame('Fruit-1|Apple-2|', $category->getPath());
75
	}
76
77
78
	public function testTreeRepository()
79
	{
80
		$category = $this->categoryRepository->find(1);
81
		/** @var Category[] $children */
82
		$children = $this->categoryRepository->getChildren($category);
83
		$this->assertCount(1, $children);
84
		$this->assertSame('Apple', $children[0]->getName());
85
	}
86
87
}
88