.. java:import:: org.openqa.selenium.remote Augmentable

.. java:import:: org.openqa.selenium.remote RemoteWebDriver

.. java:import:: ru.bitec.gs.automation.client Client

.. java:import:: ru.bitec.gs.automation.client ClientBuilder

.. java:import:: ru.bitec.gs.automation.client.login LoginStrategy

.. java:import:: ru.bitec.gs.automation.client.logout LogoutStrategy

.. java:import:: ru.bitec.gs.automation.exception EnvironmentException

.. java:import:: ru.bitec.gs.automation.security UserPassword

AbstractTestEnvironment
=======================

.. java:package:: ru.bitec.gs.automation.environment
   :noindex:

.. java:type:: public abstract class AbstractTestEnvironment extends AnnotatedTestEnvironment

   .. versionadded:: 1.1.1 Ранее этот функционал был вне библиотеки автоматизации.

   Абстрактный класс окружения выполнения тестов. Реализовывает типовые действия для успешной инициализации класса тестов и завершения тестов.

Constructors
------------

AbstractTestEnvironment
^^^^^^^^^^^^^^^^^^^^^^^

.. java:constructor:: protected AbstractTestEnvironment()
   :outertype: AbstractTestEnvironment

Methods
-------

buildClient
^^^^^^^^^^^

.. java:method:: protected Client buildClient() throws Exception
   :outertype: AbstractTestEnvironment

   Построить объект :java:ref:`Client <ru.bitec.gs.automation.client.Client>` с помощью :java:ref:`ClientBuilder <ru.bitec.gs.automation.client.ClientBuilder>`.

   :throws Exception: при ошибках построения клиента
   :return: клиент gs-automation

clickToResetFocus
^^^^^^^^^^^^^^^^^

.. java:method:: public void clickToResetFocus()
   :outertype: AbstractTestEnvironment

   Выполняет клик в специальный плейсхолдер. Это приводит к сбрасыванию состояний типа "фокус", "выбран" и т.п.
   Удобно использовать при выполнении серии тестов, где каждый тест должен выполняться с такого сброшенного состояния интерфейсов.
   Функциональный аналог :java:ref:`Application.bodyClick() <ru.bitec.gs.automation.client.ui.Application.bodyClick()>`, но без возможных характерных сайд-эффектов.
   Рекомендуется вызывать из методов, аннотированных BeforeEach.

closeClient
^^^^^^^^^^^

.. java:method:: protected void closeClient() throws Exception
   :outertype: AbstractTestEnvironment

   Закрыть клиент :java:ref:`Client <ru.bitec.gs.automation.client.Client>` gs-automation

   :throws Exception: при ошибках во время закрытия клиента

getAdminCredentials
^^^^^^^^^^^^^^^^^^^

.. java:method:: protected abstract UserPassword getAdminCredentials()
   :outertype: AbstractTestEnvironment

getCredentials
^^^^^^^^^^^^^^

.. java:method:: protected abstract UserPassword getCredentials()
   :outertype: AbstractTestEnvironment

initLoginStrategy
^^^^^^^^^^^^^^^^^

.. java:method:: protected abstract LoginStrategy initLoginStrategy()
   :outertype: AbstractTestEnvironment

initLogoutStrategy
^^^^^^^^^^^^^^^^^^

.. java:method:: protected abstract LogoutStrategy initLogoutStrategy()
   :outertype: AbstractTestEnvironment

initWebDriver
^^^^^^^^^^^^^

.. java:method:: protected abstract RemoteWebDriver initWebDriver()
   :outertype: AbstractTestEnvironment

   Инициализировать веб-драйвер :java:ref:`RemoteWebDriver <org.openqa.selenium.remote.RemoteWebDriver>` для проведения тестов.

   :return: веб-драйвер

loginClient
^^^^^^^^^^^

.. java:method:: protected void loginClient() throws EnvironmentException
   :outertype: AbstractTestEnvironment

   Произвести аутентификацию и авторизацию клиента на сервере приложений.

   :throws EnvironmentException: при возникших ошибках

logoutClient
^^^^^^^^^^^^

.. java:method:: protected void logoutClient() throws Exception
   :outertype: AbstractTestEnvironment

   Осуществить отключение пользователя от приложения.

   :throws Exception: при возникших в процессе ошибках

onPrepareClientBuilder
^^^^^^^^^^^^^^^^^^^^^^

.. java:method:: protected void onPrepareClientBuilder(ClientBuilder builder) throws Exception
   :outertype: AbstractTestEnvironment

   Выполнить конфигурирование :java:ref:`ClientBuilder <ru.bitec.gs.automation.client.ClientBuilder>`, с помощью которого будет построен объект :java:ref:`Client <ru.bitec.gs.automation.client.Client>`

   :param builder: построитель клиента gs-automation
   :throws Exception: при ошибках конфигурирования

testClassEpilogue
^^^^^^^^^^^^^^^^^

.. java:method:: public final void testClassEpilogue() throws Exception
   :outertype: AbstractTestEnvironment

   Стандартное завершение класса тестов gs-automation.

   :throws Exception: при ошибках во время завершения

testClassPrelude
^^^^^^^^^^^^^^^^

.. java:method:: public final void testClassPrelude() throws Exception
   :outertype: AbstractTestEnvironment

   Стандартная инициализация класса тестов gs-automation.

   :throws Exception: при ошибках во время инициализации

testEpilogue
^^^^^^^^^^^^

.. java:method:: public final void testEpilogue(Method method) throws Exception
   :outertype: AbstractTestEnvironment

   Стандартное завершение теста gs-automation.

   :param method: метод, выполняющий тест
   :throws Exception: при ошибках во время завершения

testPrelude
^^^^^^^^^^^

.. java:method:: public final void testPrelude(Method method) throws Exception
   :outertype: AbstractTestEnvironment

   Стандартная инициализация теста gs-automation.

   :param method: метод, выполняющий тест
   :throws Exception: при ошибках во время инициализации

validateServerVersion
^^^^^^^^^^^^^^^^^^^^^

.. java:method:: protected void validateServerVersion(String serverVersion)
   :outertype: AbstractTestEnvironment

   Проверить совместимость gs-automation с версией сервера приложений.

   :param serverVersion: версия сервера приложений

waitApplicationStart
^^^^^^^^^^^^^^^^^^^^

.. java:method:: protected void waitApplicationStart() throws Exception
   :outertype: AbstractTestEnvironment

   Осуществить ожидание генерации приложения сервером приложений.

   :throws Exception: при ошибках во время ожидания генерации

waitMainForm
^^^^^^^^^^^^

.. java:method:: protected void waitMainForm() throws Exception
   :outertype: AbstractTestEnvironment

   .. versionadded:: 1.1.1 Метод переименован в waitMainForm. Ранее назывался waitMdiFormOpen.

   Осуществить ожидание открытия начальной формы приложения.

   :throws Exception: при ошибках во время ожидания