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-20 13:59:12 +03:00
parent 8f77f1c7e0
commit 5b85d2d717
6 changed files with 152 additions and 33 deletions

View File

@ -182,36 +182,6 @@
КонецФункции
// ЗначениеСоответствия
// Возвращает требуемое поле соответствия. В случае отсутствия поля возвращает значение по умолчанию
//
// Параметры:
// ИсходноеСоответствие - Соответствие - Исходное соответствия
// ИмяПоля - Строка - Имя поля соответствия
// ЗначениеПоУмолчанию - Произвольный - Значение, которое будет возвращено, если поля в соответствии нет
//
// Возвращаемое значение:
// Произвольный - Значение искомого поля структуры
//
Функция ЗначениеСоответствия(Знач ИсходноеСоответствие, ИмяПоля, Знач ЗначениеПоУмолчанию = Неопределено) Экспорт
Если ПустаяСтрока(ИмяПоля) Тогда
Возврат ЗначениеПоУмолчанию;
КонецЕсли;
ЗначениеПоля = ИсходноеСоответствие.Получить(ИмяПоля);
Если ЗначениеПоля <> Неопределено Тогда
Возврат ЗначениеПоля;
КонецЕсли;
Возврат ЗначениеПоУмолчанию;
КонецФункции
// ОбъединитьВСтруктуру
// Функция, объединяющая две коллекции( с типами Структура или Соответствие) в одну структуру, если это возможно
//

View File

@ -524,7 +524,7 @@
// Массив из см. КонтекстыВызова - Контексты приложения
Функция КонтекстыПриложения() Экспорт
#Если Сервер Тогда
#Если НЕ Клиент Тогда
ВызватьИсключение "Метод получения контекстов приложения должен вызываться с клиента";
#КонецЕсли

View File

@ -0,0 +1,137 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2022 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.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//©///////////////////////////////////////////////////////////////////////////©//
// @strict-types
/////////////////////////////////////////////////////////////////////////////////
// Экспортные процедуры и функции, предназначенные для использования другими
// объектами конфигурации или другими программами
/////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
.ДобавитьТест("ДобавитьСтроку")
.ДобавитьТест("ОбъединитьВСтруктуру")
;
КонецПроцедуры
Процедура ДобавитьСтроку() Экспорт
Варианты = ЮТест.Варианты("Исходная, Дополнение, Разделитель, Результат")
.Добавить("1", "2", "+", "1+2")
.Добавить("", "2", "+", "2")
.Добавить("1", "", "+", "1")
.Добавить(Неопределено, "2", "+", "2")
.Добавить("1", "2", Неопределено, "12")
.СписокВариантов();
Для Каждого Вариант Из Варианты Цикл
Результат = ЮТОбщий.ДобавитьСтроку(Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель);
Сообщение = СтрШаблон("ДобавитьСтроку(%1, %2, %3)", Вариант.Исходная, Вариант.Дополнение, Вариант.Разделитель);
ЮТест.ОжидаетЧто(Результат, Сообщение).Равно(Вариант.Результат);
КонецЦикла;
КонецПроцедуры
Процедура ОбъединитьВСтруктуру() Экспорт
Варианты = ЮТест.Варианты("Описание, Исходная, Добавляемая, Результат, Фиксированная")
.Добавить("Структуры без пересечения", "Строка, Число", "Дата", "Строка, Число, Дата", Ложь)
.Добавить("Структуры с пересечением", "Строка, Число", "Дата, Число", "Строка, Число, Дата", Истина)
.Добавить("Добавление пустой структуры", "Строка, Число", "", "Строка, Число", Ложь)
.Добавить("Добавление в пустую структуру", "", "Строка, Число", "Строка, Число", Истина)
.СписокВариантов();
Для Каждого Вариант Из Варианты Цикл
Для Режим = 1 По 3 Цикл
ИсходнаяЭтоСоответствие = Режим = 1 ИЛИ Режим = 3;
ДобавляемаяЭтоСоответствие = Режим = 2 ИЛИ Режим = 3;
Исходная = СтруктураДляОбъединения(Вариант.Исходная, ИсходнаяЭтоСоответствие);
Добавляемая = СтруктураДляОбъединения(Вариант.Добавляемая, ДобавляемаяЭтоСоответствие);
Результат = ЮТОбщий.ОбъединитьВСтруктуру(Исходная, Добавляемая, Вариант.Фиксированная);
ЮТест.ОжидаетЧто(Результат, Вариант.Описание)
.Заполнено();
Если Вариант.Фиксированная Тогда
ЮТУтверждения.ИмеетТип("ФиксированнаяСтруктура");
Иначе
ЮТУтверждения.ИмеетТип("Структура");
КонецЕсли;
Для Каждого Ключ Из СтрРазделить(Вариант.Результат, ", ", Ложь) Цикл
ЕстьКлюч = ДобавляемаяЭтоСоответствие И Добавляемая[Ключ] <> Неопределено
ИЛИ НЕ ДобавляемаяЭтоСоответствие И Добавляемая.Свойство(Ключ);
Если ЕстьКлюч Тогда
ЮТУтверждения.Свойство(Ключ).Равно(Добавляемая[Ключ]);
Иначе
ЮТУтверждения.Свойство(Ключ).Равно(Исходная[Ключ]);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция СтруктураДляОбъединения(КлючиСтрокой, Соответствие)
Ключи = СтрРазделить(КлючиСтрокой, ", ", Ложь);
Если Соответствие Тогда
Результат = Новый Соответствие();
Иначе
Результат = Новый Структура();
КонецЕсли;
Для Каждого Ключ Из Ключи Цикл
Если СтрСравнить(Ключ, "Число") Тогда
Значение = ЮТест.Данные().СлучайноеЧисло();
ИначеЕсли СтрСравнить(Ключ, "Дата") Тогда
Значение = ЮТест.Данные().СлучайнаяДата();
Иначе
Значение = ЮТест.Данные().СлучайнаяСтрока();
КонецЕсли;
Результат.Вставить(Ключ, Значение);
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9d9e1592-1e79-4d25-9b77-7e17d8d70642">
<name>ОМ_Общий</name>
<synonym>
<key>ru</key>
<value>О м общий</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -92,7 +92,7 @@
Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
.ИмеетДлину(7);
.ИмеетДлину(8);
КонецПроцедуры

View File

@ -27,9 +27,10 @@
</extension>
<languageCode>ru</languageCode>
</languages>
<commonModules>CommonModule.ОМ_ОшибкаЗагрузкиСценариев</commonModules>
<commonModules>CommonModule.ОМ_Мокито</commonModules>
<commonModules>CommonModule.ОМ_МокитоОбучение</commonModules>
<commonModules>CommonModule.ОМ_Общий</commonModules>
<commonModules>CommonModule.ОМ_ОшибкаЗагрузкиСценариев</commonModules>
<commonModules>CommonModule.ОМ_ЮТест</commonModules>
<commonModules>CommonModule.ОМ_ЮТУтверждения</commonModules>
<commonModules>CommonModule.ОМ_ЮТФильтрация</commonModules>