forked from oscript-library/opm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpackagedef-test.os
184 lines (125 loc) · 9.09 KB
/
packagedef-test.os
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#Использовать asserts
#Использовать "../src/core"
Перем юТест;
Функция ПолучитьСписокТестов(Знач Тестирование) Экспорт
юТест = Тестирование;
СписокТестов = Новый Массив;
СписокТестов.Добавить("ТестДолжен_ЗадатьОсновныеМетаданные");
СписокТестов.Добавить("ТестДолжен_ЗадатьЗависимостьБезВерсий");
СписокТестов.Добавить("ТестДолжен_ЗадатьЗависимостьОтВерсии");
СписокТестов.Добавить("ТестДолжен_ЗадатьЗависимостьОтВерсииНоНеБольшеДругой");
СписокТестов.Добавить("ТестДолжен_ЗадатьСпецификациюМодуля");
СписокТестов.Добавить("ТестДолжен_ЗадатьСпецификациюМодуляПовторно");
СписокТестов.Добавить("ТестДолжен_ЗадатьСпецификациюКласса");
СписокТестов.Добавить("ТестДолжен_ЗадатьСпецификациюКлассаПовторно");
СписокТестов.Добавить("ТестДолжен_ЗадатьСпецификациюПриложения");
Возврат СписокТестов;
КонецФункции
Процедура ПередЗапускомТеста() Экспорт
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
КонецПроцедуры
Функция СоздатьОпределениеПакета()
Пакет = Новый ОписаниеПакета();
Пакет.Имя("имя").Версия("1.0");
Возврат Пакет;
КонецФункции
Функция ТестДолжен_ЗадатьОсновныеМетаданные() Экспорт
Описание = СоздатьОпределениеПакета();
Описание.Имя("ТестовыйПакет")
.Автор("Я")
.Версия("1.0.5")
.ВерсияСреды("1.0")
.ВерсияМанифеста("1.0")
.Описание("Это пакет для тестирования")
.АдресАвтора("[email protected]")
;
Свойства = Описание.Свойства();
Ожидаем.Что(Свойства.Имя).Равно("ТестовыйПакет");
Ожидаем.Что(Свойства.Автор).Равно("Я");
Ожидаем.Что(Свойства.Версия).Равно("1.0.5");
Ожидаем.Что(Свойства.ВерсияСреды).Равно("1.0");
Ожидаем.Что(Свойства.ВерсияМанифеста).Равно("1.0");
Ожидаем.Что(Свойства.Описание).Равно("Это пакет для тестирования");
Ожидаем.Что(Свойства.АдресАвтора).Равно("[email protected]");
КонецФункции
Функция ТестДолжен_ЗадатьЗависимостьБезВерсий() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ЗависитОт("asserts")
.ЗависитОт("cmdline");
Ожидаем.Что(Пакет.Зависимость("asserts")).Заполнено();
Ожидаем.Что(Пакет.Зависимость("cmdline")).Заполнено();
КонецФункции
Функция ТестДолжен_ЗадатьЗависимостьОтВерсии() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ЗависитОт("asserts", "1.0")
.ЗависитОт("cmdline",">=2.1");
Ожидаем.Что(Пакет.Зависимость("asserts")).Заполнено();
Ожидаем.Что(Пакет.Зависимость("cmdline")).Заполнено();
Ожидаем.Что(Пакет.Зависимость("asserts").МинимальнаяВерсия).Равно("1.0");
Ожидаем.Что(Пакет.Зависимость("cmdline").МинимальнаяВерсия).Равно(">=2.1");
КонецФункции
Функция ТестДолжен_ЗадатьЗависимостьОтВерсииНоНеБольшеДругой() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ЗависитОт("cmdline",">=2.1","<3.0");
Ожидаем.Что(Пакет.Зависимость("cmdline")).Заполнено();
Ожидаем.Что(Пакет.Зависимость("cmdline").МинимальнаяВерсия).Равно(">=2.1");
Ожидаем.Что(Пакет.Зависимость("cmdline").МаксимальнаяВерсия).Равно("<3.0");
КонецФункции
Процедура ТестДолжен_ЗадатьСпецификациюМодуля() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ОпределяетМодуль("СуперДелательХорошо", "src/goodmaker.os");
Пакет.ОпределяетМодуль("СуперДелательХорошо2", "src/goodmaker2.os");
Классы = Пакет.Модули();
Ожидаем.Что(Классы).ИмеетДлину(2);
Ожидаем.Что(Классы[0].Идентификатор).Равно("СуперДелательХорошо");
Ожидаем.Что(Классы[0].Тип).Равно("Модуль");
Ожидаем.Что(Классы[0].Файл).Равно("src/goodmaker.os");
Ожидаем.Что(Классы[1].Идентификатор).Равно("СуперДелательХорошо2");
Ожидаем.Что(Классы[1].Тип).Равно("Модуль");
Ожидаем.Что(Классы[1].Файл).Равно("src/goodmaker2.os");
КонецПроцедуры
Процедура ТестДолжен_ЗадатьСпецификациюМодуляПовторно() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ОпределяетМодуль("СуперДелательХорошо", "src/goodmaker.os");
Попытка
Пакет.ОпределяетМодуль("СуперДелательХорошо", "src/goodmaker2.os");
Исключение
Если ИнформацияОбОшибке().Описание = "Уже определен модуль с именем СуперДелательХорошо" Тогда
Возврат;
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
юТест.ПрерватьТест("Ожидали что будет выброшено исключение");
КонецПроцедуры
Процедура ТестДолжен_ЗадатьСпецификациюКласса() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ОпределяетКласс("СуперДелательХорошо", "src/goodmaker.os");
Пакет.ОпределяетКласс("СуперДелательХорошо2", "src/goodmaker2.os");
Классы = Пакет.Классы();
Ожидаем.Что(Классы).ИмеетДлину(2);
Ожидаем.Что(Классы[0].Идентификатор).Равно("СуперДелательХорошо");
Ожидаем.Что(Классы[0].Тип).Равно("Класс");
Ожидаем.Что(Классы[0].Файл).Равно("src/goodmaker.os");
Ожидаем.Что(Классы[1].Идентификатор).Равно("СуперДелательХорошо2");
Ожидаем.Что(Классы[1].Тип).Равно("Класс");
Ожидаем.Что(Классы[1].Файл).Равно("src/goodmaker2.os");
КонецПроцедуры
Процедура ТестДолжен_ЗадатьСпецификациюКлассаПовторно() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ОпределяетКласс("СуперДелательХорошо", "src/goodmaker.os");
Попытка
Пакет.ОпределяетКласс("СуперДелательХорошо", "src/goodmaker2.os");
Исключение
Если ИнформацияОбОшибке().Описание = "Уже определен класс с именем СуперДелательХорошо" Тогда
Возврат;
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
юТест.ПрерватьТест("Ожидали что будет выброшено исключение");
КонецПроцедуры
Процедура ТестДолжен_ЗадатьСпецификациюПриложения() Экспорт
Пакет = СоздатьОпределениеПакета();
Пакет.ИсполняемыйФайл("src/main.os");
Утверждения.ПроверитьРавенство("src/main.os", Пакет.ИсполняемыеФайлы()[0].Путь);
КонецПроцедуры