mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-02-07 19:30:17 +02:00
Merge pull request #146 from bia-technologies/feature/102
Случайный идентификатор
This commit is contained in:
commit
015c010b05
57
exts/yaxunit/src/CommonModules/ЮТСтроки/Module.bsl
Normal file
57
exts/yaxunit/src/CommonModules/ЮТСтроки/Module.bsl
Normal file
@ -0,0 +1,57 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция РусскиеБуквы(НижнийРегистр = Истина, ВерхнийРегистр = Ложь) Экспорт
|
||||
|
||||
Возврат Буквы("абвгдеёжзийклмнопрстуфхцчшщъыьэюя", НижнийРегистр, ВерхнийРегистр);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция АнглийскиеБуквы(НижнийРегистр = Истина, ВерхнийРегистр = Ложь) Экспорт
|
||||
|
||||
Возврат Буквы("abcdefghijklmnopqrstuvwxyz", НижнийРегистр, ВерхнийРегистр);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Цифры() Экспорт
|
||||
|
||||
Возврат "1234567890";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция Буквы(Буквы, НижнийРегистр, ВерхнийРегистр)
|
||||
|
||||
Если НижнийРегистр И ВерхнийРегистр Тогда
|
||||
Возврат Буквы + ВРег(Буквы);
|
||||
ИначеЕсли НижнийРегистр Тогда
|
||||
Возврат Буквы;
|
||||
ИначеЕсли ВерхнийРегистр Тогда
|
||||
Возврат ВРег(Буквы);
|
||||
Иначе
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
11
exts/yaxunit/src/CommonModules/ЮТСтроки/ЮТСтроки.mdo
Normal file
11
exts/yaxunit/src/CommonModules/ЮТСтроки/ЮТСтроки.mdo
Normal 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="c2bf54a9-2026-41ed-8971-af1be24299c2">
|
||||
<name>ЮТСтроки</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Строки</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -166,28 +166,26 @@
|
||||
// Генерирует и возвращает случайную строку указанной длины, строка может содержать цифры, английские и русские буквы в разных регистрах.
|
||||
//
|
||||
// Параметры:
|
||||
// Длина - Число - Длина генерируемой строки, без учета префикса
|
||||
// Длина - Число - Длина генерируемой строки с учетом префикса
|
||||
// Префикс - Строка - Префикс строки
|
||||
// ДопустимыеСимволы - Строка - Допустимые символы из которая будет формироваться случайно строка
|
||||
// ДопустимыеСимволы - Строка - Допустимые символы из которая будет формироваться случайная строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Случайная строка
|
||||
Функция СлучайнаяСтрока(Знач Длина = 10, Префикс = "", ДопустимыеСимволы = Неопределено) Экспорт
|
||||
Функция СлучайнаяСтрока(Знач Длина = 10, Префикс = "", Знач ДопустимыеСимволы = Неопределено) Экспорт
|
||||
|
||||
Если ДопустимыеСимволы = Неопределено Тогда
|
||||
Строка = "1234567890абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||
Иначе
|
||||
Строка = ДопустимыеСимволы;
|
||||
ДопустимыеСимволы = ЮТСтроки.РусскиеБуквы(Истина, Истина) + ЮТСтроки.АнглийскиеБуквы(Истина, Истина) + ЮТСтроки.Цифры();
|
||||
КонецЕсли;
|
||||
|
||||
Результат = "";
|
||||
КоличествоСимволов = СтрДлина(Строка);
|
||||
КоличествоСимволов = СтрДлина(ДопустимыеСимволы);
|
||||
|
||||
Длина = Длина - СтрДлина(Префикс);
|
||||
|
||||
Для Инд = 1 По Длина Цикл
|
||||
|
||||
Результат = Результат + Сред(Строка, СлучайноеЧисло(1, КоличествоСимволов), 1);
|
||||
Результат = Результат + Сред(ДопустимыеСимволы, СлучайноеЧисло(1, КоличествоСимволов), 1);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@ -195,6 +193,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращяет случайный валидный идентификатор
|
||||
//
|
||||
// Параметры:
|
||||
// Длина - Число - Длина генерируемой строки с учетом префикса
|
||||
// Префикс - Строка - Префикс строки
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Случайный идентификатор
|
||||
Функция СлучайныйИдентификатор(Знач Длина = 10, Знач Префикс = "") Экспорт
|
||||
|
||||
НаборСимволов = "_" + ЮТСтроки.РусскиеБуквы(Истина, Истина) + ЮТСтроки.АнглийскиеБуквы(Истина, Истина);
|
||||
|
||||
Если ПустаяСтрока(Префикс) Тогда
|
||||
Префикс = СлучайнаяСтрока(1, "", НаборСимволов);
|
||||
КонецЕсли;
|
||||
|
||||
НаборСимволов = НаборСимволов + ЮТСтроки.Цифры();
|
||||
|
||||
Возврат СлучайнаяСтрока(Длина, Префикс, НаборСимволов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Генерирует и возвращает случайную дату в указанном интервале (если не указан используется `0001-01-01 - 3999-12-31`).
|
||||
//
|
||||
// Параметры:
|
||||
@ -427,7 +447,7 @@
|
||||
ЗаменяемыеСтроки = ЮТТестовыеДанныеСлужебный.ПодстрокиДляЗаменыВИменахСвойств();
|
||||
|
||||
ЗначениеКолонки = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Текст;
|
||||
Пока ЗначениеЗаполнено(ЗначениеКолонки) Цикл
|
||||
Пока ЗначениеЗаполнено(ЗначениеКолонки) Цикл
|
||||
|
||||
Для Каждого Замена Из ЗаменяемыеСтроки Цикл
|
||||
ПодстрокаПоиска = Замена.Ключ;
|
||||
@ -435,7 +455,7 @@
|
||||
ИмяКолонки = СтрЗаменить(ЗначениеКолонки, ПодстрокаПоиска, ПодстрокаЗамены);
|
||||
КонецЦикла;
|
||||
|
||||
Сведения = Новый Структура("НомерКолонки, ИмяКолонки", НомерКолонки, ИмяКолонки);
|
||||
Сведения = Новый Структура("НомерКолонки, ИмяКолонки", НомерКолонки, ИмяКолонки);
|
||||
СведенияКолонок.Добавить(Сведения);
|
||||
|
||||
НомерКолонки = НомерКолонки + 1;
|
||||
@ -445,14 +465,14 @@
|
||||
|
||||
НомерСтроки = НомерСтроки + 1;
|
||||
|
||||
Пока ЕстьЗначенияВСтроке(ТабличныйДокумент, НомерСтроки, СведенияКолонок) Цикл
|
||||
Пока ЕстьЗначенияВСтроке(ТабличныйДокумент, НомерСтроки, СведенияКолонок) Цикл
|
||||
|
||||
Структура = Новый Структура;
|
||||
|
||||
Для Каждого Сведения Из СведенияКолонок Цикл
|
||||
Для Каждого Сведения Из СведенияКолонок Цикл
|
||||
Значение = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, Сведения.НомерКолонки).Текст);
|
||||
Структура.Вставить(Сведения.ИмяКолонки, Значение);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
МассивДанных.Добавить(Структура);
|
||||
|
||||
@ -558,15 +578,15 @@
|
||||
// * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТТестовыеДанные_ТаблицыЗначений.ТаблицаЗначенийИзМассиваСтруктур
|
||||
Функция ТаблицаЗначенийИзТабличногоДокумента(ТабличныйДокумент, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
Функция ТаблицаЗначенийИзТабличногоДокумента(ТабличныйДокумент, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
ЗаменяемыеЗначения = Неопределено, ПараметрыСозданияОбъектов = Неопределено) Экспорт
|
||||
|
||||
Параметры = ЮТТестовыеДанные_ТаблицыЗначений.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
|
||||
ИсточникДанных = СтруктурыТабличногоДокумента(ТабличныйДокумент);
|
||||
ТаблицаЗначений = ЮТТестовыеДанные_ТаблицыЗначений.ТипизированнаяТаблицаЗначений(
|
||||
ИсточникДанных,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
ИсточникДанных,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
ЗаменяемыеЗначения,
|
||||
Параметры
|
||||
);
|
||||
@ -586,15 +606,15 @@
|
||||
// * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТТестовыеДанные_ТаблицыЗначений.ТаблицаЗначенийИзМассиваСтруктур
|
||||
Функция ТаблицаЗначенийИзТаблицыMarkDown(Строки, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
Функция ТаблицаЗначенийИзТаблицыMarkDown(Строки, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
ЗаменяемыеЗначения = Неопределено, ПараметрыСозданияОбъектов = Неопределено) Экспорт
|
||||
|
||||
Параметры = ЮТТестовыеДанные_ТаблицыЗначений.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
|
||||
ИсточникДанных = ТаблицаMarkDown(Строки);
|
||||
ТаблицаЗначений = ЮТТестовыеДанные_ТаблицыЗначений.ТипизированнаяТаблицаЗначений(
|
||||
ИсточникДанных,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
ИсточникДанных,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
ЗаменяемыеЗначения,
|
||||
Параметры
|
||||
);
|
||||
@ -644,4 +664,4 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
@ -92,6 +92,7 @@
|
||||
<commonModules>CommonModule.ЮТСобытия</commonModules>
|
||||
<commonModules>CommonModule.ЮТСравнениеКлиентСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТСравнениеСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТСтроки</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанные</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанные_ТаблицыЗначений</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанныеВызовСервера</commonModules>
|
||||
|
@ -29,6 +29,7 @@
|
||||
.ДобавитьСерверныйТест("СтруктурыТабличногоДокумента")
|
||||
.ДобавитьСерверныйТест("ТаблицаЗначенийИзТабличногоДокумента")
|
||||
.ДобавитьСерверныйТест("ТаблицаЗначенийИзТаблицыMarkDown")
|
||||
.ДобавитьТест("СлучайныйИдентификатор")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -91,6 +92,22 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СлучайныйИдентификатор() Экспорт
|
||||
|
||||
Проверка = Новый Структура();
|
||||
|
||||
Для Инд = 1 По 100 Цикл
|
||||
|
||||
Идентификатор = ЮТест.Данные().СлучайныйИдентификатор(Инд);
|
||||
|
||||
ЮТест.ОжидаетЧто(Проверка)
|
||||
.Метод("Вставить").Параметр(Идентификатор)
|
||||
.НеВыбрасываетИсключение(, "Сформирован не валидный идентификатор: " + Идентификатор);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Если Сервер Тогда
|
||||
|
||||
Процедура СтруктурыТабличногоДокумента() Экспорт
|
||||
@ -116,7 +133,7 @@
|
||||
.Свойство("[2].Цена").Равно("1000000")
|
||||
.Свойство("[2].Количество").Равно("1")
|
||||
.Свойство("[2].Сумма").Равно("1000000")
|
||||
;
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -143,9 +160,9 @@
|
||||
// Вызов тестируемого сценария
|
||||
|
||||
ТаблицаРезультатов = ЮТест.Данные().ТаблицаЗначенийИзТабличногоДокумента(
|
||||
ИсходныеДанные,
|
||||
ИсходныеДанные,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
КэшЗначений,
|
||||
ЗаменяемыеЗначения
|
||||
);
|
||||
|
||||
@ -172,7 +189,7 @@
|
||||
.Свойство("[2].Товар.Описание").Заполнено()
|
||||
.Свойство("[2].Количество").Равно(1)
|
||||
.Свойство("[2].Цена").Равно(1000000)
|
||||
;
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -180,7 +197,7 @@
|
||||
|
||||
// Подготовка тестового окружения
|
||||
|
||||
ИсходныеДанные =
|
||||
ИсходныеДанные =
|
||||
"| Товар | Цена | Количество | Сумма |
|
||||
||---------|-------|------------|-------|
|
||||
|| Товар 1 | 100 | 1 | 100 |
|
||||
@ -197,7 +214,7 @@
|
||||
// Вызов тестируемого сценария
|
||||
|
||||
ТаблицаРезультатов = ЮТест.Данные().ТаблицаЗначенийИзТаблицыMarkDown(
|
||||
ИсходныеДанные,
|
||||
ИсходныеДанные,
|
||||
ОписанияТипов
|
||||
);
|
||||
|
||||
@ -218,10 +235,10 @@
|
||||
.Свойство("[2].Количество").Равно(1)
|
||||
.Свойство("[2].Цена").Равно(300.9)
|
||||
.Свойство("[2].Сумма").Равно(300.9)
|
||||
;
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецЕсли
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
x
Reference in New Issue
Block a user