parent
dabeee4a72
commit
642dd026f1
@ -0,0 +1,51 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\Converter; |
||||
|
||||
use Rinsvent\Data2DTO\Data2DtoConverter; |
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\HelloClassTransformersRequest; |
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\HelloClassTransformersRequest2; |
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\HelloTagsRequest; |
||||
|
||||
class ClassTransformersTest extends \Codeception\Test\Unit |
||||
{ |
||||
/** |
||||
* @var \UnitTester |
||||
*/ |
||||
protected $tester; |
||||
|
||||
protected function _before() |
||||
{ |
||||
} |
||||
|
||||
protected function _after() |
||||
{ |
||||
} |
||||
|
||||
// tests |
||||
public function testSuccessWithReturnData() |
||||
{ |
||||
$data2DtoConverter = new Data2DtoConverter(); |
||||
|
||||
$data = [ |
||||
'surname' => 'Surname1234', |
||||
'age' => 3, |
||||
]; |
||||
$dto = $data2DtoConverter->convert($data, new HelloClassTransformersRequest); |
||||
$this->assertInstanceOf(HelloClassTransformersRequest::class, $dto); |
||||
$this->assertEquals(123454321, $dto->surname); |
||||
} |
||||
|
||||
public function testSuccessWithReturnObject() |
||||
{ |
||||
$data2DtoConverter = new Data2DtoConverter(); |
||||
|
||||
$data = [ |
||||
'surname' => 'Surname1234', |
||||
'age' => 3, |
||||
]; |
||||
$dto = $data2DtoConverter->convert($data, new HelloClassTransformersRequest2()); |
||||
$this->assertInstanceOf(HelloClassTransformersRequest2::class, $dto); |
||||
$this->assertEquals(98789, $dto->surname); |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\Converter; |
||||
|
||||
use Rinsvent\Data2DTO\Data2DtoConverter; |
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Bar; |
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\BuyRequest; |
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\HelloRequest; |
||||
|
||||
class DataObjectTest extends \Codeception\Test\Unit |
||||
{ |
||||
/** |
||||
* @var \UnitTester |
||||
*/ |
||||
protected $tester; |
||||
|
||||
protected function _before() |
||||
{ |
||||
} |
||||
|
||||
protected function _after() |
||||
{ |
||||
} |
||||
|
||||
// tests |
||||
public function testSuccessFillRequestData() |
||||
{ |
||||
$data2DtoConverter = new Data2DtoConverter(); |
||||
|
||||
$buy = new BuyRequest(); |
||||
$buy->phrase = 'Buy buy!!!'; |
||||
$buy->length = 10; |
||||
$buy->isFirst = true; |
||||
|
||||
$dto = $data2DtoConverter->convert([ |
||||
'surname' => ' asdf', |
||||
'buy' => $buy |
||||
], new HelloRequest); |
||||
|
||||
$this->assertInstanceOf(HelloRequest::class, $dto); |
||||
$this->assertEquals($buy, $dto->buy); |
||||
} |
||||
} |
@ -0,0 +1,12 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest; |
||||
|
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Transformer\ClassData; |
||||
|
||||
#[ClassData] |
||||
class HelloClassTransformersRequest |
||||
{ |
||||
public string $surname; |
||||
public int $age; |
||||
} |
@ -0,0 +1,12 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest; |
||||
|
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Transformer\ClassObject; |
||||
|
||||
#[ClassObject] |
||||
class HelloClassTransformersRequest2 |
||||
{ |
||||
public string $surname; |
||||
public int $age; |
||||
} |
@ -0,0 +1,11 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Transformer; |
||||
|
||||
use Rinsvent\Data2DTO\Transformer\Meta; |
||||
|
||||
#[\Attribute] |
||||
class ClassData extends Meta |
||||
{ |
||||
|
||||
} |
@ -0,0 +1,24 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Transformer; |
||||
|
||||
use Rinsvent\Data2DTO\Transformer\Meta; |
||||
use Rinsvent\Data2DTO\Transformer\TransformerInterface; |
||||
|
||||
class ClassDataTransformer implements TransformerInterface |
||||
{ |
||||
/** |
||||
* @param array|null $data |
||||
* @param ClassData $meta |
||||
*/ |
||||
public function transform(&$data, Meta $meta): void |
||||
{ |
||||
if ($data === null) { |
||||
return; |
||||
} |
||||
|
||||
if (isset($data['surname'])) { |
||||
$data['surname'] = '123454321'; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Transformer; |
||||
|
||||
use Rinsvent\Data2DTO\Transformer\Meta; |
||||
|
||||
#[\Attribute] |
||||
class ClassObject extends Meta |
||||
{ |
||||
|
||||
} |
@ -0,0 +1,24 @@ |
||||
<?php |
||||
|
||||
namespace Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\Transformer; |
||||
|
||||
use Rinsvent\Data2DTO\Tests\unit\Converter\fixtures\FillTest\HelloClassTransformersRequest2; |
||||
use Rinsvent\Data2DTO\Transformer\Meta; |
||||
use Rinsvent\Data2DTO\Transformer\TransformerInterface; |
||||
|
||||
class ClassObjectTransformer implements TransformerInterface |
||||
{ |
||||
/** |
||||
* @param array|null $data |
||||
* @param ClassData $meta |
||||
*/ |
||||
public function transform(&$data, Meta $meta): void |
||||
{ |
||||
if ($data === null) { |
||||
return; |
||||
} |
||||
$object = new HelloClassTransformersRequest2(); |
||||
$object->surname = '98789'; |
||||
$data = $object; |
||||
} |
||||
} |
Loading…
Reference in new issue