Некоторые исправления

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-03-10 22:29:25 +10:00
parent 122dc129a5
commit 3c1e4a5b15
8 changed files with 68 additions and 67 deletions

View File

@ -120,7 +120,6 @@ class api implements ArrayAccess
public function __set(string $name, mixed $value): void
{
match ($name) {
'robot' => !isset($this->robot) ? $this->robot = $value : throw new Exception('Запрещено перезаписывать робота'),
'settings' => !isset($this->settings) ? $this->settings = $value : throw new Exception('Запрещено перезаписывать настройки'),
default => $this->settings[$name] = $value
};
@ -134,7 +133,6 @@ class api implements ArrayAccess
public function __get(string $name): mixed
{
return match ($name) {
'robot' => $this->robot ?? throw new Exception('Робот не инициализирован'),
'settings' => $this->settings ?? throw new Exception('Настройки не инициализированы'),
default => $this->settings[$name] ?? throw new Exception('Параметр не найден: settings[\'' . $name . '\']')
};

View File

@ -33,7 +33,6 @@ final class messages extends method
/**
* @param string|null $text Текст
*/
protected string|null $text = null;
/**
* @var array Массив вложений
@ -51,7 +50,8 @@ final class messages extends method
* @param robot $robot Робот
*/
public function __construct(
protected robot $robot
protected robot $robot,
protected string|null $text = null
) {
}
@ -130,9 +130,9 @@ final class messages extends method
*
* @return array Ответ сервера
*/
public function send(int|string|array $destination): array
public function send(int|string|array $destination): mixed
{
// Идентификатор сообщения
// Идентификатор
$random_id = time();
if ($this->mode = 1) {
@ -146,11 +146,11 @@ final class messages extends method
// Цель отправки
$this->robot->api->chooseDestination($destination);
// Текст сообщения
$this->robot->api['message'] = $this->text;
// Идентификатор сообщения
$this->robot->api['random_id'] = $random_id;
$this->robot->api->random_id = $random_id;
// Текст
$this->robot->api->message = $this->text;
// Фильтрация вложений, если они инициализированны
if (isset($this->attachments)) {
@ -175,9 +175,8 @@ final class messages extends method
}
}
// Запрос
$request = $this->robot->browser->request(method: 'POST', uri: 'messages.send', options: ['form_params' => $this->robot->api['settings']]);
$request = $this->robot->browser->request('POST', 'messages.send', ['form_params' => $this->robot->api->settings]);
// Очистка
//unset($settings);
@ -186,7 +185,7 @@ final class messages extends method
// Если установлен режим 2 (усиленная проверка отправленного сообщения)
if (!empty($request["response"])) {
// Если пришел ID сообщения
// Ответ получен
// Реиницилазиция
$this->robot->api->reinit();
@ -195,8 +194,10 @@ final class messages extends method
$this->robot->api['message_ids'] = $request["response"];
// Запрос
if ($this->robot->browser->post(uri: 'https://api.vk.com/method/messages.getById', options: $this->robot->api['settings'])['response']['count'] === 0) {
// Если сообщения не существует, то повторить отправку
if ($this->robot->browser->request('POST', 'messages.getById', ['form_params' => $this->robot->api->settings])['response']['count'] === 0) {
// Сообщения не существует
// Повторная отправка
$this->send($destination);
}
} else {
@ -204,7 +205,7 @@ final class messages extends method
}
}
return (array) $request;
return $request->getBody();
}
/**
@ -234,7 +235,7 @@ final class messages extends method
public function __get(string $name): mixed
{
return match ($name) {
'text' => $this->text ?? throw new Exception('Текст не задан'),
'text' => $this->text ?? throw new Exception('Текст не инициализирован'),
'attachment' => $this->attachment->attachments ?? $this->attachment = new attachments($this->robot),
'attachments' => isset($this->attachment) ? $this->attachment->attachments : throw new Exception('Вложения не инициализированны'),
default => throw new Exception('Свойство не найдено: ' . $name)

View File

@ -40,11 +40,11 @@ final class apiTest extends TestCase
{
// Проверка входных данных
if (empty(self::$project_id)) {
self::$markTestSkipped('Не найден идентификатор проекта');
self::markTestSkipped('Не инициализирован идентификатор проекта');
}
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Запись режима SSL-протокола
self::$account->ssl = self::$ssl ?? true;
@ -54,9 +54,9 @@ final class apiTest extends TestCase
// Проверка входных данных
if (empty(self::$login)) {
self::$markTestSkipped('Не найден входной аккаунта');
self::markTestSkipped('Не инициализирован входной аккаунта');
} else if (empty(self::$password)) {
self::$markTestSkipped('Не найден пароль аккаунта');
self::markTestSkipped('Не инициализирован пароль аккаунта');
}
// Деаутентификация (на всякий случай)
@ -76,7 +76,7 @@ final class apiTest extends TestCase
public static function testAccountDeinit(): void
{
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Деаутентификация
self::$account->deauth();
@ -171,7 +171,7 @@ final class apiTest extends TestCase
public function testReadSettingsElement(): void
{
// Проверка выброса исключения
$this->expectExceptionMessage('Не найдено: settings[\'element\']');
$this->expectExceptionMessage('Не инициализировано: settings[\'element\']');
// Чтение элемента настроек
self::$robot->key(self::$group_key)->api['element'];

View File

@ -46,11 +46,11 @@ final class attachmentsTest extends TestCase
{
// Проверка входных данных
if (empty(self::$project_id)) {
self::$markTestSkipped('Не найден идентификатор проекта');
self::markTestSkipped('Не инициализирован идентификатор проекта');
}
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Запись режима SSL-протокола
self::$account->ssl = self::$ssl ?? true;
@ -60,9 +60,9 @@ final class attachmentsTest extends TestCase
// Проверка входных данных
if (empty(self::$login)) {
self::$markTestSkipped('Не найден входной аккаунта');
self::markTestSkipped('Не инициализирован входной аккаунта');
} else if (empty(self::$password)) {
self::$markTestSkipped('Не найден пароль аккаунта');
self::markTestSkipped('Не инициализирован пароль аккаунта');
}
// Деаутентификация (на всякий случай)
@ -82,7 +82,7 @@ final class attachmentsTest extends TestCase
public static function testAccountDeinit(): void
{
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Деаутентификация
self::$account->deauth();

View File

@ -40,11 +40,11 @@ final class messagesTest extends TestCase
{
// Проверка входных данных
if (empty(self::$project_id)) {
self::$markTestSkipped('Не найден идентификатор проекта');
self::markTestSkipped('Не инициализирован идентификатор проекта');
}
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Запись режима SSL-протокола
self::$account->ssl = self::$ssl ?? true;
@ -54,9 +54,9 @@ final class messagesTest extends TestCase
// Проверка входных данных
if (empty(self::$login)) {
self::$markTestSkipped('Не найден входной аккаунта');
self::markTestSkipped('Не инициализирован входной аккаунта');
} else if (empty(self::$password)) {
self::$markTestSkipped('Не найден пароль аккаунта');
self::markTestSkipped('Не инициализирован пароль аккаунта');
}
// Деаутентификация (на всякий случай)
@ -76,7 +76,7 @@ final class messagesTest extends TestCase
public static function testAccountDeinit(): void
{
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Деаутентификация
self::$account->deauth();
@ -120,7 +120,7 @@ final class messagesTest extends TestCase
public function testReadText(): void
{
// Проверка выброса исключения
$this->expectExceptionMessage('Текст не задан');
$this->expectExceptionMessage('Текст не инициализирован');
// Чтение текста
self::$robot->message()->text;
@ -186,22 +186,24 @@ final class messagesTest extends TestCase
public function testSend(): void
{
// Отправка сообщения
self::$robot->key(self::$group_key)->message()->send('123');
self::$robot->key(self::$group_key)->message('Тестовое сообщение')->send(self::$target_id);
}
/**
* @testdox Отправка сообщеий (с вложениями)
*/
public function testSendWithAttachments(): void
{
// Запись вложений
$message = self::$robot->key(self::$group_key)->message()->attachment('text');
// public function testSendWithAttachments(): void
// {
// // Запись вложений
// $message = self::$robot->key(self::$group_key)->message()->attachment('text');
// Отправка сообщения
$message->send('123');
}
// // Отправка сообщения
// $message->send('Тестовое сообщение');
// }
/**
* @t estdox Отправка сообщеий (с пересылаемым сообщением)
*
* что это?
*/
}

View File

@ -40,11 +40,11 @@ final class photosTest extends TestCase
{
// Проверка входных данных
if (empty(self::$project_id)) {
self::$markTestSkipped('Не найден идентификатор проекта');
self::markTestSkipped('Не инициализирован идентификатор проекта');
}
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Запись режима SSL-протокола
self::$account->ssl = self::$ssl ?? true;
@ -54,9 +54,9 @@ final class photosTest extends TestCase
// Проверка входных данных
if (empty(self::$login)) {
self::$markTestSkipped('Не найден входной аккаунта');
self::markTestSkipped('Не инициализирован входной аккаунта');
} else if (empty(self::$password)) {
self::$markTestSkipped('Не найден пароль аккаунта');
self::markTestSkipped('Не инициализирован пароль аккаунта');
}
// Деаутентификация (на всякий случай)
@ -76,7 +76,7 @@ final class photosTest extends TestCase
public static function testAccountDeinit(): void
{
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Деаутентификация
self::$account->deauth();

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
use PHPUnit\Framework\TestCase;
use hood\vk\core,
hood\vk\robots\robot,
hood\vk\tests\settings;
use hood\vk\core;
use hood\vk\robots\robot;
use hood\vk\tests\settings;
use hood\accounts\vk as account;
@ -40,11 +40,11 @@ final class groupTest extends TestCase
{
// Проверка входных данных
if (empty(self::$project_id)) {
self::$markTestSkipped('Не найден идентификатор проекта');
self::markTestSkipped('Не инициализирован идентификатор проекта');
}
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Запись режима SSL-протокола
self::$account->ssl = self::$ssl ?? true;
@ -54,9 +54,9 @@ final class groupTest extends TestCase
// Проверка входных данных
if (empty(self::$login)) {
self::$markTestSkipped('Не найден входной аккаунта');
self::markTestSkipped('Не инициализирован входной аккаунта');
} else if (empty(self::$password)) {
self::$markTestSkipped('Не найден пароль аккаунта');
self::markTestSkipped('Не инициализирован пароль аккаунта');
}
// Деаутентификация (на всякий случай)
@ -76,7 +76,7 @@ final class groupTest extends TestCase
public static function testAccountDeinit(): void
{
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Деаутентификация
self::$account->deauth();
@ -133,7 +133,7 @@ final class groupTest extends TestCase
{
// Проверки
$this->assertNotNull(self::$robot->id, 'Не удалось прочитать идентификатор');
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не найден');
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не инициализирован');
}
/**
@ -155,7 +155,7 @@ final class groupTest extends TestCase
{
// Проверки
$this->assertNotNull(self::$robot->session, 'Не удалось прочитать сессию');
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не найдена');
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не инициализирована');
}
/**

View File

@ -4,9 +4,9 @@ declare(strict_types=1);
use PHPUnit\Framework\TestCase;
use hood\vk\core,
hood\vk\robots\robot,
hood\vk\tests\settings;
use hood\vk\core;
use hood\vk\robots\robot;
use hood\vk\tests\settings;
use hood\accounts\vk as account;
@ -40,11 +40,11 @@ final class userTest extends TestCase
{
// Проверка входных данных
if (empty(self::$project_id)) {
self::$markTestSkipped('Не найден идентификатор проекта');
self::markTestSkipped('Не инициализирован идентификатор проекта');
}
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Запись режима SSL-протокола
self::$account->ssl = self::$ssl ?? true;
@ -54,9 +54,9 @@ final class userTest extends TestCase
// Проверка входных данных
if (empty(self::$login)) {
self::$markTestSkipped('Не найден входной аккаунта');
self::markTestSkipped('Не инициализирован входной аккаунта');
} else if (empty(self::$password)) {
self::$markTestSkipped('Не найден пароль аккаунта');
self::markTestSkipped('Не инициализирован пароль аккаунта');
}
// Деаутентификация (на всякий случай)
@ -76,7 +76,7 @@ final class userTest extends TestCase
public static function testAccountDeinit(): void
{
// Инициализация аккаунта
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, __DIR__ . '../../accounts');
self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts);
// Деаутентификация
self::$account->deauth();
@ -133,7 +133,7 @@ final class userTest extends TestCase
{
// Проверки
$this->assertNotNull(self::$robot->id, 'Не удалось прочитать идентификатор');
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не найден');
$this->assertNotEmpty(self::$core->get(self::$robot->id), 'Робот не инициализирован');
}
/**
@ -155,7 +155,7 @@ final class userTest extends TestCase
{
// Проверки
$this->assertNotNull(self::$robot->session, 'Не удалось прочитать сессию');
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не найдена');
$this->assertNotEmpty(self::$core->get(self::$robot->id, self::$robot->session), 'Сессия не инициализирована');
}
/**