Version 1.0.0

This commit is contained in:
diffhead
2025-11-16 01:51:25 +04:00
committed by Viktor Smagin
commit 8cb7f400fd
43 changed files with 4462 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
<?php
declare(strict_types=1);
namespace Diffhead\PHP\DataEnrichmentKit\Tests\Service;
use Diffhead\PHP\DataEnrichmentKit\Object\Request;
use Diffhead\PHP\DataEnrichmentKit\Service\Parser;
use Diffhead\PHP\DataEnrichmentKit\Exception\InvalidRequest;
use Diffhead\PHP\DataEnrichmentKit\Interface\Parser as ParserInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\CoversMethod;
use PHPUnit\Framework\TestCase;
#[CoversClass(Parser::class)]
#[CoversMethod(Parser::class, 'parse')]
class ParserTest extends TestCase
{
public function testImplementsParserInterface(): void
{
$this->assertInstanceOf(ParserInterface::class, new Parser());
}
public function testParseValidInput(): void
{
$parser = new Parser();
$input = 'key1+alias1,key2+alias2@entity,field';
$request = $parser->parse($input);
$this->assertInstanceOf(Request::class, $request);
$this->assertEquals('entity', $request->target()->entity());
$this->assertEquals('field', $request->target()->field());
$items = iterator_to_array($request->items()->getIterator());
$this->assertCount(2, $items);
$this->assertEquals('key1', $items[0]->key());
$this->assertEquals('alias1', $items[0]->alias());
$this->assertEquals('key2', $items[1]->key());
$this->assertEquals('alias2', $items[1]->alias());
}
public function testParseThrowsExceptionOnEmptyTarget(): void
{
$this->expectException(InvalidRequest::class);
$parser = new Parser();
$parser->parse('key1+alias1,key2+alias2@');
}
public function testParseThrowsExceptionOnInvalidTarget(): void
{
$this->expectException(InvalidRequest::class);
$parser = new Parser();
$parser->parse('key1+alias1,key2+alias2@entity');
}
public function testParseThrowsExceptionOnEmptyInput(): void
{
$this->expectException(InvalidRequest::class);
$parser = new Parser();
$parser->parse('');
}
}