Files
breadcrumb-the-shire/tests/Service/AddressBook/AddressBookServicesFactoryTest.php
2026-02-23 12:58:19 +01:00

39 lines
1.8 KiB
PHP

<?php
namespace MintyPHP\Tests\Service\AddressBook;
use MintyPHP\Service\AddressBook\AddressBookAvatarGateway;
use MintyPHP\Service\AddressBook\AddressBookCustomFieldGateway;
use MintyPHP\Service\AddressBook\AddressBookDirectoryGateway;
use MintyPHP\Service\AddressBook\AddressBookService;
use MintyPHP\Service\AddressBook\AddressBookServicesFactory;
use PHPUnit\Framework\TestCase;
class AddressBookServicesFactoryTest extends TestCase
{
public function testFactoryReturnsStableInstancesPerFactoryObject(): void
{
$factory = new AddressBookServicesFactory();
$directoryGatewayA = $factory->createAddressBookDirectoryGateway();
$directoryGatewayB = $factory->createAddressBookDirectoryGateway();
$this->assertInstanceOf(AddressBookDirectoryGateway::class, $directoryGatewayA);
$this->assertSame($directoryGatewayA, $directoryGatewayB);
$customFieldGatewayA = $factory->createAddressBookCustomFieldGateway();
$customFieldGatewayB = $factory->createAddressBookCustomFieldGateway();
$this->assertInstanceOf(AddressBookCustomFieldGateway::class, $customFieldGatewayA);
$this->assertSame($customFieldGatewayA, $customFieldGatewayB);
$avatarGatewayA = $factory->createAddressBookAvatarGateway();
$avatarGatewayB = $factory->createAddressBookAvatarGateway();
$this->assertInstanceOf(AddressBookAvatarGateway::class, $avatarGatewayA);
$this->assertSame($avatarGatewayA, $avatarGatewayB);
$addressBookServiceA = $factory->createAddressBookService();
$addressBookServiceB = $factory->createAddressBookService();
$this->assertInstanceOf(AddressBookService::class, $addressBookServiceA);
$this->assertSame($addressBookServiceA, $addressBookServiceB);
}
}