. */ namespace App\Tests\Entity\Parts; use App\Entity\Parts\InfoProviderReference; use App\Services\InfoProviderSystem\DTOs\PartDetailDTO; use PHPUnit\Framework\TestCase; class InfoProviderReferenceTest extends TestCase { public function testNoProvider(): void { $provider = InfoProviderReference::noProvider(); //The no provider instance should return false for the providerCreated method $this->assertFalse($provider->isProviderCreated()); //And null for all other methods $this->assertNull($provider->getProviderKey()); $this->assertNull($provider->getProviderId()); $this->assertNull($provider->getProviderUrl()); $this->assertNull($provider->getLastUpdated()); } public function testProviderReference(): void { $provider = InfoProviderReference::providerReference('test', 'id', 'url'); //The provider reference instance should return true for the providerCreated method $this->assertTrue($provider->isProviderCreated()); //And the correct values for all other methods $this->assertEquals('test', $provider->getProviderKey()); $this->assertEquals('id', $provider->getProviderId()); $this->assertEquals('url', $provider->getProviderUrl()); $this->assertNotNull($provider->getLastUpdated()); } public function testFromPartDTO(): void { $dto = new PartDetailDTO(provider_key: 'test', provider_id: 'id', name: 'name', description: 'description', provider_url: 'url'); $reference = InfoProviderReference::fromPartDTO($dto); //The provider reference instance should return true for the providerCreated method $this->assertTrue($reference->isProviderCreated()); //And the correct values for all other methods $this->assertEquals('test', $reference->getProviderKey()); $this->assertEquals('id', $reference->getProviderId()); $this->assertEquals('url', $reference->getProviderUrl()); $this->assertNotNull($reference->getLastUpdated()); } }