<?php
use PHPUnit\Framework\TestCase;
// exclude "./../src/"
final class TranslateSwedishTest extends TestCase
{
private $translate_bot;
private $messagesResults = [];
function setUp(): void{
$BOT_USER= '@TranslateSwedish_bot';
$BOT_TOKEN= '1022011518:AAG4qsWIN8ND500G7ZasLlwbU8id5AI0qk4';
$uriParts = explode("?",$_SERVER['REQUEST_URI']);
$actual_link = "https://$_SERVER[HTTP_HOST]".$uriParts[0];
$WEBHOOK_URL= "$actual_link";
$this->translate_bot = new TranslateSwedish($BOT_USER,$BOT_TOKEN,$WEBHOOK_URL);
$bot = $this->getMockBuilder('Bot')
->setConstructorArgs(array($BOT_USER,$BOT_TOKEN,$WEBHOOK_URL))
->getMock();
$member["status"]="member";
$bot->method("apiRequest")->will(
$this->returnCallback(array($this, 'returnTestDataCallback'))
);
$this->translate_bot->bot = $bot;
$this->getTB()->getDB()->removeAllUserActivites();
}
public function returnTestDataCallback()
{
$args = func_get_args();
// print_r($args);
if($args[0]=="getChatMember"){
$member["status"]="member";
return $member;
}
else {
$this->messagesResults[] =
array_push($this->messagesResults, $args[1]);
}
}
function getTB(): TranslateSwedish{
return $this->translate_bot;
}
function reset() {
$this->getTB()->params = null;
$this->getTB()->method = null;
}
function testEuroToman(){
$dbgMgr = new DebugsManager();
$update = $dbgMgr->getUpdateForTestPerson("123456");
$update["message"]["text"] = "300 eur";
$this->getTB()->process($update);
$this->assertStringContainsString("300 eur", $this->messagesResults[2]['text']);
}
public function testIntegrity(): void {
$dbgMgr = new DebugsManager();
$update = $dbgMgr->getUpdateForTestPerson("123456");
$update["message"]["text"] = "heute";
$this->getTB()->process($update);
$this->assertStringContainsString("ingen aning", $this->getTB()->params['text']);
}
}