1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-02-01 19:14:35 +02:00

fix: Исправления после ревью

- Добавлен ОМ подражатель служебный
- Тест на нереализованный пол человека
- Объединение проверок пола
This commit is contained in:
Dmitry Abramov 2023-07-24 20:16:56 +03:00
parent 3040c7c33c
commit b138ddd83f
9 changed files with 133 additions and 100 deletions

View File

@ -25,7 +25,7 @@
// Возвращаемое значение:
// Строка - Возвращает текущую установленную локализацию
Функция Локализация() Экспорт
Возврат Контекст().Локализация;
Возврат ЮТПодражательСлужебный.Контекст().Локализация;
КонецФункции
// Устанавливает локализацию подражателя
@ -33,7 +33,7 @@
// Параметры:
// КодЯзыка - Строка - Код языка
Процедура УстановитьЛокализацию(КодЯзыка) Экспорт
Контекст().Локализация = КодЯзыка;
ЮТПодражательСлужебный.Контекст().Локализация = КодЯзыка;
КонецПроцедуры
#Область Реализации
@ -53,77 +53,3 @@
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
// Получает список из словаря с учетом установленной локализации
//
// Параметры:
// ИмяРеализации - Строка - Имя реализации
// ИмяСловаря - Строка - Имя словаря
// КодЛокализации - Строка - Код локализации, по умолчанию берется из контекста
//
// Возвращаемое значение:
// ФиксированныйМассив из Строка
Функция Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации = Неопределено) Экспорт
_КодЛокализации = ?(КодЛокализации = Неопределено, Локализация(), КодЛокализации);
Возврат ЮТПодражательПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, _КодЛокализации);
КонецФункции
// Случайное значение из словаря.
//
// Параметры:
// Словарь - Массив из Строка - Словарь
//
// Возвращаемое значение:
// - Строка
Функция СлучайноеЗначениеИзСловаря(Словарь) Экспорт
Возврат Словарь.Получить(ЮТТестовыеДанные.СлучайноеЧисло(0, Словарь.ВГраница()));
КонецФункции
// Контекст.
//
// Возвращаемое значение:
// см. НовыйКонтекст
Функция Контекст() Экспорт
//@skip-check constructor-function-return-section
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
КонецФункции
// Инициализирует подражатель
//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Инициализировать() Экспорт
Если Контекст() = Неопределено Тогда
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
КонецЕсли;
Возврат ЮТПодражатель;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция КлючКонтекста()
Возврат "Подражатель";
КонецФункции
// Новый контекст.
//
// Возвращаемое значение:
// Структура - Новый контекст:
// * Локализация - Строка - Установленная локализация
Функция НовыйКонтекст()
Описание = Новый Структура;
#Если Клиент Тогда
Описание.Вставить("Локализация", ТекущийЯзык());
#Иначе
Описание.Вставить("Локализация", ТекущийЯзык().КодЯзыка);
#КонецЕсли
Возврат Описание;
КонецФункции
#КонецОбласти

View File

@ -29,8 +29,8 @@
Возврат СтрШаблон(
"%1 %2",
ЮТПодражатель.СлучайноеЗначениеИзСловаря(СловарьПрефиксов),
ЮТПодражатель.СлучайноеЗначениеИзСловаря(СловарьИмен)
ЮТПодражательСлужебный.СлучайноеЗначениеИзСловаря(СловарьПрефиксов),
ЮТПодражательСлужебный.СлучайноеЗначениеИзСловаря(СловарьИмен)
);
КонецФункции
@ -140,11 +140,11 @@
КонецФункции
Функция СловарьИменаКомпаний()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "Наименования");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "Наименования");
КонецФункции
Функция СловарьПрефиксыИменКомпаний()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "ПрефиксыНаименований");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "ПрефиксыНаименований");
КонецФункции
#КонецОбласти

View File

@ -33,11 +33,9 @@
Словарь = СловарьМужскиеИмена();
ИначеЕсли ПолЧеловека = ПолЧеловека().Женский Тогда
Словарь = СловарьЖенскиеИмена();
Иначе
ВызватьИсключение СтрШаблон("Отсутствует реализация словаря имен для пола человека: %1", ПолЧеловека);
КонецЕсли;
Возврат ЮТПодражатель.СлучайноеЗначениеИзСловаря(Словарь);
Возврат ЮТПодражательСлужебный.СлучайноеЗначениеИзСловаря(Словарь);
КонецФункции
@ -56,11 +54,9 @@
Словарь = СловарьМужскиеФамилии();
ИначеЕсли ПолЧеловека = ПолЧеловека().Женский Тогда
Словарь = СловарьЖенскиеФамилии();
Иначе
ВызватьИсключение СтрШаблон("Отсутствует реализация словаря фамилий для пола человека: %1", ПолЧеловека);
КонецЕсли;
Возврат ЮТПодражатель.СлучайноеЗначениеИзСловаря(Словарь);
Возврат ЮТПодражательСлужебный.СлучайноеЗначениеИзСловаря(Словарь);
КонецФункции
@ -79,11 +75,9 @@
Словарь = СловарьМужскиеОтчества();
ИначеЕсли ПолЧеловека = ПолЧеловека().Женский Тогда
Словарь = СловарьЖенскиеОтчества();
Иначе
ВызватьИсключение СтрШаблон("Отсутствует реализация словаря отчеств для пола человека: %1", ПолЧеловека);
КонецЕсли;
Возврат ЮТПодражатель.СлучайноеЗначениеИзСловаря(Словарь);
Возврат ЮТПодражательСлужебный.СлучайноеЗначениеИзСловаря(Словарь);
КонецФункции
@ -167,35 +161,35 @@
КонецФункции
Функция СловарьЖенскиеИмена()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "ЖенскиеИмена");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "ЖенскиеИмена");
КонецФункции
Функция СловарьЖенскиеФамилии()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "ЖенскиеФамилии");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "ЖенскиеФамилии");
КонецФункции
Функция СловарьЖенскиеОтчества()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "ЖенскиеОтчества");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "ЖенскиеОтчества");
КонецФункции
Функция СловарьМужскиеИмена()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "МужскиеИмена");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "МужскиеИмена");
КонецФункции
Функция СловарьМужскиеФамилии()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "МужскиеФамилии");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "МужскиеФамилии");
КонецФункции
Функция СловарьМужскиеОтчества()
Возврат ЮТПодражатель.Словарь(ИмяРеализации(), "МужскиеОтчества");
Возврат ЮТПодражательСлужебный.Словарь(ИмяРеализации(), "МужскиеОтчества");
КонецФункции
Функция ОпределитьПолЧеловекаИзПараметра(Пол)
Если Пол <> Неопределено Тогда
Если Не ПолЧеловека().Свойство(Пол) Тогда
ВызватьИсключение СтрШаблон("Отсутствует реализация словаря для пола: %1", Пол);
КонецЕсли;
Возврат Пол;
КонецЕсли;
Варианты = Новый Массив();
Для Каждого Элемент Из ПолЧеловека() Цикл
Варианты.Добавить(Элемент.Значение);
КонецЦикла;
Варианты = ЮТОбщий.ВыгрузитьЗначения(ПолЧеловека(), "Значение");
Возврат ЮТТестовыеДанные.СлучайноеЗначениеИзСписка(Варианты);
КонецФункции

View File

@ -0,0 +1,91 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 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.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
// Получает список из словаря с учетом установленной локализации
//
// Параметры:
// ИмяРеализации - Строка - Имя реализации
// ИмяСловаря - Строка - Имя словаря
// КодЛокализации - Строка - Код локализации, по умолчанию берется из контекста
//
// Возвращаемое значение:
// ФиксированныйМассив из Строка
Функция Словарь(ИмяРеализации, ИмяСловаря, КодЛокализации = Неопределено) Экспорт
_КодЛокализации = ?(КодЛокализации = Неопределено, ЮТПодражатель.Локализация(), КодЛокализации);
Возврат ЮТПодражательПовтИсп.Словарь(ИмяРеализации, ИмяСловаря, _КодЛокализации);
КонецФункции
// Случайное значение из словаря.
//
// Параметры:
// Словарь - Массив из Строка - Словарь
//
// Возвращаемое значение:
// - Строка
Функция СлучайноеЗначениеИзСловаря(Словарь) Экспорт
Возврат Словарь.Получить(ЮТТестовыеДанные.СлучайноеЧисло(0, Словарь.ВГраница()));
КонецФункции
// Контекст.
//
// Возвращаемое значение:
// см. НовыйКонтекст
Функция Контекст() Экспорт
//@skip-check constructor-function-return-section
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
КонецФункции
// Инициализирует подражатель
//
// Возвращаемое значение:
// ОбщийМодуль - Этот модуль для замыкания
Функция Инициализировать() Экспорт
Если Контекст() = Неопределено Тогда
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст());
КонецЕсли;
Возврат ЮТПодражатель;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция КлючКонтекста()
Возврат "Подражатель";
КонецФункции
// Новый контекст.
//
// Возвращаемое значение:
// Структура - Новый контекст:
// * Локализация - Строка - Установленная локализация
Функция НовыйКонтекст()
Описание = Новый Структура;
#Если Клиент Тогда
Описание.Вставить("Локализация", ТекущийЯзык());
#Иначе
Описание.Вставить("Локализация", ТекущийЯзык().КодЯзыка);
#КонецЕсли
Возврат Описание;
КонецФункции
#КонецОбласти

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="0bbb9e3a-a83f-4444-aaed-98b2a1ac8bda">
<name>ЮТПодражательСлужебный</name>
<synonym>
<key>ru</key>
<value>Подражатель служебный</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

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

View File

@ -80,6 +80,7 @@
<commonModules>CommonModule.ЮТПодражатель_Люди</commonModules>
<commonModules>CommonModule.ЮТПодражательВызовСервера</commonModules>
<commonModules>CommonModule.ЮТПодражательПовтИсп</commonModules>
<commonModules>CommonModule.ЮТПодражательСлужебный</commonModules>
<commonModules>CommonModule.ЮТПредикаты</commonModules>
<commonModules>CommonModule.ЮТПредикатыКлиентСервер</commonModules>
<commonModules>CommonModule.ЮТРасширения</commonModules>

View File

@ -9,5 +9,6 @@
<content>CommonModule.ЮТПодражатель</content>
<content>CommonModule.ЮТПодражательПовтИсп</content>
<content>CommonModule.ЮТПодражательВызовСервера</content>
<content>CommonModule.ЮТПодражательСлужебный</content>
<subsystems>ЮТПодражательРеализации</subsystems>
</mdclass:Subsystem>

View File

@ -31,6 +31,8 @@
.ДобавитьТестовыйНабор("Локализации")
.ДобавитьТест("УстановкаЛокализации")
.ДобавитьТест("НесуществующийСловарьПоЛокализации")
.ДобавитьТестовыйНабор("Некорректные параметры")
.ДобавитьТест("НереализованныйПолЧеловека")
;
КонецПроцедуры
@ -144,6 +146,13 @@
;
КонецПроцедуры
Процедура НереализованныйПолЧеловека() Экспорт
Подражатель = ЮТТестовыеДанные.Подражатель();
Ютест.ОжидаетЧто(ЮТПодражатель_Люди)
.Метод("Имя", ЮТОбщий.ЗначениеВМассиве("ТрансгендернаяДевушкаОлень"))
.ВыбрасываетИсключение("Отсутствует реализация словаря")
;
КонецПроцедуры
#КонецОбласти