Skip to content

Commit 3004c7e

Browse files
committed
add test
1 parent 55376da commit 3004c7e

File tree

3 files changed

+144
-0
lines changed

3 files changed

+144
-0
lines changed

tests/Stubs/Author.php

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
3+
/**
4+
* PHP Service Bus (publish-subscribe pattern implementation) serializer component
5+
*
6+
* @author Maksim Masiukevich <desperado@minsk-info.ru>
7+
* @license MIT
8+
* @license https://opensource.org/licenses/MIT
9+
*/
10+
11+
declare(strict_types = 1);
12+
13+
namespace Desperado\ServiceBus\MessageSerializer\Tests\Stubs;
14+
15+
/**
16+
*
17+
*/
18+
final class Author
19+
{
20+
/**
21+
* @var string
22+
*/
23+
public $firstName;
24+
25+
/**
26+
* @var string
27+
*/
28+
public $lastName;
29+
30+
/**
31+
* @param string $firstName
32+
* @param string $lastName
33+
*
34+
* @return self
35+
*/
36+
public static function create(string $firstName, string $lastName): self
37+
{
38+
return new self($firstName, $lastName);
39+
}
40+
41+
/**
42+
* @param string $firstName
43+
* @param string $lastName
44+
*/
45+
private function __construct(string $firstName, string $lastName)
46+
{
47+
$this->firstName = $firstName;
48+
$this->lastName = $lastName;
49+
}
50+
}

tests/Stubs/TestMessage.php

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?php
2+
3+
/**
4+
* PHP Service Bus (publish-subscribe pattern implementation) serializer component
5+
*
6+
* @author Maksim Masiukevich <desperado@minsk-info.ru>
7+
* @license MIT
8+
* @license https://opensource.org/licenses/MIT
9+
*/
10+
11+
declare(strict_types = 1);
12+
13+
namespace Desperado\ServiceBus\MessageSerializer\Tests\Stubs;
14+
15+
use Desperado\ServiceBus\Common\Messages\Message;
16+
17+
/**
18+
*
19+
*/
20+
final class TestMessage implements Message
21+
{
22+
/**
23+
* @var string
24+
*/
25+
private $componentName;
26+
27+
/**
28+
* @var string|null
29+
*/
30+
private $stableVersion;
31+
32+
/**
33+
* @var string
34+
*/
35+
private $devVersion;
36+
37+
/**
38+
* @var Author
39+
*/
40+
private $author;
41+
42+
/**
43+
* @param string $componentName
44+
* @param string|null $stableVersion
45+
* @param string $devVersion
46+
* @param Author $author
47+
*
48+
* @return TestMessage
49+
*/
50+
public static function create(string $componentName, ?string $stableVersion, string $devVersion, Author $author): self
51+
{
52+
return new self($componentName, $stableVersion, $devVersion, $author);
53+
}
54+
55+
/**
56+
* @param string $componentName
57+
* @param string|null $stableVersion
58+
* @param string $devVersion
59+
* @param Author $author
60+
*/
61+
private function __construct(string $componentName, ?string $stableVersion, string $devVersion, Author $author)
62+
{
63+
$this->componentName = $componentName;
64+
$this->stableVersion = $stableVersion;
65+
$this->devVersion = $devVersion;
66+
$this->author = $author;
67+
}
68+
}

tests/Symfony/SymfonyMessageSerializerTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
namespace Desperado\ServiceBus\MessageSerializer\Tests\Symfony;
1414

1515
use Desperado\ServiceBus\MessageSerializer\Symfony\SymfonyMessageSerializer;
16+
use Desperado\ServiceBus\MessageSerializer\Tests\Stubs\Author;
1617
use Desperado\ServiceBus\MessageSerializer\Tests\Stubs\ClassWithPrivateConstructor;
1718
use Desperado\ServiceBus\MessageSerializer\Tests\Stubs\EmptyClassWithPrivateConstructor;
19+
use Desperado\ServiceBus\MessageSerializer\Tests\Stubs\TestMessage;
1820
use Desperado\ServiceBus\MessageSerializer\Tests\Stubs\WithDateTimeField;
1921
use Desperado\ServiceBus\MessageSerializer\Tests\Stubs\WithNullableObjectArgument;
2022
use PHPUnit\Framework\TestCase;
@@ -197,4 +199,28 @@ public function withIncorrectType(): void
197199

198200
$serializer->decode($data);
199201
}
202+
203+
/**
204+
* @test
205+
*
206+
* @return void
207+
*
208+
* @throws \Throwable
209+
*/
210+
public function successFlow(): void
211+
{
212+
$serializer = new SymfonyMessageSerializer();
213+
214+
$object = TestMessage::create(
215+
'message-serializer',
216+
null,
217+
'dev-master',
218+
Author::create('Vasiya', 'Pupkin')
219+
);
220+
221+
static::assertEquals(
222+
$object,
223+
$serializer->decode($serializer->encode($object))
224+
);
225+
}
200226
}

0 commit comments

Comments
 (0)