1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-02-10 19:41:26 +02:00
Вынес метод фикция в публичный интерфейс
Добавлена поддержка генерации по типу (в дополнение к описанию типов)
This commit is contained in:
alkoleft 2024-02-24 18:33:31 +03:00
parent 6018e65368
commit a9c43445d9
3 changed files with 76 additions and 23 deletions

View File

@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -646,6 +646,21 @@
КонецПроцедуры
// Генерирует новое значение указанного типа.
// Если `ОписаниеТипа` содержит несколько типов, то выбирается случайный из них.
// Параметры:
// ОписаниеТипа - ОписаниеТипов, Тип - Тип значения генерируемого значения
// РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы
// - Неопределено
//
// Возвращаемое значение:
// Произвольный - Сгенерированное значение указанного типа
Функция Фикция(ОписаниеТипа, РеквизитыЗаполнения = Неопределено) Экспорт
Возврат ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеТипа, РеквизитыЗаполнения);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,18 +18,14 @@
#Область СлужебныйПрограммныйИнтерфейс
// Фикция.
//
// Параметры:
// ОписаниеТипа - ОписаниеТипов
// РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы
// - Неопределено
//
// Возвращаемое значение:
// Произвольный
// см. ЮТТестовыеДанные.Фикция
Функция Фикция(ОписаниеТипа, РеквизитыЗаполнения = Неопределено) Экспорт
Если ОписаниеТипа.Типы().Количество() > 1 Тогда
ПереданоОписаниеТипа = ТипЗнч(ОписаниеТипа) = Тип("ОписаниеТипов");
Если НЕ ПереданоОписаниеТипа Тогда
Тип = ОписаниеТипа;
ИначеЕсли ОписаниеТипа.Типы().Количество() > 1 Тогда
НомерТипа = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(ОписаниеТипа.Типы().Количество());
Тип = ОписаниеТипа.Типы()[НомерТипа - 1];
Иначе
@ -44,17 +40,11 @@
ИначеЕсли Тип = Тип("Строка") Тогда
Если ОписаниеТипа.КвалификаторыСтроки.Длина = 0 Тогда
Значение = ЮТТестовыеДанные.СлучайнаяСтрока(ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100));
Иначе
Значение = ЮТТестовыеДанные.СлучайнаяСтрока(ОписаниеТипа.КвалификаторыСтроки.Длина);
КонецЕсли;
Значение = ФикстивнаяСтрока(ОписаниеТипа);
ИначеЕсли Тип = Тип("Дата") Тогда
//@skip-check use-non-recommended-method
Значение = ЮТТестовыеДанные.СлучайнаяДата(ТекущаяДата() - 315360000, ТекущаяДата() + 315360000); // BSLLS:DeprecatedCurrentDate-off
// +/- 10 лет
Значение = ФикстивнаяДата(ОписаниеТипа);
ИначеЕсли Тип = Тип("Булево") Тогда
@ -75,7 +65,11 @@
ВызватьИсключение СтрШаблон("Создание фейковых значений для `%1` не поддерживается", ОписаниеТипа);
КонецЕсли;
Возврат ОписаниеТипа.ПривестиЗначение(Значение);
Если ПереданоОписаниеТипа Тогда
Значение = ОписаниеТипа.ПривестиЗначение(Значение);
КонецЕсли;
Возврат Значение;
КонецФункции
@ -91,7 +85,7 @@
КонецФункции
#КонецЕсли
#КонецЕсли
Процедура ДобавитьВременныйФайл(Файл) Экспорт
@ -216,6 +210,10 @@
Функция ФиктивноеЧисло(ОписаниеТипа)
Если ТипЗнч(ОписаниеТипа) <> Тип("ОписаниеТипов") Тогда
Возврат ЮТТестовыеДанные.СлучайноеЧисло();
КонецЕсли;
МаксимальноеЗначение = 4294967295;
Если ОписаниеТипа.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный ИЛИ ЮТТестовыеДанные.СлучайноеБулево() Тогда
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(МаксимальноеЗначение);
@ -229,4 +227,28 @@
КонецФункции
Функция ФикстивнаяСтрока(ОписаниеТипа)
Если ТипЗнч(ОписаниеТипа) <> Тип("ОписаниеТипов") Тогда
Возврат ЮТТестовыеДанные.СлучайнаяСтрока(ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100));
КонецЕсли;
Если ОписаниеТипа.КвалификаторыСтроки.Длина = 0 Тогда
Значение = ЮТТестовыеДанные.СлучайнаяСтрока(ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100));
Иначе
Значение = ЮТТестовыеДанные.СлучайнаяСтрока(ОписаниеТипа.КвалификаторыСтроки.Длина);
КонецЕсли;
Возврат Значение;
КонецФункции
Функция ФикстивнаяДата(ОписаниеТипа)
Интервал = 315360000; // 10 лет
//@skip-check use-non-recommended-method
Возврат ЮТТестовыеДанные.СлучайнаяДата(ТекущаяДата() - Интервал, ТекущаяДата() + Интервал); // BSLLS:DeprecatedCurrentDate-off
КонецФункции
#КонецОбласти

View File

@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -39,6 +39,12 @@
.ДобавитьТест("УстановитьЗначениеРеквизита")
.ДобавитьТест("СлучайноеОтрицательноеЧисло")
.ДобавитьТест("СлучайныйНомерТелефона")
.ДобавитьТест("Фикция")
.СПараметрами(Тип("Строка"))
.СПараметрами(Тип("СправочникСсылка.Банки"))
.СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки"))
.СПараметрами(Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 1, ДопустимыйЗнак.Неотрицательный)))
.СПараметрами(Новый ОписаниеТипов("СправочникСсылка.Банки, ДокументСсылка.Заказ"))
;
КонецПроцедуры
@ -441,4 +447,14 @@
КонецПроцедуры
Процедура Фикция(ТипЗначения) Экспорт
Значение = ЮТест.Данные().Фикция(ТипЗначения);
ЮТест.ОжидаетЧто(Значение)
.Заполнено()
.ИмеетТип(ТипЗначения);
КонецПроцедуры
#КонецОбласти