Skip to content

Commit 1a2cef8

Browse files
author
Яценко Андрей
committed
Add: test for custom transform method
1 parent 1bc6e70 commit 1a2cef8

File tree

3 files changed

+59
-6
lines changed

3 files changed

+59
-6
lines changed

tests/ClassTransformerTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public function testRecursiveArray(): void
5050
self::assertIsString($purchaseDTO->user->email);
5151
self::assertIsFloat($purchaseDTO->user->balance);
5252

53-
foreach ($purchaseDTO->products as $key => $product){
53+
foreach ($purchaseDTO->products as $key => $product) {
5454
self::assertInstanceOf(ProductDTO::class, $product);
5555
self::assertEquals($data['products'][$key]['id'], $product->id);
5656
self::assertEquals($data['products'][$key]['name'], $product->name);
@@ -82,7 +82,7 @@ public function testTripleRecursiveArray(): void
8282
self::assertIsString($purchase->user->email);
8383
self::assertIsFloat($purchase->user->balance);
8484

85-
foreach ($purchase->products as $productKey => $product){
85+
foreach ($purchase->products as $productKey => $product) {
8686
self::assertInstanceOf(ProductDTO::class, $product);
8787
self::assertEquals($data['orders'][$key]['products'][$productKey]['id'], $product->id);
8888
self::assertEquals($data['orders'][$key]['products'][$productKey]['name'], $product->name);
@@ -98,7 +98,7 @@ public function testTripleRecursiveArray(): void
9898

9999
public function testBaseObject(): void
100100
{
101-
$data= $this->getBaseObject();
101+
$data = $this->getBaseObject();
102102

103103
$userDTO = ClassTransformer::transform(UserDTO::class, $data);
104104

@@ -115,7 +115,7 @@ public function testBaseObject(): void
115115

116116
public function testRecursiveObject(): void
117117
{
118-
$data= $this->getRecursiveObject();
118+
$data = $this->getRecursiveObject();
119119
$purchaseDTO = ClassTransformer::transform(PurchaseDTO::class, $data);
120120

121121
self::assertInstanceOf(PurchaseDTO::class, $purchaseDTO);
@@ -129,7 +129,7 @@ public function testRecursiveObject(): void
129129
self::assertIsString($purchaseDTO->user->email);
130130
self::assertIsFloat($purchaseDTO->user->balance);
131131

132-
foreach ($purchaseDTO->products as $key => $product){
132+
foreach ($purchaseDTO->products as $key => $product) {
133133
self::assertInstanceOf(ProductDTO::class, $product);
134134
self::assertEquals($data->products[$key]->id, $product->id);
135135
self::assertEquals($data->products[$key]->name, $product->name);
@@ -163,7 +163,7 @@ public function testTripleRecursiveObject(): void
163163
self::assertIsString($purchase->user->email);
164164
self::assertIsFloat($purchase->user->balance);
165165

166-
foreach ($purchase->products as $productKey => $product){
166+
foreach ($purchase->products as $productKey => $product) {
167167
self::assertInstanceOf(ProductDTO::class, $product);
168168
self::assertEquals($data->orders[$key]->products[$productKey]->id, $product->id);
169169
self::assertEquals($data->orders[$key]->products[$productKey]->name, $product->name);

tests/CustomTransformerTest.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tests;
6+
7+
use PHPUnit\Framework\TestCase;
8+
use ClassTransformer\ClassTransformer;
9+
use Tests\DTO\CustomTransformUserDTO;
10+
11+
/**
12+
* Class CustomTransformerTest
13+
* @package Tests
14+
*/
15+
class CustomTransformerTest extends TestCase
16+
{
17+
18+
public function testCustomTransform(): void
19+
{
20+
$data = [
21+
'login' => 'test-login',
22+
'fio' => 'Corey',
23+
];
24+
$userDTO = ClassTransformer::transform(CustomTransformUserDTO::class, $data);
25+
26+
self::assertInstanceOf(CustomTransformUserDTO::class, $userDTO);
27+
28+
self::assertFalse(isset($userDTO->login));
29+
self::assertFalse(isset($userDTO->fio));
30+
31+
self::assertEquals($data['login'], $userDTO->email);
32+
self::assertEquals($data['fio'], $userDTO->username);
33+
}
34+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tests\DTO;
6+
7+
class CustomTransformUserDTO
8+
{
9+
public string $email;
10+
public string $username;
11+
12+
public static function transform($args)
13+
{
14+
$dto = new self();
15+
$dto->email = $args['login'];
16+
$dto->username = $args['fio'];
17+
return $dto;
18+
}
19+
}

0 commit comments

Comments
 (0)