Skip to content

Commit

Permalink
Refactor, add tests for cached
Browse files Browse the repository at this point in the history
  • Loading branch information
punyflash committed Sep 4, 2020
1 parent 1fc15ea commit efa226a
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 7 deletions.
15 changes: 9 additions & 6 deletions src/Bot.php
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,16 @@ public function addHandler($handler)
return;
}

if (is_callable($handler) || is_string($handler) && class_exists($handler) && is_subclass_of($handler, UpdateHandler::class))
{
$this->properties['handlers'][] = $handler;
return;
}
if (!$this->isUpdateHandler($handler))
throw TeleBotMehtodException::wrongHandlerType(is_string($handler) ? $handler : gettype($handler));

throw TeleBotMehtodException::wrongHandlerType(is_string($handler) ? $handler : gettype($handler));
$this->properties['handlers'][] = $handler;
}

private function isUpdateHandler($handler)
{
return is_callable($handler) ||
is_string($handler) && class_exists($handler) && is_subclass_of($handler, UpdateHandler::class);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/TelegramObject.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public function toArray()
*/
public function toJson()
{
return (string) $this;
return json_encode($this->toArray());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace WeStacks\TeleBot\Objects\InlineQueryResult;

use WeStacks\TeleBot\Objects\InlineQueryResult;
use WeStacks\TeleBot\Objects\InputMessageContent;
use WeStacks\TeleBot\Objects\Keyboard\InlineKeyboardMarkup;

/**
Expand Down
1 change: 1 addition & 0 deletions src/Objects/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use WeStacks\TeleBot\Interfaces\TelegramObject;
use WeStacks\TeleBot\Objects\Games\Game;
use WeStacks\TeleBot\Objects\Keyboard\InlineKeyboardMarkup;
use WeStacks\TeleBot\Objects\Passport\PassportData;
use WeStacks\TeleBot\Objects\Payments\Invoice;
use WeStacks\TeleBot\Objects\Payments\SuccessfulPayment;
use WeStacks\TeleBot\Objects\Stickers\Sticker;
Expand Down
28 changes: 28 additions & 0 deletions tests/Unit/InlineQueryResultTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@
use WeStacks\TeleBot\Objects\InlineQueryResult;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultArticle;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultAudio;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedAudio;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedDocument;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedGif;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedMpeg4Gif;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedPhoto;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedSticker;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedVideo;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultCachedVoice;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultContact;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultDocument;
use WeStacks\TeleBot\Objects\InlineQueryResult\InlineQueryResultGame;
Expand Down Expand Up @@ -65,6 +72,27 @@ public function testInlineQueryResultCached()
{
$object = InlineQueryResult::create(['type' => 'photo', 'photo_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedPhoto::class, $object);

$object = InlineQueryResult::create(['type' => 'gif', 'gif_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedGif::class, $object);

$object = InlineQueryResult::create(['type' => 'mpeg4_gif', 'mpeg4_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedMpeg4Gif::class, $object);

$object = InlineQueryResult::create(['type' => 'sticker', 'sticker_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedSticker::class, $object);

$object = InlineQueryResult::create(['type' => 'document', 'document_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedDocument::class, $object);

$object = InlineQueryResult::create(['type' => 'video', 'video_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedVideo::class, $object);

$object = InlineQueryResult::create(['type' => 'voice', 'voice_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedVoice::class, $object);

$object = InlineQueryResult::create(['type' => 'audio', 'audio_file_id' => 123123123]);
$this->assertInstanceOf(InlineQueryResultCachedAudio::class, $object);
}

public function testWrongInlineQueryResult()
Expand Down

0 comments on commit efa226a

Please sign in to comment.