mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Исправлены замечания сонар + тест паузы
This commit is contained in:
parent
5a0b015a32
commit
cd2bc49d26
@ -18,6 +18,10 @@
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Возвращает внешнюю компоненту, реализующую паузу
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ВнешнийОбъект
|
||||
Функция Пауза() Экспорт
|
||||
|
||||
Возврат СоздатьКомпоненту(ОписаниеКомпонентыПауза());
|
||||
@ -28,34 +32,65 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Создает внешнюю компоненту по описанию
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеКомпоненты - см. ОписаниеКомпоненты
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ВнешнийОбъект
|
||||
Функция СоздатьКомпоненту(ОписаниеКомпоненты) Экспорт
|
||||
|
||||
ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяМакета, ОписаниеКомпоненты.ИмяКомпоненты, Истина);
|
||||
Возврат Новый (ОписаниеКомпоненты.ИмяКласса);
|
||||
Если ПодключитьКомпоненту(ОписаниеКомпоненты.ИмяМакета, ОписаниеКомпоненты.ИмяКомпоненты, Истина) Тогда
|
||||
Возврат Новый (ОписаниеКомпоненты.ИмяКласса);
|
||||
Иначе
|
||||
ВызватьИсключение "Не удалось подключить внешнюю компоненту " + ОписаниеКомпоненты.ИмяКласса;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Подключает внещнюю компоненту из макета
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяМакета - Строка - Имя макета, в котором хранится компонента
|
||||
// ИмяКомпоненты - Строка - Имя компоненты
|
||||
// Кэшировать - Булево - Кэшировать создание компоненты
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Успешность подключения
|
||||
Функция ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты, Кэшировать) Экспорт
|
||||
|
||||
Если Кэшировать Тогда
|
||||
Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты)
|
||||
Возврат ЮТПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Описание компоненты реализующей паузу.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ОписаниеКомпоненты
|
||||
Функция ОписаниеКомпонентыПауза() Экспорт
|
||||
|
||||
Возврат ОписаниеКомпоненты("ОбщийМакет.ЮТYaxUnitAddIn", "YaxUnitAddin", "Sleep");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеКомпоненты(ИмяМакета, ИмяКомпоненты, ИмяКласса)
|
||||
// Описание внешней компоненты.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяМакета - Строка - Имя макета, в котором хранится компонента
|
||||
// ИмяКомпоненты - Строка -Имя компоненты
|
||||
// ИмяКласса - Строка - Имя класса, по которому создается компонента
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура - Описание компоненты:
|
||||
// * ИмяМакета - Строка - Имя макета, в котором хранится компонента
|
||||
// * ИмяКомпоненты - Строка -Имя компоненты
|
||||
// * ИмяКласса - Строка - Имя класса
|
||||
Функция ОписаниеКомпоненты(ИмяМакета, ИмяКомпоненты, ИмяКласса) Экспорт
|
||||
|
||||
Описание = Новый Структура;
|
||||
Описание.Вставить("ИмяМакета", ИмяМакета);
|
||||
|
@ -27,7 +27,7 @@
|
||||
ИмяФайлаКомпоненты = ИмяФайлаКомпоненты(ЧтениеАрхива, ОперационнаяСистема, Архитектура);
|
||||
|
||||
Если ИмяФайлаКомпоненты = Неопределено Тогда
|
||||
ВызватьИсключение "Компонента не поддреживает клиентское окружение";
|
||||
ВызватьИсключение "Компонента не поддерживает клиентское окружение";
|
||||
КонецЕсли;
|
||||
|
||||
Данные = ДвоичныеДанныеЭлемента(ЧтениеАрхива, ИмяФайлаКомпоненты);
|
||||
@ -55,30 +55,9 @@
|
||||
|
||||
Пока ЧтениеXML.Прочитать() Цикл
|
||||
|
||||
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И СтрСравнить(ЧтениеXML.Имя, "component") = 0 Тогда
|
||||
|
||||
ОперационнаяСистемаУзла = Неопределено;
|
||||
АрхитектураУзла = Неопределено;
|
||||
ПутьУзла = Неопределено;
|
||||
|
||||
Для Инд = 0 По ЧтениеXML.КоличествоАтрибутов() - 1 Цикл
|
||||
|
||||
ИмяАтрибута = ЧтениеXML.ЛокальноеИмяАтрибута(Инд);
|
||||
Если СтрСравнить(ИмяАтрибута, "os") = 0 Тогда
|
||||
ОперационнаяСистемаУзла = ЧтениеXML.ЗначениеАтрибута(Инд);
|
||||
ИначеЕсли СтрСравнить(ИмяАтрибута, "path") = 0 Тогда
|
||||
ПутьУзла = ЧтениеXML.ЗначениеАтрибута(Инд);
|
||||
ИначеЕсли СтрСравнить(ИмяАтрибута, "arch") = 0 Тогда
|
||||
АрхитектураУзла = ЧтениеXML.ЗначениеАтрибута(Инд);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОперационнаяСистема = ОперационнаяСистемаУзла И Архитектура = АрхитектураУзла Тогда
|
||||
ИмяФайлаКомпоненты = ПутьУзла;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоПодходящийУзел(ЧтениеXML, ОперационнаяСистема, Архитектура) Тогда
|
||||
ИмяФайлаКомпоненты = ЧтениеXML.ЗначениеАтрибута("path");
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@ -89,6 +68,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоПодходящийУзел(ЧтениеXML, ОперационнаяСистема, Архитектура)
|
||||
|
||||
Если ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента ИЛИ СтрСравнить(ЧтениеXML.Имя, "component") <> 0 Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ОперационнаяСистемаУзла = ЧтениеXML.ЗначениеАтрибута("os");
|
||||
АрхитектураУзла = ЧтениеXML.ЗначениеАтрибута("arch");
|
||||
|
||||
Возврат ОперационнаяСистема = ОперационнаяСистемаУзла И Архитектура = АрхитектураУзла;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДвоичныеДанныеЭлемента(ЧтениеАрхива, ИмяФайла)
|
||||
|
||||
ЭлементФайла = Неопределено;
|
||||
|
@ -44,26 +44,32 @@
|
||||
ОперационнаяСистема = Неопределено;
|
||||
Архитектура = Неопределено;
|
||||
|
||||
Linux = "Linux";
|
||||
Windows = "Windows";
|
||||
MacOS = "MacOS";
|
||||
x86 = "i386";
|
||||
x64 = "x86_64";
|
||||
|
||||
ТипКлиентскойПлатформы = Информация.ТипПлатформы;
|
||||
|
||||
Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда
|
||||
ОперационнаяСистема = "Linux";
|
||||
Архитектура = "i386";
|
||||
ОперационнаяСистема = Linux;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда
|
||||
ОперационнаяСистема = "Linux";
|
||||
Архитектура = "x86_64";
|
||||
ОперационнаяСистема = Linux;
|
||||
Архитектура = x64;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда
|
||||
ОперационнаяСистема = "Windows";
|
||||
Архитектура = "i386";
|
||||
ОперационнаяСистема = Windows;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда
|
||||
ОперационнаяСистема = "Windows";
|
||||
Архитектура = "x86_64";
|
||||
ОперационнаяСистема = Windows;
|
||||
Архитектура = x64;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда
|
||||
ОперационнаяСистема = "MacOS";
|
||||
Архитектура = "x86_64";
|
||||
ОперационнаяСистема = MacOS;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
|
||||
ОперационнаяСистема = "MacOS";
|
||||
Архитектура = "x86_64";
|
||||
ОперационнаяСистема = MacOS;
|
||||
Архитектура = x64;
|
||||
Иначе
|
||||
ВызватьИсключение "Неподдерживаемый тип платформы";
|
||||
КонецЕсли;
|
||||
@ -82,7 +88,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЗаписатьВРеестр(ФайлРеестра, ИмяФайла)
|
||||
Процедура ЗаписатьВРеестр(ФайлРеестра, ИмяФайла)
|
||||
|
||||
Данные = Новый ДвоичныеДанные(ФайлРеестра);
|
||||
Текст = ПолучитьСтрокуИзДвоичныхДанных(Данные);
|
||||
@ -93,7 +99,7 @@
|
||||
| <component path=""%1"" type=""native""/>
|
||||
|</registry>", ИмяФайла);
|
||||
ИначеЕсли СтрНайти(Текст, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна
|
||||
Возврат Неопределено;
|
||||
Возврат;
|
||||
Иначе // Добавляем компоненту
|
||||
Запись = СтрШаблон(" <component path=""%1"" type=""native""/>", ИмяФайла);
|
||||
Текст = СтрЗаменить(Текст, "</registry>", Запись + Символы.ПС + "</registry>");
|
||||
@ -102,6 +108,6 @@
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Текст, КодировкаТекста.UTF8, Истина);
|
||||
Данные.Записать(ФайлРеестра);
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -64,7 +64,7 @@
|
||||
Макет = Менеджер.ПолучитьМакет(ЧастиИмени[2]);
|
||||
ИндексОбласти = 3;
|
||||
Иначе
|
||||
ВызватьИсключение СтрШаблон("Некорреткное имя макета `%1`", ИмяМакета);
|
||||
ВызватьИсключение СтрШаблон("Некорректное имя макета `%1`", ИмяМакета);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЧастиИмени.Количество() > ИндексОбласти Тогда
|
||||
|
@ -5,5 +5,5 @@
|
||||
<key>ru</key>
|
||||
<value>ЮТYax unit add in</value>
|
||||
</synonym>
|
||||
<templateType>BinaryData</templateType>
|
||||
<templateType>AddIn</templateType>
|
||||
</mdclass:CommonTemplate>
|
||||
|
@ -32,10 +32,14 @@
|
||||
|
||||
Процедура Пауза() Экспорт
|
||||
|
||||
ЮТОбщий.Пауза(0.001);
|
||||
ЮТОбщий.Пауза(0.01);
|
||||
ЮТОбщий.Пауза(0.1);
|
||||
Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
ЮТОбщий.Пауза(1);
|
||||
ЮТОбщий.Пауза(1);
|
||||
ЮТОбщий.Пауза(1);
|
||||
Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
|
||||
|
||||
ЮТест.ОжидаетЧто(Дельта)
|
||||
.МеждуИсключаяГраницы(3010, 3050);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user