. */ namespace SP\Tests\Domain\Account\Services\Builders; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use SP\Domain\Account\Services\Builders\AccountSearchTokenizer; use SP\Tests\UnitaryTestCase; /** * Class AccountSearchTokenizerTest * */ #[Group('unitary')] class AccountSearchTokenizerTest extends UnitaryTestCase { use AccountSearchTokenizerDataTrait; /** * @param string $search * @param array $expectedConditions * * @return void */ #[DataProvider('searchByItemDataProvider')] public function testTokenizeFromFilterByItems(string $search, array $expectedConditions): void { $tokenizer = new AccountSearchTokenizer(); $out = $tokenizer->tokenizeFrom($search); $this->assertNotNull($out); $this->assertEquals($expectedConditions, $out->getItems()); } /** * @param string $search * @param array $expectedConditions * * @return void */ #[DataProvider('searchByConditionDataProvider')] public function testTokenizeFromFilterByCondition(string $search, array $expectedConditions): void { $tokenizer = new AccountSearchTokenizer(); $out = $tokenizer->tokenizeFrom($search); $this->assertNotNull($out); $this->assertEquals($expectedConditions, $out->getConditions()); } /** * @param string $search * @param string|null $expectedCondition * * @return void */ #[DataProvider('searchUsingOperatorDataProvider')] public function testTokenizeFromFilterUsingOperator(string $search, ?string $expectedCondition): void { $tokenizer = new AccountSearchTokenizer(); $out = $tokenizer->tokenizeFrom($search); $this->assertNotNull($out); $this->assertEquals($expectedCondition, $out->getOperator()); } /** * @param string $search * @param string $expectedString * * @return void */ #[DataProvider('searchUsingStringDataProvider')] public function testTokenizeFromFilterUsingSearchString(string $search, string $expectedString): void { $tokenizer = new AccountSearchTokenizer(); $out = $tokenizer->tokenizeFrom($search); $this->assertNotNull($out); $this->assertEquals($expectedString, $out->getSearch()); } /** * @return void */ public function testTokenizeFromFilterUsingSearchStringWithIsNull(): void { $tokenizer = new AccountSearchTokenizer(); $out = $tokenizer->tokenizeFrom(''); $this->assertNull($out); } }