1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-01-20 18:48:36 +02:00

Merge pull request #96 from bia-technologies/feature/75

Реализован проброс реквизитов заполнения фикции
This commit is contained in:
Koryakin Aleksey 2023-05-18 01:44:06 +03:00 committed by GitHub
commit c5ff9475d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 58 additions and 15 deletions

View File

@ -56,12 +56,12 @@
//
// Параметры:
// ИмяРеквизита - Строка - Имя реквизита объекта или табличной части
// Реквизиты - Структура - Значения реквизитов заполнения создаваемого объекта базы
// - Неопределено
// РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы
// - Неопределено
//
// Возвращаемое значение:
// ОбщийМодуль - Конструктор
Функция Фикция(ИмяРеквизита, Реквизиты = Неопределено) Экспорт
Функция Фикция(ИмяРеквизита, РеквизитыЗаполнения = Неопределено) Экспорт
Контекст = Контекст();
@ -73,7 +73,7 @@
ТекущаяЗапись = Контекст.Данные;
КонецЕсли;
Значение = ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеРеквизита.Тип);
Значение = ЮТТестовыеДанныеСлужебный.Фикция(ОписаниеРеквизита.Тип, РеквизитыЗаполнения);
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
Возврат ЮТКонструкторТестовыхДанных;

View File

@ -179,7 +179,7 @@
КонецПроцедуры
Функция ФикцияЗначенияБазы(Знач ТипЗначения) Экспорт
Функция ФикцияЗначенияБазы(Знач ТипЗначения, Знач РеквизитыЗаполнения = Неопределено) Экспорт
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения);
@ -203,6 +203,10 @@
Объект = СоздатьОбъект(Менеджер, ОписаниеТипа);
Если ЗначениеЗаполнено(РеквизитыЗаполнения) Тогда
ЗаполнитьЗначенияСвойств(Объект, РеквизитыЗаполнения);
КонецЕсли;
ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных);
Возврат ЗаписатьОбъект(Объект);

View File

@ -22,10 +22,12 @@
//
// Параметры:
// ОписаниеТипа - ОписаниеТипов
// РеквизитыЗаполнения - Структура - Значения реквизитов заполнения создаваемого объекта базы
// - Неопределено
//
// Возвращаемое значение:
// Произвольный
Функция Фикция(ОписаниеТипа) Экспорт
Функция Фикция(ОписаниеТипа, РеквизитыЗаполнения = Неопределено) Экспорт
Если ОписаниеТипа.Типы().Количество() > 1 Тогда
НомерТипа = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(ОписаниеТипа.Типы().Количество());
@ -38,14 +40,7 @@
Если Тип = Тип("Число") Тогда
МаксимальноеЗначение = 4294967295;
Если ОписаниеТипа.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный ИЛИ ЮТТестовыеДанные.СлучайноеБулево() Тогда
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(МаксимальноеЗначение);
Значение = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(МаксимальноеЗначение, ОписаниеТипа.КвалификаторыЧисла.РазрядностьДробнойЧасти);
Иначе
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(-МаксимальноеЗначение);
Значение = ЮТТестовыеДанные.СлучайноеОтрицательноеЧисло(МаксимальноеЗначение, ОписаниеТипа.КвалификаторыЧисла.РазрядностьДробнойЧасти);
КонецЕсли;
Значение = ФиктивноеЧисло(ОписаниеТипа);
ИначеЕсли Тип = Тип("Строка") Тогда
@ -69,7 +64,7 @@
Иначе
Значение = ЮТТестовыеДанныеВызовСервера.ФикцияЗначенияБазы(Тип);
Значение = ЮТТестовыеДанныеВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения);
ДобавитьТестовуюЗапись(Значение);
КонецЕсли;
@ -219,4 +214,19 @@
КонецФункции
Функция ФиктивноеЧисло(ОписаниеТипа)
МаксимальноеЗначение = 4294967295;
Если ОписаниеТипа.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный ИЛИ ЮТТестовыеДанные.СлучайноеБулево() Тогда
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(МаксимальноеЗначение);
Значение = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(МаксимальноеЗначение, ОписаниеТипа.КвалификаторыЧисла.РазрядностьДробнойЧасти);
Иначе
МаксимальноеЗначение = ОписаниеТипа.ПривестиЗначение(-МаксимальноеЗначение);
Значение = ЮТТестовыеДанные.СлучайноеОтрицательноеЧисло(МаксимальноеЗначение, ОписаниеТипа.КвалификаторыЧисла.РазрядностьДробнойЧасти);
КонецЕсли;
Возврат Значение;
КонецФункции
#КонецОбласти

View File

@ -23,6 +23,7 @@
ЮТТесты.ВТранзакции().УдалениеТестовыхДанных()
.ДобавитьТест("ЗаполнитьСправочник")
.ДобавитьТест("ЗаполнитьДокумент")
.ДобавитьТест("Фикция")
.ДобавитьТест("ФикцияОбязательныхПолей")
;
@ -110,6 +111,34 @@
КонецПроцедуры
Процедура Фикция() Экспорт
Поставщик = Ютест.Данные().СоздатьЭлемент("Справочники.Контрагенты");
Данные = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара")
.Установить("Поставщик", Поставщик)
.Фикция("Дата")
.Фикция("Номер")
.Фикция("Склад")
.Фикция("Валюта")
.ТабличнаяЧасть("Товары")
.ДобавитьСтроку()
.Фикция("Товар", Новый Структура("Поставщик", Поставщик))
.Фикция("Цена")
.ДанныеОбъекта();
ЮТест.ОжидаетЧто(Данные)
.Свойство("Дата").Заполнено()
.Свойство("Номер").Заполнено()
.Свойство("Склад").Заполнено()
.Свойство("Валюта").Заполнено()
.Свойство("Товары[0].Товар").Заполнено();
ПоставщикТовара = ЮТЗапросы.ЗначениеРеквизита(Данные.Товары[0].Товар, "Поставщик");
ЮТест.ОжидаетЧто(ПоставщикТовара).Равно(Поставщик);
КонецПроцедуры
Процедура ФикцияОбязательныхПолей() Экспорт
Данные = ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты")