. */ namespace App\Tests\Services\Parameters; use App\Entity\Parameters\AbstractParameter; use App\Services\Parameters\ParameterExtractor; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ParameterExtractorTest extends WebTestCase { protected $service; public function setUp(): void { parent::setUp(); //Get an service instance. self::bootKernel(); $this->service = self::$container->get(ParameterExtractor::class); } public function emptyDataProvider(): array { return [ [""], [" "], ["\t\n"], [":;"], ["NPN Transistor"], ["=BC547 rewr"], ["For good, [b]bad[/b], evil"], ["Param:; Test"] ]; } /** * @dataProvider emptyDataProvider */ public function testShouldReturnEmpty(string $input) { $this->assertEmpty($this->service->extractParameters($input)); } public function testExtract() { $parameters = $this->service->extractParameters(' Operating Voltage: 10 V; Property : Value, Ström=1A (Test)'); $this->assertContainsOnly(AbstractParameter::class, $parameters); $this->assertCount(3, $parameters); $this->assertSame('Operating Voltage', $parameters[0]->getName()); $this->assertSame('10 V', $parameters[0]->getValueText()); $this->assertSame('Property', $parameters[1]->getName()); $this->assertSame('Value', $parameters[1]->getValueText()); $this->assertSame('Ström', $parameters[2]->getName()); $this->assertSame('1A (Test)', $parameters[2]->getValueText()); } }