forked from sfaqer/OneUnit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathАннотацияВключенНаОС.os
More file actions
75 lines (62 loc) · 3.75 KB
/
Copy pathАннотацияВключенНаОС.os
File metadata and controls
75 lines (62 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#Использовать annotations
#Использовать collectionos
Перем _ОперационнаяСистема; // Переданная операционная система
Перем ВозможныеОС; // Допустимые значения для указания операционной системы
// Аннотация для указания операционной системы, на которой должен выполняться тест
//
// Параметры:
// Значение - Строка - Операционная система, на которой должен выполняться тест,
// допустимо указывать только один из вариантов: `Windows`, `Linux`, `MacOS`
// Причина - Строка - Причина пропуска теста, которая будет указана в отчете о тестировании
//
// Пример:
// 1.
// // Выполнять только на Windows
// //
// &Тест
// &ВключенНаОС("Windows", "Сам красноглазь")
//
// 2.
// // Выполнять только на Linux
// //
// &Тест
// &ВключенНаОС("Linux", "Я и красноглазю")
//
// 3.
// // Выполнять только на MacOS
// //
// &Тест
// &ВключенНаОС("MacOS", "Что-то на богатом")
//
&Аннотация("ВключенНаОС")
&ВключенЕсли(Значение = "")
Процедура ПриСозданииОбъекта(
Значение,
&ПсевдонимДля(Аннотация = "ВключенЕсли", Параметр = "Причина", ПереноситьЗначениеПоУмолчанию = Истина)
Причина = "Выключен в текущей операционной системе"
)
_ОперационнаяСистема = Значение;
ВозможныеОС = Списки.ИзЭлементов("Windows", "Linux", "MacOS");
Если Не ВозможныеОС.Содержит(_ОперационнаяСистема) Тогда
ВызватьИсключение "В аннотации ВключенНаОС в качестве значения могут выступать только: " + ВозможныеОС;
КонецЕсли;
КонецПроцедуры
Процедура ПриРазворачиванииАннотации(ОпределениеАннотации, ПодчиненныеАннотации, ВладелецСвойства, Свойство) Экспорт
Аннотация = РаботаСАннотациями.НайтиАннотацию(ПодчиненныеАннотации, "ВключенЕсли");
Условие =
"() ->
| ТекущаяОС = Новый СистемнаяИнформация().ТипПлатформы;
|";
Если _ОперационнаяСистема = "Windows" Тогда
Условие = Условие + "Возврат ТекущаяОС = ТипПлатформы.Windows_x86 Или ТекущаяОС = ТипПлатформы.Windows_x86_64;";
ИначеЕсли _ОперационнаяСистема = "Linux" Тогда
Условие = Условие + "Возврат ТекущаяОС = ТипПлатформы.Linux_x86 Или ТекущаяОС = ТипПлатформы.Linux_x86_64;";
Иначе
Условие = Условие + "Возврат ТекущаяОС = ТипПлатформы.MacOS_x86 Или ТекущаяОС = ТипПлатформы.MacOS_x86_64;";
КонецЕсли;
РаботаСАннотациями.УстановитьЗначениеПараметраАннотации(
Аннотация,
"Значение",
Условие
);
КонецПроцедуры