[ [ [ 'type' => 'message', 'text' => 'Help', 'payload' => null, 'intent' => 'default', ], ], [ [ 'type' => 'user_contact', 'text' => 'Share Contact', ], ], ], 'direct' => false, 'direct_user_id' => null, ]; $this->assertEquals($expected, $payload->toArray()); } #[Test] public function toArrayWithAllParameters(): void { $buttons = [ [new SendMessageButton('Confirm', 'confirm-action', Intent::Positive)], ]; $payload = new ReplyKeyboardAttachmentRequestPayload( buttons: $buttons, direct: true, directUserId: 987654321, ); $expected = [ 'buttons' => [ [ [ 'type' => 'message', 'text' => 'Confirm', 'payload' => 'confirm-action', 'intent' => 'positive', ], ], ], 'direct' => true, 'direct_user_id' => 987654321, ]; $this->assertEquals($expected, $payload->toArray()); } #[Test] public function toArrayWithEmptyButtons(): void { $payload = new ReplyKeyboardAttachmentRequestPayload(buttons: []); $expected = [ 'buttons' => [], 'direct' => false, 'direct_user_id' => null, ]; $this->assertEquals($expected, $payload->toArray()); } }