assertInstanceOf(InlineKeyboardAttachmentRequestPayload::class, $payload); $this->assertSame($buttons, $payload->buttons); } #[Test] public function toArraySerializesCorrectly(): void { $buttons = [ [new CallbackButton('Accept', 'accept_payload', Intent::Positive)], [ new CallbackButton('Decline', 'decline_payload', Intent::Negative), new LinkButton('Help', 'https://example.com/help'), ], ]; $payload = new InlineKeyboardAttachmentRequestPayload($buttons); $resultArray = $payload->toArray(); $expectedArray = [ 'buttons' => [ [ [ 'type' => InlineButtonType::Callback->value, 'text' => 'Accept', 'payload' => 'accept_payload', 'intent' => Intent::Positive->value, ], ], [ [ 'type' => InlineButtonType::Callback->value, 'text' => 'Decline', 'payload' => 'decline_payload', 'intent' => Intent::Negative->value, ], [ 'type' => InlineButtonType::Link->value, 'text' => 'Help', 'url' => 'https://example.com/help', ], ], ], ]; $this->assertEquals($expectedArray, $resultArray); } #[Test] public function toArrayHandlesEmptyButtonsArray(): void { $payload = new InlineKeyboardAttachmentRequestPayload([]); $resultArray = $payload->toArray(); $expectedArray = [ 'buttons' => [], ]; $this->assertEquals($expectedArray, $resultArray); } }