1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

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

This commit is contained in:
Anton Titovets
2025-07-10 18:56:44 +03:00
parent c02bd4b813
commit 2c365ac57c
3 changed files with 327 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_MSSQL.os
// OneScript: ./OInt/core/Modules/OPI_MSSQL.os
// Lib: MSSQL
// CLI: mssql
// Keywords: mssql, ms sql
@@ -556,7 +556,7 @@
Особенности.Вставить("НумерацияПараметров", Истина);
Особенности.Вставить("МаркерПараметров" , "@P");
Особенности.Вставить("СУБД" , "mssql");
Особенности.Вставить("ПолеКолонки" , "COLUMN_NAME");
Особенности.Вставить("ПолеКолонки" , "column_name");
Особенности.Вставить("НачалоТранзакции" , "BEGIN TRAN");
Возврат Особенности;

View File

@@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/OPI_ЗапросыSQL.os
// OneScript: ./OInt/tools/Modules/OPI_ЗапросыSQL.os
// MIT License
@@ -941,10 +941,12 @@
Таблица = Схема["table"];
Имя = Схема["name"];
СУБД = Схема["dbms"];
ШаблонSQL = "ALTER TABLE %1 DROP %2";
ШаблонSQL = "ALTER TABLE %1 DROP %2 %3";
Уточнение = ?(СУБД = "mssql", "COLUMN", "");
ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, Имя);
ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, Уточнение, Имя);
Возврат ТекстSQL;

View File

@@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
@@ -2845,6 +2845,13 @@
MSSQL_ПолучитьЗаписи(ПараметрыТеста);
MSSQL_ОбновитьЗаписи(ПараметрыТеста);
MSSQL_УдалитьЗаписи(ПараметрыТеста);
MSSQL_ОчиститьТаблицу(ПараметрыТеста);
MSSQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
MSSQL_ДобавитьКолонкуТаблицы(ПараметрыТеста);
MSSQL_УдалитьКолонкуТаблицы(ПараметрыТеста);
MSSQL_ГарантироватьТаблицу(ПараметрыТеста);
MSSQL_УдалитьТаблицу(ПараметрыТеста);
MSSQL_УдалитьБазуДанных(ПараметрыТеста);
КонецПроцедуры
@@ -20071,6 +20078,10 @@
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MySQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключения);
// END
@@ -20143,6 +20154,10 @@
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MySQL.УдалитьКолонкуТаблицы(Таблица, Имя, СтрокаПодключения);
// END
@@ -20210,6 +20225,10 @@
СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
СтруктураКолонок.Вставить("custom_field" , "TEXT");
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MySQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения);
// END
@@ -23787,9 +23806,8 @@
Адрес = ПараметрыФункции["PG_IP"];
Логин = "bayselonarrend";
Пароль = ПараметрыФункции["PG_Password"];
База = "";
Результат = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Результат = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
// END
@@ -24346,6 +24364,304 @@
КонецПроцедуры
Процедура MSSQL_УдалитьТаблицу(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "testtable";
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТаблицу", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
База = "test_data";
Таблица = "test_data";
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Результат = OPI_MSSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТаблицу (тест)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура MSSQL_УдалитьБазуДанных(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, , Логин, Пароль);
База = "testbase1";
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.УдалитьБазуДанных(База, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
База = "testbase2";
Подключение = OPI_MSSQL.ОткрытьСоединение(СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Подключение, "УдалитьБазуДанных (открытие)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_Компонента(Подключение, "AddIn.OPI_MSSQL.Main");
Результат = OPI_MSSQL.УдалитьБазуДанных(База, Подключение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (подключение)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MSSQL.УдалитьБазуДанных(База, Подключение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (ошибка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
Закрытие = OPI_MSSQL.ЗакрытьСоединение(Подключение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Закрытие, "УдалитьБазуДанных (закрытие)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Закрытие);
Результат = OPI_MSSQL.УдалитьБазуДанных(База, Подключение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (ошибка подключения)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
КонецПроцедуры
Процедура MSSQL_ОчиститьТаблицу(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "testtable";
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.ОчиститьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьТаблицу", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьТаблицу (проверка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 0);
КонецПроцедуры
Процедура MSSQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "testtable";
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОТаблице", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 16);
Таблица = "heyho";
Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОТаблице (ошибка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 0);
КонецПроцедуры
Процедура MSSQL_ДобавитьКолонкуТаблицы(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
Таблица = "testtable";
Имя = "new_field";
ТипДанных = "bigint";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы (проверка)", "MSSQL");
Найдена = Ложь;
Для Каждого Колонка Из Результат["data"] Цикл
Если Колонка["column_name"] = Имя Тогда
OPI_ПолучениеДанныхТестов.Проверка_Равенство(нРег(ТипДанных), нРег(Колонка["data_type"]));
Найдена = Истина;
КонецЕсли;
КонецЦикла;
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Истина);
КонецПроцедуры
Процедура MSSQL_УдалитьКолонкуТаблицы(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
Таблица = "testtable";
Имя = "new_field";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.УдалитьКолонкуТаблицы(Таблица, Имя, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКолонкуТаблицы", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКолонкуТаблицы (проверка)", "MSSQL");
Найдена = Ложь;
Для Каждого Колонка Из Результат["data"] Цикл
Если Колонка["column_name"] = Имя Тогда
Найдена = Истина;
КонецЕсли;
КонецЦикла;
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Ложь);
КонецПроцедуры
Процедура MSSQL_ГарантироватьТаблицу(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
Таблица = "testtable";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
СтруктураКолонок = Новый Структура;
СтруктураКолонок.Вставить("smallint_field" , "smallint");
СтруктураКолонок.Вставить("double_field" , "real");
СтруктураКолонок.Вставить("bigint_field" , "bigint");
СтруктураКолонок.Вставить("custom_field" , "nvarchar");
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ГарантироватьТаблицу", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Истина(Результат["commit"]["result"]);
Проверка = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Проверка, "ГарантироватьТаблицу (проверка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"], СтруктураКолонок.Количество());
Для Каждого Колонка Из Проверка["data"] Цикл
ТекущийТип = Колонка["data_type"];
OPI_ПолучениеДанныхТестов.Проверка_Равенство(нРег(ТекущийТип), нРег(СтруктураКолонок[Колонка["column_name"]]));
КонецЦикла;
Таблица = "test_new";
Результат = OPI_MSSQL.ГарантироватьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ГарантироватьТаблицу (новая)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Истина(Результат["commit"]["result"]);
Проверка = OPI_MSSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Проверка, "ГарантироватьТаблицу (новая, проверка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"], СтруктураКолонок.Количество());
Для Каждого Колонка Из Проверка["data"] Цикл
ТекущийТип = Колонка["data_type"];
OPI_ПолучениеДанныхТестов.Проверка_Равенство(нРег(ТекущийТип), нРег(СтруктураКолонок[Колонка["column_name"]]));
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти