1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-12 09:04:01 +02:00

Правки замечаний

This commit is contained in:
Корякин Алексей 2023-01-23 00:46:53 +03:00
parent 5b85d2d717
commit a28a3a5bf5
4 changed files with 149 additions and 152 deletions

View File

@ -65,12 +65,9 @@
// Фиксированный - Булево - возвращать фиксированный или обычный массив
//
// Возвращаемое значение:
// Массив, ФиксированныйМассив - массив строк
// Массив Из Строка - массив строк
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Разделитель = ";", УдалятьКонцевыеПробелы = Ложь,
Фиксированный = Ложь) Экспорт
Результат = Новый Массив;
Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Разделитель = ";", УдалятьКонцевыеПробелы = Ложь) Экспорт
КодУниверсальногоРазделителя = 5855;
УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя);
@ -89,17 +86,21 @@
КонецЕсли;
Если Фиксированный Тогда
Результат = Новый ФиксированныйМассив(МассивСтрок);
Иначе
Результат = МассивСтрок;
КонецЕсли;
Возврат МассивСтрок;
Возврат Результат;
КонецФункции
// Сформировать строку символов.
// Формирует строку из заданого количества повторяемых символов
// Параметры:
// Символ - Строка - Повторяемый символ
// Количество - Число - Количество повторений
//
// Возвращаемое значение:
// Строка - Строка повторяемых символов
Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт
Возврат СтрСоединить(Новый Массив(Количество + 1), Символ);
КонецФункции
@ -186,25 +187,21 @@
// Функция, объединяющая две коллекции( с типами Структура или Соответствие) в одну структуру, если это возможно
//
// Параметры:
// Коллекция1 - Соответствие, Структура - Коллекция с типом структура или соответствие
// Коллекция2 - Соответствие, Структура - Коллекция с типом структура или соответствие
// РезультатВФиксированнуюКоллекцию - Булево - Признак фиксированной коллекции, необязательный, по умолчанию Ложь,
// если Истина, возвращает фиксированная коллекция
// Коллекция1 - Соответствие из Произвольный
// - Структура
// Коллекция2 - Соответствие из Произвольный
// - Структура
//
// Возвращаемое значение:
// Структура - Результат объединения двух коллекций
//
Функция ОбъединитьВСтруктуру(Знач Коллекция1, Коллекция2, РезультатВФиксированнуюКоллекцию = Ложь) Экспорт
Функция ОбъединитьВСтруктуру(Знач Коллекция1, Коллекция2) Экспорт
Если ТипЗнч(Коллекция1) <> Тип("Структура") Тогда
Коллекция1 = СкопироватьСтруктуру(Коллекция1);
КонецЕсли;
СтруктураРезультат = ДобавитьКлючИЗначениеВКоллекцию(Коллекция1, Коллекция2);
Возврат ?(РезультатВФиксированнуюКоллекцию, Новый ФиксированнаяСтруктура(СтруктураРезультат), СтруктураРезультат);
Возврат ДобавитьКлючИЗначениеВКоллекцию(Коллекция1, Коллекция2);
КонецФункции
@ -214,13 +211,12 @@
// Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.).
//
// Параметры:
// Источник - Произвольный - объект, который необходимо скопировать.
// ФиксированнаяКоллекцияВОбычную - Булево - Если значение равно Истина, то из Фиксированной коллекции формируется обычная
// Источник - Произвольный - объект, который необходимо скопировать.
//
// Возвращаемое значение:
// Произвольный - копия объекта, переданного в параметре Источник.
//
Функция СкопироватьРекурсивно(Знач Источник, ФиксированнаяКоллекцияВОбычную = Ложь) Экспорт
Функция СкопироватьРекурсивно(Знач Источник) Экспорт
Перем Приемник;
@ -228,23 +224,23 @@
ТипИсточника = ТипЗнч(Источник);
Если ТипИсточника = Тип("Структура") Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда
Приемник = СкопироватьСтруктуру(Источник, ФиксированнаяКоллекцияВОбычную);
Приемник = СкопироватьСтруктуру(Источник);
ИначеЕсли ТипИсточника = Тип("Соответствие") Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда
Приемник = СкопироватьСоответствие(Источник, ФиксированнаяКоллекцияВОбычную);
Приемник = СкопироватьСоответствие(Источник);
ИначеЕсли ТипИсточника = Тип("Массив") Или ТипИсточника = Тип("ФиксированныйМассив") Тогда
Приемник = СкопироватьМассив(Источник, ФиксированнаяКоллекцияВОбычную);
Приемник = СкопироватьМассив(Источник);
ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда
Приемник = СкопироватьСписокЗначений(Источник, ФиксированнаяКоллекцияВОбычную);
Приемник = СкопироватьСписокЗначений(Источник);
Иначе
СкопироватьПрисвоением = Истина;
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ТипИсточника = Тип("ТаблицаЗначений") Или ТипИсточника = Тип("ДеревоЗначений") Тогда
@ -254,7 +250,7 @@
КонецЕсли;
#КонецЕсли
КонецЕсли;
Если СкопироватьПрисвоением Тогда
@ -271,29 +267,19 @@
// Создает копию значения типа Структура
//
// Параметры:
// СтруктураИсточник - Структура - копируемая структура
// ФиксированнаяКоллекцияВОбычную - Булево - Если значение равно Истина, то из Фиксированной коллекции формируется обычная
// СтруктураИсточник - Структура - копируемая структура
//
// Возвращаемое значение:
// Структура - копия исходной структуры.
//
Функция СкопироватьСтруктуру(СтруктураИсточник, ФиксированнаяКоллекцияВОбычную = Ложь) Экспорт
Функция СкопироватьСтруктуру(СтруктураИсточник) Экспорт
СтруктураРезультат = Новый Структура;
Для Каждого КлючИЗначение Из СтруктураИсточник Цикл
СтруктураРезультат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение,
ФиксированнаяКоллекцияВОбычную));
СтруктураРезультат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение));
КонецЦикла;
Если ТипЗнч(СтруктураИсточник) = Тип("ФиксированнаяСтруктура") И Не ФиксированнаяКоллекцияВОбычную Тогда
СтруктураРезультат = Новый ФиксированнаяСтруктура(СтруктураРезультат);
КонецЕсли;
Возврат СтруктураРезультат;
КонецФункции
@ -302,59 +288,45 @@
// Создает копию значения типа Соответствие.
//
// Параметры:
// СоответствиеИсточник - Соответствие - соответствие, копию которого необходимо получить.
// ФиксированнаяКоллекцияВОбычную - Булево - Если значение равно Истина, то из Фиксированной коллекции формируется обычная
// СоответствиеИсточник - Соответствие из Произвольный - соответствие, копию которого необходимо получить.
//
// Возвращаемое значение:
// Соответствие - копия исходного соответствия.
// Соответствие Из Произвольный - копия исходного соответствия.
//
Функция СкопироватьСоответствие(СоответствиеИсточник, ФиксированнаяКоллекцияВОбычную = Ложь) Экспорт
Функция СкопироватьСоответствие(СоответствиеИсточник) Экспорт
СоответствиеРезультат = Новый Соответствие;
Для Каждого КлючИЗначение Из СоответствиеИсточник Цикл
СоответствиеРезультат.Вставить(СкопироватьРекурсивно(КлючИЗначение.Ключ, ФиксированнаяКоллекцияВОбычную),
СкопироватьРекурсивно(КлючИЗначение.Значение, ФиксированнаяКоллекцияВОбычную));
СоответствиеРезультат.Вставить(СкопироватьРекурсивно(КлючИЗначение.Ключ),
СкопироватьРекурсивно(КлючИЗначение.Значение));
КонецЦикла;
Если ТипЗнч(СоответствиеИсточник) = Тип("ФиксированноеСоответствие") И Не ФиксированнаяКоллекцияВОбычную Тогда
СоответствиеРезультат = Новый ФиксированноеСоответствие(СоответствиеРезультат);
КонецЕсли;
Возврат СоответствиеРезультат;
КонецФункции
// СкопироватьМассив
// Создает копию значения типа Массив.
//
// Параметры:
// МассивИсточник - Массив - массив, копию которого необходимо получить
// ФиксированнаяКоллекцияВОбычную - Булево - Если значение равно Истина, то из Фиксированной коллекции формируется обычная
// МассивИсточник - Массив Из Произвольный - массив, копию которого необходимо получить
//
// Возвращаемое значение:
// Массив - копия исходного массива.
// Массив Из Произвольный - копия исходного массива.
//
Функция СкопироватьМассив(МассивИсточник, ФиксированнаяКоллекцияВОбычную = Ложь) Экспорт
Функция СкопироватьМассив(МассивИсточник) Экспорт
МассивРезультат = Новый Массив;
Для Каждого Элемент Из МассивИсточник Цикл
МассивРезультат.Добавить(СкопироватьРекурсивно(Элемент, ФиксированнаяКоллекцияВОбычную));
МассивРезультат.Добавить(СкопироватьРекурсивно(Элемент));
КонецЦикла;
Если ТипЗнч(МассивИсточник) = Тип("ФиксированныйМассив") И Не ФиксированнаяКоллекцияВОбычную Тогда
МассивРезультат = Новый ФиксированныйМассив(МассивРезультат);
КонецЕсли;
Возврат МассивРезультат;
КонецФункции
@ -363,22 +335,22 @@
// Создает копию значения типа СписокЗначений.
//
// Параметры:
// СписокИсточник - СписокЗначений - список значений, копию которого необходимо получить
// ФиксированнаяКоллекцияВОбычную - Булево - Если значение равно Истина, то из Фиксированной коллекции формируется обычная
// СписокИсточник - СписокЗначений Из Произвольный - список значений, копию которого необходимо получить
//
// Возвращаемое значение:
// СписокЗначений - копия исходного списка значений
// СписокЗначений Из Произвольный - копия исходного списка значений
//
Функция СкопироватьСписокЗначений(СписокИсточник, ФиксированнаяКоллекцияВОбычную = Ложь) Экспорт
Функция СкопироватьСписокЗначений(СписокИсточник) Экспорт
СписокРезультат = Новый СписокЗначений;
Для Каждого ЭлементСписка Из СписокИсточник Цикл
СписокРезультат.Добавить(
СкопироватьРекурсивно(ЭлементСписка.Значение, ФиксированнаяКоллекцияВОбычную), ЭлементСписка.Представление,
ЭлементСписка.Пометка, ЭлементСписка.Картинка);
СписокРезультат.Добавить(СкопироватьРекурсивно(ЭлементСписка.Значение),
ЭлементСписка.Представление,
ЭлементСписка.Пометка,
ЭлементСписка.Картинка);
КонецЦикла;
Возврат СписокРезультат;
@ -539,7 +511,7 @@
// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
// Возвращаемое значение:
// Соответствие - полученное соответствие.
// Соответствие Из Произвольный - полученное соответствие.
Функция КоллекцияВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
Результат = Новый Соответствие();
@ -678,6 +650,9 @@
Функция ВыполнитьМетод(ПолноеИмяМетода, Параметры = Неопределено) Экспорт
#Если ВебКлиент Тогда
ВызватьИсключение МетодНеДоступен("ЮТОбщий.ВыполнитьМетод");
#Иначе
Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда
Алгоритм = ПолноеИмяМетода;
@ -700,12 +675,14 @@
КонецЕсли;
Попытка
//@skip-check server-execution-safe-mode
Выполнить(Алгоритм);
Исключение
Возврат ИнформацияОбОшибке();
КонецПопытки;
Возврат Неопределено;
#КонецЕсли
КонецФункции
@ -737,61 +714,30 @@
КонецФункции
// СообщитьПользователю
// Формирует и выводит сообщение, которое может быть связано с элементом
// управления формы.
// Формирует и выводит сообщение
//
// Параметры:
// ТекстСообщенияПользователю - Строка - текст сообщения.
// Поле - Строка - наименование реквизита формы
// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы)
// ОбъектИлиСсылка - Объект, Ссылка - Ссылка на объект ИБ или объект
// ИдентификаторНазначения - Строка, УникальныйИдентификатор - Уникальный идентификатор экземпляра формы
// к которой должно быть "привязано" сообщение
//
Процедура СообщитьПользователю(ТекстСообщенияПользователю = "", Поле = "",
ПутьКДанным = "", ОбъектИлиСсылка = Неопределено,
Знач ИдентификаторНазначения = "") Экспорт
Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СокрЛП(ТекстСообщенияПользователю);
Сообщение.Поле = Поле;
Если ЗначениеЗаполнено(ИдентификаторНазначения) Тогда
Если ТипЗнч(ИдентификаторНазначения) = Тип("Строка") Тогда
ИдентификаторНазначения = Новый УникальныйИдентификатор(ИдентификаторНазначения);
КонецЕсли;
Сообщение.ИдентификаторНазначения = ИдентификаторНазначения;
КонецЕсли;
Если Не ПустаяСтрока(ПутьКДанным) Тогда
Сообщение.ПутьКДанным = ПутьКДанным;
КонецЕсли;
Если ОбъектИлиСсылка <> Неопределено Тогда
Сообщение.УстановитьДанные(ОбъектИлиСсылка);
КонецЕсли;
Сообщение.Сообщить();
КонецПроцедуры
Функция СтрокаJSON(Значение) Экспорт
#Если ВебКлиент ИЛИ ТонкийКлиент Тогда
ВызватьИсключение МетодНеДоступен("ЮТОбщий.СтрокаJSON", "веб и тонком клиенте");
#Иначе
ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Значение);
Возврат ЗаписьJSON.Закрыть();
#КонецЕсли
КонецФункции // СтрокаJSON
Функция ПредставлениеЗначения(Значение) Экспорт
@ -806,6 +752,9 @@
Функция ПредставлениеТипа(Тип) Экспорт
#Если ВебКлиент ИЛИ ТонкийКлиент Тогда
ВызватьИсключение МетодНеДоступен("ЮТОбщий.ПредставлениеТипа", "веб и тонком клиенте");
#Иначе
ТипXML = СериализаторXDTO.XMLТип(Тип);
Если ТипXML = Неопределено Тогда
@ -813,6 +762,13 @@
Иначе
Возврат ТипXML.ИмяТипа;
КонецЕсли;
#КонецЕсли
КонецФункции
Функция МетодНеДоступен(ИмяМетода, ИмяКонтекста = "веб-клиенте") Экспорт
Возврат СтрШаблон("Метод `%1` не доступен в %2");
КонецФункции
@ -864,6 +820,13 @@
КонецФункции
Функция Модуль(ИмяМодуля) Экспорт
//@skip-check server-execution-safe-mode
Возврат Вычислить(ИмяМодуля);
КонецФункции
#КонецОбласти
/////////////////////////////////////////////////////////////////////////////////
@ -873,20 +836,14 @@
#Область СлужебныеПроцедурыИФункции
Функция ДобавитьКлючИЗначениеВКоллекцию(КоллекцияРезультат, Коллекция)
Для Каждого Элемент Из Коллекция Цикл
КоллекцияРезультат.Вставить(Элемент.Ключ, Элемент.Значение);
КонецЦикла;
Возврат КоллекцияРезультат;
КонецФункции
Функция Модуль(ИмяМодуля) Экспорт
Возврат Вычислить(ИмяМодуля);
Для Каждого Элемент Из Коллекция Цикл
КоллекцияРезультат.Вставить(Элемент.Ключ, Элемент.Значение);
КонецЦикла;
Возврат КоллекцияРезультат;
КонецФункции
@ -899,10 +856,10 @@
ПредставлениеТипа = ТипОбъекта;
Если ТипОбъекта = Тип("Структура") ИЛИ ТипОбъекта = Тип("Соответствие") Тогда
СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", Уровень * 4);
СформироватьСтрокуСимволов(" ", Уровень * 4);
Шаблон = "%2:
|%1";
Представление = СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", Уровень * 4) + ПредставлениеСтруктуры(Объект, Уровень);
Представление = СформироватьСтрокуСимволов(" ", Уровень * 4) + ПредставлениеСтруктуры(Объект, Уровень);
ИначеЕсли ТипОбъекта = Тип("Массив") Тогда
@ -952,7 +909,7 @@
КонецЦикла;
Возврат СтрСоединить(Строки, Символы.ПС + СтроковыеФункцииКлиентСервер.СформироватьСтрокуСимволов(" ", Уровень * 4));
Возврат СтрСоединить(Строки, Символы.ПС + СформироватьСтрокуСимволов(" ", Уровень * 4));
КонецФункции

View File

@ -63,6 +63,9 @@
// Число - Случайное число
Функция СлучайноеЧисло(Минимум = 0, Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт
#Если ВебКлиент Тогда
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.СлучайноеЧисло");
#Иначе
Генератор = ЮТКонтекст.ЗначениеКонтекста("ГенераторСлучайныхЧисел");
Если Генератор = Неопределено Тогда
@ -82,6 +85,7 @@
КонецЕсли;
Возврат Результат;
#КонецЕсли
КонецФункции
@ -228,14 +232,21 @@
// Строка
Функция НовоеИмяВременногоФайла(Расширение = Неопределено) Экспорт
#Если ВебКлиент Тогда
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.НовоеИмяВременногоФайла");
#Иначе
Результат = ПолучитьИмяВременногоФайла(Расширение);
ЮТКонтекст.КонтекстТеста().ВременныеФайлы.Добавить(Результат);
Возврат Результат;
#КонецЕсли
КонецФункции
Функция ТаблицаMarkDown(Строки) Экспорт
#Если ВебКлиент Тогда
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТестовыеДанные.ТаблицаMarkDown");
#Иначе
ЗагрузилиЗаголовок = Ложь;
Результат = Новый Массив();
Ключи = "";
@ -294,6 +305,7 @@
Поток.Закрыть();
Возврат Результат;
#КонецЕсли
КонецФункции

View File

@ -1159,15 +1159,19 @@
// Возвращаемое значение:
// Структура - контекст утверждений:
// * ПроверяемоеЗначение - Произвольный
// * ПредставлениеПроверяемогоЗначения - Строка
// - Неопределено
// * ПредставлениеПроверяемогоЗначения - Неопределено
// - Строка
// * ПрефиксОшибки - Строка
// * ИмяМетода - Строка
// * ИмяСвойства - Строка
// - Неопределено
// * НормализованныйПутьКСвойству - Неопределено - Не указано свойство
// - Массив из Строка, Число
// * ПараметрыМетода - Неопределено - Не установлены
// - Массив из Произвольный
// * ОписаниеПроверки - Строка
// - Неопределено
Функция НовыйКонтекстУтверждения() Экспорт
Контекст = Новый Структура;
@ -1191,7 +1195,7 @@
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
ЮТУтверждения.СброситьКонтекст();
СброситьКонтекст();
КонецПроцедуры
@ -1459,6 +1463,9 @@
Функция ВызватьМетод(Модуль, ИмяМетода, ПараметрыМетода)
#Если ВебКлиент Тогда
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТУтверждения.ВызватьМетод");
#Иначе
Если Не ЗначениеЗаполнено(ИмяМетода) Тогда
ВызватьИсключение "ИмяМетода не заполнено в контексте. Воспользуйтесь предварительно методом интерфейса `Метод(ИмяМетода)`";
КонецЕсли;
@ -1482,6 +1489,7 @@
Результат = Новый Структура("ИсключениеВозникло, ТекстИсключения", Ложь);
Попытка
//@skip-check server-execution-safe-mode
Выполнить(СтрокаДляВыполнения);
Исключение
Результат.ИсключениеВозникло = Истина;
@ -1489,6 +1497,7 @@
КонецПопытки;
Возврат Результат;
#КонецЕсли
КонецФункции

View File

@ -29,6 +29,7 @@
ЮТТесты
.ДобавитьТест("ДобавитьСтроку")
.ДобавитьТест("ОбъединитьВСтруктуру")
.ДобавитьТест("СформироватьСтрокуСимволов")
;
КонецПроцедуры
@ -102,6 +103,24 @@
КонецПроцедуры
Процедура СформироватьСтрокуСимволов() Экспорт
Варианты = ЮТест.Варианты("Символ, Количество, Результат")
.Добавить("1", 1, "1")
.Добавить("12", 0, "")
.Добавить("12", 2, "1212")
.СписокВариантов();
Для Каждого Вариант Из Варианты Цикл
Результат = ЮТОбщий.СформироватьСтрокуСимволов(Вариант.Символ, Вариант.Количество);
ЮТест.ОжидаетЧто(Результат, СтрШаблон("%1 * %2", Вариант.Символ, Вариант.Количество))
.Равно(Вариант.Результат);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции