mirror of
https://github.com/BushlanovDev/max-bot-api-client-php.git
synced 2026-08-18 02:33:26 +00:00
SendMessage method add recipient
This commit is contained in:
+5
-2
@@ -13,6 +13,7 @@ use BushlanovDev\MaxMessengerBot\ModelFactory;
|
||||
use BushlanovDev\MaxMessengerBot\Models\BotInfo;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Message;
|
||||
use BushlanovDev\MaxMessengerBot\Models\MessageBody;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Recipient;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Result;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Subscription;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
@@ -30,6 +31,7 @@ use ReflectionClass;
|
||||
#[UsesClass(Subscription::class)]
|
||||
#[UsesClass(Message::class)]
|
||||
#[UsesClass(MessageBody::class)]
|
||||
#[UsesClass(Recipient::class)]
|
||||
final class ApiTest extends TestCase
|
||||
{
|
||||
private MockObject&ClientApiInterface $clientMock;
|
||||
@@ -242,9 +244,10 @@ final class ApiTest extends TestCase
|
||||
|
||||
$apiResponse = [
|
||||
'message' => [
|
||||
'body' => ['mid' => 'mid.456.xyz', 'seq' => 101, 'text' => $text],
|
||||
'timestamp' => time(),
|
||||
]
|
||||
'body' => ['mid' => 'mid.456.xyz', 'seq' => 101, 'text' => $text],
|
||||
'recipient' => ['chat_type' => 'dialog', 'user_id' => 123, 'chat_id' => null],
|
||||
],
|
||||
];
|
||||
|
||||
$expectedMessageObject = Message::fromArray($apiResponse['message']);
|
||||
|
||||
@@ -11,6 +11,7 @@ use BushlanovDev\MaxMessengerBot\Models\BotCommand;
|
||||
use BushlanovDev\MaxMessengerBot\Models\BotInfo;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Message;
|
||||
use BushlanovDev\MaxMessengerBot\Models\MessageBody;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Recipient;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Result;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Subscription;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
@@ -26,6 +27,7 @@ use PHPUnit\Framework\TestCase;
|
||||
#[UsesClass(ArrayOf::class)]
|
||||
#[UsesClass(Message::class)]
|
||||
#[UsesClass(MessageBody::class)]
|
||||
#[UsesClass(Recipient::class)]
|
||||
final class ModelFactoryTest extends TestCase
|
||||
{
|
||||
private ModelFactory $factory;
|
||||
@@ -143,16 +145,23 @@ final class ModelFactoryTest extends TestCase
|
||||
public function createMessage(): void
|
||||
{
|
||||
$rawData = [
|
||||
'timestamp' => time(),
|
||||
'body' => [
|
||||
'mid' => 'mid.456.xyz',
|
||||
'seq' => 101,
|
||||
'text' => 'Hello, **world**!',
|
||||
],
|
||||
'recipient' => [
|
||||
'chat_type' => 'dialog',
|
||||
'user_id' => 123,
|
||||
'chat_id' => null,
|
||||
],
|
||||
];
|
||||
|
||||
$message = $this->factory->createMessage($rawData);
|
||||
|
||||
$this->assertInstanceOf(Message::class, $message);
|
||||
$this->assertInstanceOf(MessageBody::class, $message->body);
|
||||
$this->assertInstanceOf(Recipient::class, $message->recipient);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ namespace BushlanovDev\MaxMessengerBot\Tests\Models;
|
||||
|
||||
use BushlanovDev\MaxMessengerBot\Models\Message;
|
||||
use BushlanovDev\MaxMessengerBot\Models\MessageBody;
|
||||
use BushlanovDev\MaxMessengerBot\Models\Recipient;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use PHPUnit\Framework\Attributes\UsesClass;
|
||||
@@ -13,23 +14,32 @@ use PHPUnit\Framework\TestCase;
|
||||
|
||||
#[CoversClass(Message::class)]
|
||||
#[UsesClass(MessageBody::class)]
|
||||
#[UsesClass(Recipient::class)]
|
||||
final class MessageTest extends TestCase
|
||||
{
|
||||
#[Test]
|
||||
public function canBeCreatedFromArrayWithAllData(): void
|
||||
{
|
||||
$data = [
|
||||
'timestamp' => time(),
|
||||
'body' => [
|
||||
'mid' => 'mid.456.xyz',
|
||||
'seq' => 101,
|
||||
'text' => 'Hello, **world**!',
|
||||
],
|
||||
'recipient' => [
|
||||
'chat_type' => 'dialog',
|
||||
'user_id' => 123,
|
||||
'chat_id' => null,
|
||||
],
|
||||
];
|
||||
|
||||
$message = Message::fromArray($data);
|
||||
|
||||
$this->assertInstanceOf(Message::class, $message);
|
||||
$this->assertSame($data['timestamp'], $message->timestamp);
|
||||
$this->assertInstanceOf(MessageBody::class, $message->body);
|
||||
$this->assertInstanceOf(Recipient::class, $message->recipient);
|
||||
|
||||
$array = $message->toArray();
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace BushlanovDev\MaxMessengerBot\Tests\Models;
|
||||
|
||||
use BushlanovDev\MaxMessengerBot\Models\Recipient;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
#[CoversClass(Recipient::class)]
|
||||
class RecipientTest extends TestCase
|
||||
{
|
||||
#[Test]
|
||||
public function canBeCreatedFromArray(): void
|
||||
{
|
||||
$data = [
|
||||
'chat_type' => 'chat',
|
||||
'chat_id' => 123,
|
||||
];
|
||||
|
||||
$receipt = Recipient::fromArray($data);
|
||||
|
||||
$this->assertInstanceOf(Recipient::class, $receipt);
|
||||
$this->assertSame($data['chat_type'], $receipt->chatType->value);
|
||||
$this->assertSame($data['chat_id'], $receipt->chatId);
|
||||
|
||||
$array = $receipt->toArray();
|
||||
|
||||
$this->assertIsArray($array);
|
||||
unset($array['user_id']);
|
||||
$this->assertSame($data, $array);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user