Skip to content

Commit ce0937b

Browse files
committed
added tests for get specific definition types
1 parent bf31b36 commit ce0937b

5 files changed

+166
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\DI\ContainerBuilder::getAccessorDefinition()
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\DI;
10+
use Tester\Assert;
11+
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
interface AccessorDefinition
16+
{
17+
public function get();
18+
}
19+
20+
$builder = new DI\ContainerBuilder;
21+
$definitionOne = $builder->addAccessorDefinition('one')
22+
->setImplement(AccessorDefinition::class)
23+
->setClass(\stdClass::class);
24+
25+
$builder->addDefinition('two')
26+
->setType(stdClass::class);
27+
28+
29+
$definition = $builder->getAccessorDefinition('one');
30+
Assert::same($definitionOne, $definition);
31+
32+
Assert::exception(function () use ($builder) {
33+
$builder->getAccessorDefinition('unknown');
34+
}, Nette\DI\MissingServiceException::class, "Service 'unknown' not found.");
35+
36+
Assert::exception(function () use ($builder) {
37+
$builder->getAccessorDefinition('two');
38+
}, Nette\DI\MissingServiceException::class, "AccessorDefinition with name 'two' not found.");
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\DI\ContainerBuilder::getFactoryDefinition()
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\DI;
10+
use Tester\Assert;
11+
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
$builder = new DI\ContainerBuilder;
16+
$definitionOne = $builder->addFactoryDefinition('one');
17+
$definitionOne->getResultDefinition()
18+
->setFactory(SplFileInfo::class);
19+
20+
$builder->addDefinition('two')
21+
->setType(stdClass::class);
22+
23+
24+
$definition = $builder->getFactoryDefinition('one');
25+
Assert::same($definitionOne, $definition);
26+
27+
Assert::exception(function () use ($builder) {
28+
$builder->getFactoryDefinition('unknown');
29+
}, Nette\DI\MissingServiceException::class, "Service 'unknown' not found.");
30+
31+
Assert::exception(function () use ($builder) {
32+
$builder->getFactoryDefinition('two');
33+
}, Nette\DI\MissingServiceException::class, "FactoryDefinition with name 'two' not found.");
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\DI\ContainerBuilder::getAccessorDefinition()
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\DI;
10+
use Tester\Assert;
11+
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
$builder = new DI\ContainerBuilder;
16+
$definitionOne = $builder->addImportedDefinition('one');
17+
18+
$builder->addDefinition('two')
19+
->setType(stdClass::class);
20+
21+
22+
$definition = $builder->getImportedDefinition('one');
23+
Assert::same($definitionOne, $definition);
24+
25+
Assert::exception(function () use ($builder) {
26+
$builder->getImportedDefinition('unknown');
27+
}, Nette\DI\MissingServiceException::class, "Service 'unknown' not found.");
28+
29+
Assert::exception(function () use ($builder) {
30+
$builder->getImportedDefinition('two');
31+
}, Nette\DI\MissingServiceException::class, "ImportedDefinition with name 'two' not found.");
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\DI\ContainerBuilder::getAccessorDefinition()
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\DI;
10+
use Tester\Assert;
11+
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
$builder = new DI\ContainerBuilder;
16+
$definitionOne = $builder->addLocatorDefinition('one');
17+
18+
$builder->addDefinition('two')
19+
->setType(stdClass::class);
20+
21+
22+
$definition = $builder->getLocatorDefinition('one');
23+
Assert::same($definitionOne, $definition);
24+
25+
Assert::exception(function () use ($builder) {
26+
$builder->getLocatorDefinition('unknown');
27+
}, Nette\DI\MissingServiceException::class, "Service 'unknown' not found.");
28+
29+
Assert::exception(function () use ($builder) {
30+
$builder->getLocatorDefinition('two');
31+
}, Nette\DI\MissingServiceException::class, "LocatorDefinition with name 'two' not found.");
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
/**
4+
* Test: Nette\DI\ContainerBuilder::getServiceDefinition()
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\DI;
10+
use Tester\Assert;
11+
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
$builder = new DI\ContainerBuilder;
16+
$definitionOne = $builder->addDefinition('one')
17+
->setType(stdClass::class);
18+
19+
$builder->addFactoryDefinition('two')
20+
->getResultDefinition()
21+
->setFactory(SplFileInfo::class);
22+
23+
24+
$definition = $builder->getServiceDefinition('one');
25+
Assert::same($definitionOne, $definition);
26+
27+
Assert::exception(function () use ($builder) {
28+
$builder->getServiceDefinition('unknown');
29+
}, Nette\DI\MissingServiceException::class, "Service 'unknown' not found.");
30+
31+
Assert::exception(function () use ($builder) {
32+
$builder->getServiceDefinition('two');
33+
}, Nette\DI\MissingServiceException::class, "ServiceDefinition with name 'two' not found.");

0 commit comments

Comments
 (0)