Skip to content

Commit

Permalink
refact: перенес методы установки блокировки в тестовые данные
Browse files Browse the repository at this point in the history
  • Loading branch information
alkoleft committed Jun 7, 2024
1 parent 8ae6780 commit a0fe72f
Show file tree
Hide file tree
Showing 10 changed files with 112 additions and 180 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -952,6 +952,18 @@
Возврат Обработка;

КонецФункции

// Установить фоновую блокировку.
//
// Параметры:
// Блокировка - БлокировкаДанных
// Длительность - Число - Длительность блокировки в секундах
Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность = 30) Экспорт

ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьФоновуюБлокировку(Блокировка, Длительность);

КонецПроцедуры

#КонецЕсли

// Устанавливает значение реквизита ссылки
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,51 @@

КонецПроцедуры

Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность) Экспорт

ОписаниеБлокировки = ОписаниеБлокировки(Блокировка);
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеБлокировки, Длительность);

Задание = ФоновыеЗадания.Выполнить("ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьБлокировку", Параметры);

Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
//@skip-check empty-except-statement
Попытка
ФоновыеЗадания.ОжидатьЗавершения(ЮТКоллекции.ЗначениеВМассиве(Задание), 1);
Исключение
// Исключение не интересно
КонецПопытки;
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.УникальныйИдентификатор);
КонецЕсли;

Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда
ВызватьИсключение Задание.ИнформацияОбОшибке;
ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
ВызватьИсключение "Фоновое задание с блокировкой завершилось";
КонецЕсли;

КонецПроцедуры

Процедура УстановитьБлокировку(ОписаниеБлокировки, Длительность) Экспорт

Блокировка = Новый БлокировкаДанных();

Для Каждого ОписаниеЭлемента Из ОписаниеБлокировки Цикл
Элемент = Блокировка.Добавить();
ЗаполнитьЗначенияСвойств(Элемент, ОписаниеЭлемента, "Область, Режим");

Для Каждого ОписаниеПоля Из ОписаниеЭлемента.Поля Цикл
Элемент.УстановитьЗначение(ОписаниеПоля.Поле, ОписаниеПоля.Значение);
КонецЦикла;
КонецЦикла;

НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
//@skip-check lock-out-of-try
Блокировка.Заблокировать();
ЮТОбщий.Пауза(Длительность);

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Expand Down Expand Up @@ -445,4 +490,33 @@

КонецПроцедуры

Функция ОписаниеБлокировки(Блокировка)

Описание = Новый Массив();

Для Каждого Элемент Из Блокировка Цикл
Описание.Добавить(ОписаниеЭлементаБлокировки(Элемент));
КонецЦикла;

Возврат Описание;

КонецФункции

Функция ОписаниеЭлементаБлокировки(ЭлементБлокировки)

Описание = Новый Структура;
Описание.Вставить("Область", ЭлементБлокировки.Область);
Описание.Вставить("Режим", ЭлементБлокировки.Режим);
Описание.Вставить("Поля", Новый Массив);

Для Каждого Поле Из ЭлементБлокировки.Поля Цикл
ОписаниеПоля = Новый Структура;
ОписаниеПоля.Вставить("Поле", Поле.Поле);
ОписаниеПоля.Вставить("Значение", Поле.Значение);
КонецЦикла;

Возврат Описание;

КонецФункции

#КонецОбласти

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion exts/yaxunit/src/Configuration/Configuration.mdo
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@
<commonModules>CommonModule.ЮТТесты</commonModules>
<commonModules>CommonModule.ЮТТестыСлужебный</commonModules>
<commonModules>CommonModule.ЮТТипыДанныхСлужебный</commonModules>
<commonModules>CommonModule.ЮТУправялемыеБлокировки</commonModules>
<commonModules>CommonModule.ЮТУтверждения</commonModules>
<commonModules>CommonModule.ЮТУтвержденияИБ</commonModules>
<commonModules>CommonModule.ЮТФабрика</commonModules>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
.ДобавитьТест("СлучайноеВремя")
.ДобавитьТест("СлучайнаяДатаПосле")
.ДобавитьТест("СлучайнаяДатаДо")
.ДобавитьСерверныйТест("УстановитьФоновуюБлокировку")
;

КонецПроцедуры
Expand Down Expand Up @@ -602,4 +603,28 @@

КонецПроцедуры

#Если Сервер Тогда
Процедура УстановитьФоновуюБлокировку() Экспорт

Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты);

Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.КурсыВалют")
.Установить("Валюта", Валюта)
.Фикция("Период")
.Фикция("Курс");

Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Валюта", Валюта);

ЮТест.Данные().УстановитьФоновуюБлокировку(Блокировка);

ЮТест.ОжидаетЧто(Конструктор)
.Метод("Записать")
.ВыбрасываетИсключение("Конфликт блокировок при выполнении транзакции");

КонецПроцедуры
#КонецЕсли

#КонецОбласти

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@

Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
.ИмеетДлину(36);
.ИмеетДлину(35);

КонецПроцедуры

Expand Down
1 change: 0 additions & 1 deletion tests/src/Configuration/Configuration.mdo
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
<commonModules>CommonModule.ОМ_ЮТТестовыеДанныеСлужебный</commonModules>
<commonModules>CommonModule.ОМ_ЮТТесты</commonModules>
<commonModules>CommonModule.ОМ_ЮТТипыДанныхСлужебный</commonModules>
<commonModules>CommonModule.ОМ_ЮТУправялемыеБлокировки</commonModules>
<commonModules>CommonModule.ОМ_ЮТУтверждения</commonModules>
<commonModules>CommonModule.ОМ_ЮТУтвержденияИБ</commonModules>
<commonModules>CommonModule.ОМ_ЮТФильтрацияСлужебный</commonModules>
Expand Down

0 comments on commit a0fe72f

Please sign in to comment.