1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-11-29 22:27:42 +02:00

Дополнение тестов

This commit is contained in:
Anton Titovets
2025-06-11 16:55:36 +03:00
parent 48e38d5baa
commit 9d895cb16c
2 changed files with 98 additions and 24 deletions

View File

@@ -321,6 +321,29 @@
КонецФункции
// Гарантировать таблицу
// Создает новую таблицу в случае отсутствия или обновляет состав колонок существующей таблицы
//
// Примечание:
// В результате изменения структуры таблицы данные могут быть утеряны!^^
// Рекомендуется предварительно опробовать данный метод на тестовых данных
// Данная функция не обновляет тип данных существующих колонок
//
// Параметры:
// Таблица - Строка - Имя таблицы - table
// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат выполнения запроса
Функция ГарантироватьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
Результат = OPI_ЗапросыSQL.ГарантироватьТаблицу(OPI_MySQL, Таблица, СтруктураКолонок, Соединение, Tls);
Возврат Результат;
КонецФункции
// Очистить таблицу
// Очищает таблицу базы
//
@@ -355,29 +378,6 @@
КонецФункции
// Гарантировать таблицу
// Создает новую таблицу в случае отсутствия или обновляет состав колонок существующей таблицы
//
// Примечание:
// В результате изменения структуры таблицы данные могут быть утеряны!^^
// Рекомендуется предварительно опробовать данный метод на тестовых данных
// Данная функция не обновляет тип данных существующих колонок
//
// Параметры:
// Таблица - Строка - Имя таблицы - table
// СтруктураКолонок - Структура Из КлючИЗначение - Структура колонок: Ключ > имя, Значение > Тип данных - cols
// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - Результат выполнения запроса
Функция ГарантироватьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "", Знач Tls = "") Экспорт
Результат = OPI_ЗапросыSQL.ГарантироватьТаблицу(OPI_MySQL, Таблица, СтруктураКолонок, Соединение, Tls);
Возврат Результат;
КонецФункции
// Получить информацию о таблице
// Получает информацию о таблице
//

View File

@@ -2423,12 +2423,13 @@
MySQL_СоздатьБазуДанных(ПараметрыТеста);
MySQL_СоздатьТаблицу(ПараметрыТеста);
MySQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
MySQL_ДобавитьЗаписи(ПараметрыТеста);
MySQL_ПолучитьЗаписи(ПараметрыТеста);
MySQL_ОбновитьЗаписи(ПараметрыТеста);
MySQL_УдалитьЗаписи(ПараметрыТеста);
MySQL_ОчиститьТаблицу(ПараметрыТеста);
MySQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
MySQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
MySQL_УдалитьТаблицу(ПараметрыТеста);
MySQL_УдалитьБазуДанных(ПараметрыТеста);
MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
@@ -20004,6 +20005,79 @@
КонецПроцедуры
Процедура MySQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "bayselonarrend";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
Таблица = "testtable";
Имя = "new_field";
ТипДанных = "MEDIUMTEXT";
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Результат = OPI_MySQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы", "MySQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы (проверка)", "MySQL");
Найдена = Ложь;
Для Каждого Колонка Из Результат["data"] Цикл
Если Колонка["COLUMN_NAME"] = Имя Тогда
ТекущийТип = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(Колонка["DATA_TYPE"]["BYTES"]));
OPI_ПолучениеДанныхТестов.Проверка_Равенство(нРег(ТипДанных), нРег(ТекущийТип));
Найдена = Истина;
КонецЕсли;
КонецЦикла;
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Истина);
Адрес = "api.athenaeum.digital";
Порт = "3307";
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
Результат = OPI_MySQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключенияTLS, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы (TLS)", "MySQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MySQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключенияTLS, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы (TLS, проверка)", "MySQL");
Найдена = Ложь;
Для Каждого Колонка Из Результат["data"] Цикл
Если Колонка["COLUMN_NAME"] = Имя Тогда
ТекущийТип = ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(Колонка["DATA_TYPE"]["BYTES"]));
OPI_ПолучениеДанныхТестов.Проверка_Равенство(нРег(ТипДанных), нРег(ТекущийТип));
Найдена = Истина;
КонецЕсли;
КонецЦикла;
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Истина);
КонецПроцедуры
#КонецОбласти
#Область GreenAPI