Skip to content

Commit 75ed250

Browse files
committed
DoctrineServiceProvider tests
1 parent 7d9938b commit 75ed250

5 files changed

+112
-3
lines changed

Diff for: composer.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@
4747
"phpunit/phpunit": "^11.4",
4848
"fakerphp/faker": "^1.23",
4949
"laravel/framework": "^10.0 || ^11.0",
50-
"orchestra/testbench": "^9.5"
50+
"orchestra/testbench": "^9.5",
51+
"beberlei/doctrineextensions": "^1.5",
52+
"laravel-doctrine/extensions": "2.0.x-dev",
53+
"gedmo/doctrine-extensions": "^3.17"
5154
},
5255
"conflict": {
5356
"laravel/lumen": "*"
@@ -116,4 +119,4 @@
116119
"@php vendor/bin/phpstan analyse --verbose --ansi"
117120
]
118121
}
119-
}
122+
}

Diff for: config/doctrine.php

-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@
104104
|
105105
*/
106106
'extensions' => [
107-
//LaravelDoctrine\ORM\Extensions\TablePrefix\TablePrefixExtension::class,
108107
//LaravelDoctrine\Extensions\Timestamps\TimestampableExtension::class,
109108
//LaravelDoctrine\Extensions\SoftDeletes\SoftDeleteableExtension::class,
110109
//LaravelDoctrine\Extensions\Sluggable\SluggableExtension::class,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace LaravelDoctrineTest\ORM\Feature;
6+
7+
use Doctrine\ORM\Mapping\ClassMetadataFactory;
8+
use Doctrine\Persistence\ManagerRegistry;
9+
use DoctrineExtensions\Query\Mysql\Ascii;
10+
use DoctrineExtensions\Query\Mysql\Cos;
11+
use DoctrineExtensions\Query\Mysql\Date;
12+
use Illuminate\Config\Repository;
13+
use LaravelDoctrineTest\ORM\TestCase;
14+
15+
class DoctrineServiceProviderCustomFunctionsTest extends TestCase
16+
{
17+
protected function defineEnvironment(mixed $app): void
18+
{
19+
// Setup default database to use sqlite :memory:
20+
tap($app['config'], function (Repository $config) {
21+
$config->set('doctrine.custom_datetime_functions', [
22+
'DATE' => Date::class,
23+
]);
24+
$config->set('doctrine.custom_numeric_functions', [
25+
'COS' => Cos::class,
26+
]);
27+
$config->set('doctrine.custom_string_functions', [
28+
'ASCII' => Ascii::class,
29+
]);
30+
});
31+
}
32+
33+
public function testRegistryIsRegistered(): void
34+
{
35+
$registry = $this->app->get('registry');
36+
37+
$this->assertInstanceOf(
38+
ManagerRegistry::class,
39+
$registry,
40+
);
41+
}
42+
}
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace LaravelDoctrineTest\ORM\Feature;
6+
7+
use Illuminate\Config\Repository;
8+
use LaravelDoctrineTest\ORM\TestCase;
9+
10+
class DoctrineServiceProviderExtensionTest extends TestCase
11+
{
12+
protected function defineEnvironment($app): void
13+
{
14+
// Setup default database to use sqlite :memory:
15+
tap($app['config'], function (Repository $config) {
16+
$config->set('doctrine.extensions', [
17+
\LaravelDoctrine\Extensions\Timestamps\TimestampableExtension::class,
18+
\LaravelDoctrine\Extensions\SoftDeletes\SoftDeleteableExtension::class,
19+
\LaravelDoctrine\Extensions\Sluggable\SluggableExtension::class,
20+
\LaravelDoctrine\Extensions\Sortable\SortableExtension::class,
21+
\LaravelDoctrine\Extensions\Tree\TreeExtension::class,
22+
\LaravelDoctrine\Extensions\Loggable\LoggableExtension::class,
23+
\LaravelDoctrine\Extensions\Blameable\BlameableExtension::class,
24+
\LaravelDoctrine\Extensions\IpTraceable\IpTraceableExtension::class,
25+
\LaravelDoctrine\Extensions\Translatable\TranslatableExtension::class
26+
]);
27+
});
28+
}
29+
30+
public function testExtensions(): void
31+
{
32+
$registry = $this->app->get('registry');
33+
34+
$this->assertTrue(true);
35+
}
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace LaravelDoctrineTest\ORM\Feature;
6+
7+
use Illuminate\Config\Repository;
8+
use LaravelDoctrine\ORM\Exceptions\ExtensionNotFound;
9+
use LaravelDoctrineTest\ORM\TestCase;
10+
11+
class DoctrineServiceProviderInvalidExtensionTest extends TestCase
12+
{
13+
protected function defineEnvironment($app): void
14+
{
15+
// Setup default database to use sqlite :memory:
16+
tap($app['config'], function (Repository $config) {
17+
$config->set('doctrine.extensions', [
18+
'invalid' => 'InvalalidExtension',
19+
]);
20+
});
21+
}
22+
23+
public function testInvalidException(): void
24+
{
25+
$this->expectException(ExtensionNotFound::class);
26+
27+
$registry = $this->app->get('registry');
28+
}
29+
}

0 commit comments

Comments
 (0)