respect-validation/tests/unit/ContainerRegistryTest.php
Henrique Moody fd7438f9c7
Use a DI container to create instances of Validator
The `ValidatorDefaults` is cumbersome, and customising it can be
annoying. Most projects use some sort of dependency injection container,
and by integrating the creation of the `Validator` with the PSR-11, we
allow users to easily customise how they create validators.

Some tasks, like overwriting the `Translator`, become a bit more
verbose, if the user is not already using a PSR-11 container, but I
think that’s a good tradeoff.
2025-12-22 13:12:04 +01:00

44 lines
1.2 KiB
PHP

<?php
/*
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
* SPDX-License-Identifier: MIT
*/
declare(strict_types=1);
namespace Respect\Validation;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DoesNotPerformAssertions;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\Attributes\Test;
use Respect\Validation\Test\TestCase;
#[Group('core')]
#[CoversClass(ContainerRegistry::class)]
final class ContainerRegistryTest extends TestCase
{
#[Test]
#[DoesNotPerformAssertions]
public function itTheCreatedContainerShouldBeAbleToProvideAnInstanceOfValidator(): void
{
$container = ContainerRegistry::createContainer();
$container->get(Validator::class);
}
#[Test]
public function itAlwaysReturnsTheSameInstanceOfTheContainer(): void
{
self::assertSame(ContainerRegistry::getContainer(), ContainerRegistry::getContainer());
}
#[Test]
public function itAllowsOverwritingTheContainer(): void
{
$newContainer = ContainerRegistry::createContainer();
ContainerRegistry::setContainer($newContainer);
self::assertSame($newContainer, ContainerRegistry::getContainer());
}
}