/**
* @group e2e
*/
final class MyMessageSerializationTest extends TestCase
{
use QuerySerializationTestLogic;
use ValueObjectAssertions;
protected function createQuery(): MyMessage
{
return MyMessage::with(AccountId::generate());
}
protected function assertQueryMatchesDeserializedForm(MyMessage $expected, MyMessage $actual): void
{
$this->assertCorrelationIdEquals($expected->correlationId(), $actual->correlationId());
$this->assertMessageIdEquals($expected->id(), $actual->id());
$this->assertAccountIdEquals($expected->accountId(), $actual->accountId());
}
protected function assertSerializedFormMatchesQuery(array $decoded, MyMessage $expected): void
{
$this->assertCount(4, $decoded);
$this->assertSame('my_message', $decoded['type']);
$this->assertSame($expected->id()->toString(), $decoded['id']);
$this->assertSame($expected->correlationId()->toString(), $decoded['correlation_id']);
$this->assertSame($expected->accountId()->toString(), $decoded['account_id']);
}
}