mirror of
https://github.com/anthonyaxenov/atol-online.git
synced 2024-11-22 16:14:34 +00:00
Переработаны существующие и дописаны новые тест AtolClient
Используется тестовый API АТОЛ Онлайн. 94% покрытие AtolClient, но ещё не закончено
This commit is contained in:
parent
949b31a85a
commit
92a2c6cc48
@ -4,11 +4,15 @@ namespace AtolOnlineTests;
|
|||||||
|
|
||||||
use AtolOnline\Api\AtolClient;
|
use AtolOnline\Api\AtolClient;
|
||||||
use AtolOnline\Api\KktMonitor;
|
use AtolOnline\Api\KktMonitor;
|
||||||
|
use AtolOnline\Api\KktResponse;
|
||||||
|
use AtolOnline\Exceptions\AuthFailedException;
|
||||||
use AtolOnline\Exceptions\EmptyLoginException;
|
use AtolOnline\Exceptions\EmptyLoginException;
|
||||||
use AtolOnline\Exceptions\EmptyPasswordException;
|
use AtolOnline\Exceptions\EmptyPasswordException;
|
||||||
use AtolOnline\Exceptions\TooLongLoginException;
|
use AtolOnline\Exceptions\TooLongLoginException;
|
||||||
use AtolOnline\Exceptions\TooLongPasswordException;
|
use AtolOnline\Exceptions\TooLongPasswordException;
|
||||||
use AtolOnline\Helpers;
|
use AtolOnline\Helpers;
|
||||||
|
use AtolOnline\TestEnvParams;
|
||||||
|
use GuzzleHttp\Exception\GuzzleException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Набор тестов для проверки работы API-клиента на примере монитора ККТ
|
* Набор тестов для проверки работы API-клиента на примере монитора ККТ
|
||||||
@ -19,8 +23,6 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
* Тестирует успешное создание объекта монитора без аргументов конструктора
|
* Тестирует успешное создание объекта монитора без аргументов конструктора
|
||||||
*
|
*
|
||||||
* @covers \AtolOnline\Api\KktMonitor::__construct
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
* @covers \AtolOnline\Api\KktMonitor::getLogin
|
|
||||||
* @covers \AtolOnline\Api\KktMonitor::getPassword
|
|
||||||
*/
|
*/
|
||||||
public function testConstructorWithoutArgs()
|
public function testConstructorWithoutArgs()
|
||||||
{
|
{
|
||||||
@ -28,8 +30,6 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
$this->assertIsObject($client);
|
$this->assertIsObject($client);
|
||||||
$this->assertIsSameClass(KktMonitor::class, $client);
|
$this->assertIsSameClass(KktMonitor::class, $client);
|
||||||
$this->assertExtendsClasses([AtolClient::class], $client);
|
$this->assertExtendsClasses([AtolClient::class], $client);
|
||||||
$this->assertNull($client->getLogin());
|
|
||||||
$this->assertNull($client->getPassword());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,8 +37,8 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @covers \AtolOnline\Api\KktMonitor::__construct
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
||||||
* @covers \AtolOnline\Api\KktMonitor::setPassword
|
|
||||||
* @covers \AtolOnline\Api\KktMonitor::getLogin
|
* @covers \AtolOnline\Api\KktMonitor::getLogin
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::setPassword
|
||||||
* @covers \AtolOnline\Api\KktMonitor::getPassword
|
* @covers \AtolOnline\Api\KktMonitor::getPassword
|
||||||
*/
|
*/
|
||||||
public function testConstructorWithArgs()
|
public function testConstructorWithArgs()
|
||||||
@ -47,9 +47,25 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
$this->assertIsObject($client);
|
$this->assertIsObject($client);
|
||||||
$this->assertIsSameClass(KktMonitor::class, $client);
|
$this->assertIsSameClass(KktMonitor::class, $client);
|
||||||
$this->assertExtendsClasses([AtolClient::class], $client);
|
$this->assertExtendsClasses([AtolClient::class], $client);
|
||||||
//$this->assertFalse($client->isTestMode());
|
}
|
||||||
//$this->assertEquals('login', $client->getLogin());
|
|
||||||
//$this->assertEquals('password', $client->getPassword());
|
/**
|
||||||
|
* Тестирует установку и возврат логина
|
||||||
|
*
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::getLogin
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
||||||
|
*/
|
||||||
|
public function testLogin()
|
||||||
|
{
|
||||||
|
$client = new KktMonitor(login: 'login');
|
||||||
|
$this->assertEquals('login', $client->getLogin());
|
||||||
|
|
||||||
|
$client = new KktMonitor();
|
||||||
|
$this->assertNull($client->getLogin());
|
||||||
|
|
||||||
|
$client->setLogin('login');
|
||||||
|
$this->assertEquals('login', $client->getLogin());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,8 +73,9 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @covers \AtolOnline\Api\KktMonitor::__construct
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
||||||
|
* @covers \AtolOnline\Exceptions\EmptyLoginException
|
||||||
*/
|
*/
|
||||||
public function testConstructorWithShortLogin()
|
public function testEmptyLoginException()
|
||||||
{
|
{
|
||||||
$this->expectException(EmptyLoginException::class);
|
$this->expectException(EmptyLoginException::class);
|
||||||
new KktMonitor(login: '');
|
new KktMonitor(login: '');
|
||||||
@ -69,20 +86,41 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @covers \AtolOnline\Api\KktMonitor::__construct
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
* @covers \AtolOnline\Api\KktMonitor::setLogin
|
||||||
|
* @covers \AtolOnline\Exceptions\TooLongLoginException
|
||||||
*/
|
*/
|
||||||
public function testConstructorWithLongLogin()
|
public function testTooLongLoginException()
|
||||||
{
|
{
|
||||||
$this->expectException(TooLongLoginException::class);
|
$this->expectException(TooLongLoginException::class);
|
||||||
new KktMonitor(login: Helpers::randomStr(101));
|
new KktMonitor(login: Helpers::randomStr(101));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Тестирует установку и возврат пароля
|
||||||
|
*
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::getPassword
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::setPassword
|
||||||
|
*/
|
||||||
|
public function testPassword()
|
||||||
|
{
|
||||||
|
$client = new KktMonitor(password: 'password');
|
||||||
|
$this->assertEquals('password', $client->getPassword());
|
||||||
|
|
||||||
|
$client = new KktMonitor();
|
||||||
|
$this->assertNull($client->getPassword());
|
||||||
|
|
||||||
|
$client->setPassword('password');
|
||||||
|
$this->assertEquals('password', $client->getPassword());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тестирует исключение при попытке передать пустой пароль в конструктор
|
* Тестирует исключение при попытке передать пустой пароль в конструктор
|
||||||
*
|
*
|
||||||
* @covers \AtolOnline\Api\KktMonitor::__construct
|
* @covers \AtolOnline\Api\KktMonitor::__construct
|
||||||
* @covers \AtolOnline\Api\KktMonitor::setPassword
|
* @covers \AtolOnline\Api\KktMonitor::setPassword
|
||||||
|
* @covers \AtolOnline\Exceptions\EmptyPasswordException
|
||||||
*/
|
*/
|
||||||
public function testConstructorWithShortPassword()
|
public function testEmptyPasswordException()
|
||||||
{
|
{
|
||||||
$this->expectException(EmptyPasswordException::class);
|
$this->expectException(EmptyPasswordException::class);
|
||||||
new KktMonitor(password: '');
|
new KktMonitor(password: '');
|
||||||
@ -128,36 +166,94 @@ class KktMonitorTest extends BasicTestCase
|
|||||||
$this->assertFalse($client->isTestMode());
|
$this->assertFalse($client->isTestMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function todo_testGetToken()
|
/**
|
||||||
|
* Возвращает объект клиента для тестирования с тестовым API АТОЛ
|
||||||
|
*
|
||||||
|
* @return AtolClient
|
||||||
|
* @throws EmptyLoginException
|
||||||
|
* @throws EmptyPasswordException
|
||||||
|
* @throws TooLongLoginException
|
||||||
|
* @throws TooLongPasswordException
|
||||||
|
*/
|
||||||
|
private function newTestClient(): AtolClient
|
||||||
{
|
{
|
||||||
|
$credentials = TestEnvParams::FFD105();
|
||||||
|
return (new KktMonitor(true))
|
||||||
|
->setLogin($credentials['login'])
|
||||||
|
->setPassword($credentials['password']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function todo_testGetResponse()
|
/**
|
||||||
|
* Тестирует авторизацию
|
||||||
|
*
|
||||||
|
* @covers \AtolOnline\Api\AtolClient::getHeaders
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::sendRequest
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::getAuthEndpoint
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::doAuth
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::auth
|
||||||
|
* @throws EmptyLoginException
|
||||||
|
* @throws EmptyPasswordException
|
||||||
|
* @throws TooLongLoginException
|
||||||
|
* @throws TooLongPasswordException
|
||||||
|
* @throws AuthFailedException
|
||||||
|
* @throws GuzzleException
|
||||||
|
*/
|
||||||
|
public function testAuth()
|
||||||
{
|
{
|
||||||
//$this->skipIfMonitoringIsOffline();
|
$this->skipIfMonitoringIsOffline();
|
||||||
|
$result = $this->newTestClient()->auth();
|
||||||
|
$this->assertTrue($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function todo_testSetPassword()
|
/**
|
||||||
|
* Тестирует возврат токена после авторизации
|
||||||
|
*
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::setToken
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::getToken
|
||||||
|
* @throws AuthFailedException
|
||||||
|
* @throws EmptyLoginException
|
||||||
|
* @throws EmptyPasswordException
|
||||||
|
* @throws GuzzleException
|
||||||
|
* @throws TooLongLoginException
|
||||||
|
* @throws TooLongPasswordException
|
||||||
|
*/
|
||||||
|
public function testGetToken()
|
||||||
{
|
{
|
||||||
|
$client = new KktMonitor();
|
||||||
|
$this->assertNull($client->getToken());
|
||||||
|
|
||||||
|
$this->skipIfMonitoringIsOffline();
|
||||||
|
$client = $this->newTestClient();
|
||||||
|
$client->auth();
|
||||||
|
$this->assertIsString($client->getToken());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function todo_testAuth()
|
/**
|
||||||
|
* Тестирует возврат объекта последнего ответа от API
|
||||||
|
*
|
||||||
|
* @covers \AtolOnline\Api\KktMonitor::getResponse
|
||||||
|
* @throws AuthFailedException
|
||||||
|
* @throws EmptyLoginException
|
||||||
|
* @throws EmptyPasswordException
|
||||||
|
* @throws GuzzleException
|
||||||
|
* @throws TooLongLoginException
|
||||||
|
* @throws TooLongPasswordException
|
||||||
|
*/
|
||||||
|
public function testGetResponse()
|
||||||
{
|
{
|
||||||
|
$this->skipIfMonitoringIsOffline();
|
||||||
|
$client = $this->newTestClient();
|
||||||
|
$client->auth();
|
||||||
|
$this->assertIsSameClass(KktResponse::class, $client->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function todo_testGetAll()
|
public function todo_testGetAll()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function todo_testSetToken()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function todo_testGetOne()
|
public function todo_testGetOne()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function todo_testSetLogin()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user