ssl = self::$ssl ?? true; if (empty(self::$key)) { // Если не указан ключ // Проверка входных данных if (empty(self::$login)) { self::markTestSkipped('Не инициализирован входной аккаунта'); } else if (empty(self::$password)) { self::markTestSkipped('Не инициализирован пароль аккаунта'); } // Деаутентификация (на всякий случай) self::$account->deauth(); // Аутентификация и генерация ключа self::$key = self::$account->auth(self::$login, self::$password)->key(self::$project_id); } $this->assertNotNull(self::$key, 'Ошибка при инициализации ключа аккаунта'); } /** * @testdox Деинициализация аккаунта * @afterClass */ public static function testAccountDeinit(): void { // Инициализация аккаунта self::$account = new account(empty(self::$id) ? rand(0, 10) : self::$id, self::$path_accounts); // Деаутентификация self::$account->deauth(); } /** * @testdox Инициализация робота * @before */ public function testRobotGroupInit(): void { // Инициализация ядра self::$core = core::init(); // Сохранение количества роботов $count = self::$core->robots; // Инициализация робота self::$robot = self::$core->group(empty(self::$group_id) ? rand(0, 10) : self::$group_id); // Проверка $this->assertEquals(self::$core->robots, $count + 1, 'Ошибка при инициализации робота'); } /** * @testdox Деинициализация робота * @after */ public function testRobotGroupDeinit(): void { // Очистка реестра self::$core->delete(); // Проверка $this->assertEmpty(self::$core->get(self::$robot->id), 'Ошибка при деинициализации робота'); } /** * @testdox Инициализация вложений * @before */ public function testAttachmentsInit(): void { if (isset(self::$robot)) { self::$attachments = new Attachments(self::$robot); } } /** * @testdox Чтение вложений */ public function testReadAttachments(): void { // Проверка $this->assertNotNull(self::$attachments->attachments); } /** * @testdox Запись вложения */ public function testWriteAttachment(): void { // Запись вложения self::$attachments->attachment('text'); } /** * @testdox Запись вложения (повторная) */ public function testWriteAttachmentWhenItIsAlreadyWrited(): void { //Запись вложения self::$attachments->attachment('text'); // Повторная запись вложения self::$attachments->attachment('text'); // Проверка $this->assertSame(['text', 'text'], self::$attachments->attachments); } /** * @testdox Запись более 10 вложений */ public function testWriteAttachmentWhenLimitIsExceed() { // Проверка выброса исключения $this->expectExceptionMessage('Превышен лимит вложений (10)'); //Запись вложений self::$attachments->attachment('text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text'); } /** * @testdox Очистка вложений */ public function testClearAttachments(): void { // Очистка вложений self::$attachments->clear(); } }