'message_chat_created', 'timestamp' => 1683000000, 'chat' => [ 'chat_id' => 12345, 'type' => 'chat', 'status' => 'active', 'last_event_time' => 1683000000, 'participants_count' => 1, 'is_public' => false, 'title' => 'New Discussion', ], 'message_id' => 'mid.original.with.button', 'start_payload' => 'payload_from_chat_button', ]; $update = MessageChatCreatedUpdate::fromArray($data); $this->assertInstanceOf(MessageChatCreatedUpdate::class, $update); $this->assertSame(UpdateType::MessageChatCreated, $update->updateType); $this->assertInstanceOf(Chat::class, $update->chat); $this->assertSame(12345, $update->chat->chatId); $this->assertSame('mid.original.with.button', $update->messageId); $this->assertSame('payload_from_chat_button', $update->startPayload); } #[Test] public function canBeCreatedWithNullStartPayload(): void { $data = [ 'update_type' => 'message_chat_created', 'timestamp' => 1683000001, 'chat' => [ 'chat_id' => 54321, 'type' => 'chat', 'status' => 'active', 'last_event_time' => 1683000001, 'participants_count' => 1, 'is_public' => false, 'title' => 'Another Discussion', ], 'message_id' => 'mid.another.message', 'start_payload' => null, ]; $update = MessageChatCreatedUpdate::fromArray($data); $this->assertInstanceOf(MessageChatCreatedUpdate::class, $update); $this->assertNull($update->startPayload); } }