MessageTest.php 4.68 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
<?php
/*
 * This file is part of the TelegramBot package.
 *
 * (c) Avtandil Kikabidze aka LONGMAN <akalongman@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Tests\Unit;

use \Longman\TelegramBot\Entities\Message;

/**
 * @package 		TelegramTest
 * @author 		Avtandil Kikabidze <akalongman@gmail.com>
 * @copyright 		Avtandil Kikabidze <akalongman@gmail.com>
 * @license 		http://opensource.org/licenses/mit-license.php  The MIT License (MIT)
 * @link 			http://www.github.com/akalongman/php-telegram-bot
 */
class MessageTest extends TestCase
{
    /**
    * @var \Longman\TelegramBot\Telegram
    */
    private $message;
    
    /**
    * setUp
    */
    protected function setUp()
    {
    }



    protected function generateMessage($string) {

MBoretto's avatar
MBoretto committed
39 40 41

        //$string = addslashes($string);
        $string = str_replace("\n", "\\n", $string);
MBoretto's avatar
MBoretto committed
42
        $json = '{"message_id":961,"from":{"id":123,"first_name":"john","username":"john"},"chat":{"id":123,"title":null,"first_name":"john","last_name":null,"username":"null"},"date":1435920612,"text":"'.$string.'"}';
MBoretto's avatar
MBoretto committed
43
        //$json = utf8_encode($json);  
MBoretto's avatar
MBoretto committed
44
        return json_decode($json, true);
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
    }
    /**
     * @test
     */

    public function testTextAndCommandRecognise() {
        // /command
        $this->message = new Message($this->generateMessage('/help'), 'testbot');

        $this->assertEquals('/help', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals('/help', $this->message->getText());
        $this->assertEquals('', $this->message->getText(true));
  
        // text 
        $this->message = new Message($this->generateMessage('some text'), 'testbot');

        $this->assertEquals('', $this->message->getFullCommand());
        $this->assertEquals('', $this->message->getCommand());
        $this->assertEquals('some text', $this->message->getText());
        $this->assertEquals('some text', $this->message->getText(true));


        // /command@bot
MBoretto's avatar
MBoretto committed
69

70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
        $this->message = new Message($this->generateMessage('/help@testbot'), 'testbot');
        $this->assertEquals('/help@testbot', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals('/help@testbot', $this->message->getText());
        $this->assertEquals('', $this->message->getText(true));

        // /commmad text
        $this->message = new Message($this->generateMessage('/help some text'), 'testbot');
        $this->assertEquals('/help', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals('/help some text', $this->message->getText());
        $this->assertEquals('some text', $this->message->getText(true));

        // /command@bot some text
        $this->message = new Message($this->generateMessage('/help@testbot some text'), 'testbot');
        $this->assertEquals('/help@testbot', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals('/help@testbot some text', $this->message->getText());
        $this->assertEquals('some text', $this->message->getText(true));
89 90

        // /commmad\n text
MBoretto's avatar
MBoretto committed
91 92 93 94 95

//$array = $this->generateMessage("/help\n some text");
////print_r($this->generateMessage('/help@testbot'));
//echo 'value:';
//print_r($array);
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
        $this->message = new Message($this->generateMessage("/help\n some text"), 'testbot');
        $this->assertEquals('/help', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals("/help\n some text", $this->message->getText());
        $this->assertEquals(' some text', $this->message->getText(true));

        // /command@bot\nsome text
        $this->message = new Message($this->generateMessage("/help@testbot\nsome text"), 'testbot');
        $this->assertEquals('/help@testbot', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals("/help@testbot\nsome text", $this->message->getText());
        $this->assertEquals('some text', $this->message->getText(true));

        // /command@bot \nsome text
        $this->message = new Message($this->generateMessage("/help@testbot \nsome text"), 'testbot');
        $this->assertEquals('/help@testbot', $this->message->getFullCommand());
        $this->assertEquals('help', $this->message->getCommand());
        $this->assertEquals("/help@testbot \nsome text", $this->message->getText());
        $this->assertEquals("\nsome text", $this->message->getText(true));
115 116
     }
}