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

Тесты запросов

This commit is contained in:
alkoleft 2023-05-03 01:27:46 +03:00
parent 2ffab93a7c
commit 8ed04b7f99
4 changed files with 118 additions and 29 deletions

View File

@ -72,31 +72,6 @@
КонецФункции
// Описание простого запроса
//
// Возвращаемое значение:
// Структура - Описание запроса:
// * ИмяТаблицы - Строка -
// * ВыбираемыеПоля - Структура - Выражения выбираемых полей:
// * Ключ - Строка - Имя поля
// * Значение - Строка - выражение поля
// * КоличествоЗаписей - Число, Неопределено - Ограничение количества выбираемых записей
// * Условия - Массив из Строка - Коллекция выражений условий, которые будут объединены через `И`
// * ЗначенияПараметров - Структура - Набор параметров запроса
Функция ОписаниеЗапроса() Экспорт
Описание = Новый Структура();
Описание.Вставить("ИмяТаблицы", "");
Описание.Вставить("ВыбираемыеПоля", Новый Структура);
Описание.Вставить("КоличествоЗаписей", Неопределено);
Описание.Вставить("Условия", Новый Массив());
Описание.Вставить("ЗначенияПараметров", Новый Структура());
//@skip-check constructor-function-return-section
Возврат Описание;
КонецФункции
// Возвращает результат выполнения простого запроса.
//
// Параметры:
@ -128,4 +103,29 @@
КонецФункции
// Описание простого запроса
//
// Возвращаемое значение:
// Структура - Описание запроса:
// * ИмяТаблицы - Строка -
// * ВыбираемыеПоля - Структура - Выражения выбираемых полей:
// * Ключ - Строка - Имя поля
// * Значение - Строка - выражение поля
// * КоличествоЗаписей - Число, Неопределено - Ограничение количества выбираемых записей
// * Условия - Массив из Строка - Коллекция выражений условий, которые будут объединены через `И`
// * ЗначенияПараметров - Структура - Набор параметров запроса
Функция ОписаниеЗапроса() Экспорт
Описание = Новый Структура();
Описание.Вставить("ИмяТаблицы", "");
Описание.Вставить("ВыбираемыеПоля", Новый Структура);
Описание.Вставить("КоличествоЗаписей", Неопределено);
Описание.Вставить("Условия", Новый Массив());
Описание.Вставить("ЗначенияПараметров", Новый Структура());
//@skip-check constructor-function-return-section
Возврат Описание;
КонецФункции
#КонецОбласти

View File

@ -78,12 +78,12 @@
ТекстЗапроса = СтрШаблон("ВЫБРАТЬ ПЕРВЫЕ 1 %1 ИЗ %2 ГДЕ Ссылка = &Ссылка", ИменаРеквизитов, ИмяТаблицы);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр(Ссылка, Ссылка);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Если ОдинРеквизит Тогда
Возврат ЗначенияИзЗапроса(Запрос, ИменаРеквизитов);
Возврат ЗначениеИзЗапроса(Запрос, 0);
Иначе
Возврат ЗначениеИзЗапроса(Запрос, ИменаРеквизитов);
Возврат ЗначенияИзЗапроса(Запрос, ИменаРеквизитов);
КонецЕсли;
КонецФункции

View File

@ -0,0 +1,89 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты.ВТранзакции()
.ДобавитьТест("ЗначенияРеквизитов")
.ДобавитьТест("ЗначениеРеквизита")
.ДобавитьТест("ТаблицаСодержитЗаписи")
.ДобавитьТест("РезультатЗапроса")
.ДобавитьТест("РезультатПустой")
;
КонецПроцедуры
Процедура ЗначенияРеквизитов() Экспорт
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
.Фикция("Наименование")
.Фикция("Код")
.Фикция("Поставщик");
Данные = Конструктор.ДанныеОбъекта();
Ссылка = Конструктор.Записать();
ДанныеСсылки = ЮТЗапросы.ЗначенияРеквизитов(Ссылка, "Наименование");
ЮТест.ОжидаетЧто(ДанныеСсылки)
.ИмеетТип("Структура")
.Заполнено()
.Свойство("Наименование").Равно(Данные.Наименование);
ДанныеСсылки = ЮТЗапросы.ЗначенияРеквизитов(Ссылка, "Код, Поставщик");
ЮТест.ОжидаетЧто(ДанныеСсылки)
.ИмеетТип("Структура")
.Заполнено()
.Свойство("Код").Равно(Данные.Код)
.Свойство("Поставщик").Равно(Данные.Поставщик);
ДанныеСсылки = ЮТЗапросы.ЗначенияРеквизитов(ПредопределенноеЗначение("Справочник.Товары.ПустаяСсылка"), "Код, Поставщик");
ЮТест.ОжидаетЧто(ДанныеСсылки)
.ИмеетТип("Структура")
.Заполнено()
.Свойство("Код").Равно(Неопределено)
.Свойство("Поставщик").Равно(Неопределено);
КонецПроцедуры
Процедура ЗначениеРеквизита() Экспорт
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары")
.Фикция("Наименование")
.Фикция("Код")
.Фикция("Поставщик");
Данные = Конструктор.ДанныеОбъекта();
Ссылка = Конструктор.Записать();
ЮТест.ОжидаетЧто(ЮТЗапросы.ЗначениеРеквизита(Ссылка, "Наименование"))
.ИмеетТип("Строка")
.Заполнено()
.Равно(Данные.Наименование);
ЮТест.ОжидаетЧто(ЮТЗапросы.ЗначениеРеквизита(Ссылка, "Поставщик"))
.Равно(Данные.Поставщик);
ЮТест.ОжидаетЧто(ЮТЗапросы.ЗначениеРеквизита(Ссылка, "Код, Поставщик"))
.Равно(Данные.Код);
ЮТест.ОжидаетЧто(ЮТЗапросы.ЗначениеРеквизита(ПредопределенноеЗначение("Справочник.Товары.ПустаяСсылка"), "Наименование"))
.Равно(Неопределено);
КонецПроцедуры
#КонецОбласти

View File

@ -20,7 +20,7 @@
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
ЮТТесты.ВТранзакции()
.ДобавитьТест("СодержитЗаписи")
.ДобавитьТест("НеСодержитЗаписи")
.ДобавитьТест("СообщенияОбОшибках")