-
Notifications
You must be signed in to change notification settings - Fork 127
/
Copy pathObjectModule.bsl
417 lines (323 loc) · 41.1 KB
/
ObjectModule.bsl
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
Перем КонтекстЯдра;
Перем Ожидаем;
Перем ВременныеФайлы;
Перем КомандныйФайл;
Перем Конвертер;
// Переменная с путем к обработке в файловой системы
// Используется в случаях, когда обработка запущена из встроенного в конфигурацию браузера тестов,
// т.к. в этом случае в свойстве ИспользуемоеИмяФайла содержится адрес временного хранилища, а не непосредственный путь
Перем ПутьКФайлуПолный Экспорт;
//{ интерфейс тестирования
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD");
ВременныеФайлы = КонтекстЯдра.Плагин("ВременныеФайлы");
КомандныйФайл = КонтекстЯдра.Плагин("КомандныйФайл");
КонецПроцедуры
Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт
НаборТестов.НачатьГруппу("Проверка преобразования текстов", Ложь);
НаборТестов.Добавить("ТестДолжен_ПолучитьУтилитуКонвертации", , "Получить утилиту конвертации");
НаборТестов.Добавить("ТестДолжен_ПроверитьЧтоТекстНеМеняетсяЕслиВТекстеНетПолучитьСписокТестов", , "Проверить, что текст не меняется, если в тексте нет ""ПолучитьСписокТестов""");
НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеИмениПараметра_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов", , "Получить имя параметра ""Контекст ядра"" из описания метода ""ПолучитьСписокТестов""");
НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеТела_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов", , "Получить тело из описания метода ""ПолучитьСписокТестов""");
НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеИмениГлобальнойПеременнойКонтекстаЯдра", , "Получить имя глобальной переменной контекста ядра");
НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеКоллекцииТестов", , "Получить коллекцию тестов");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3", "БазовыйТест_v3_Результат", Истина, Ложь), "Проверить конвертацию простейшего базового теста");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ДваТеста", "БазовыйТест_v3_ДваТеста_Результат", Истина, Ложь), "Проверить конвертацию, когда определено 2 теста");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ДваТеста_ИКодВокруг", "БазовыйТест_v3_ДваТеста_ИКодВокруг_Результат", Истина, Ложь), "Проверить конвертацию, когда определено 2 теста и есть код вокруг них");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ЕстьУтверждения", "БазовыйТест_v3_ЕстьУтверждения_Результат", Истина, Ложь), "Проверить конвертацию, когда есть утверждения через юТест.Проверить...");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ЕстьУтверждения_УФ", "БазовыйТест_v3_ЕстьУтверждения_УФ_Результат", Ложь, Ложь), "Проверить конвертацию (УФ), когда есть утверждения через юТест.Проверить...");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ", "БазовыйТест_v3_УФ_Результат", Ложь, Ложь), "Проверить конвертацию простейшего базового теста (УФ)");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ_ДвеКавычки", "БазовыйТест_v3_УФ_ДвеКавычки_Результат", Ложь, Истина), "Проверить конвертацию простейшего базового теста (УФ), когда две двойные кавычки (бывают внутри декодированного файла)");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ_ДваТеста", "БазовыйТест_v3_УФ_ДваТеста_Результат", Ложь, Ложь), "Проверить конвертацию, когда определено 2 теста (УФ)");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ_ДваТеста_ИКодВокруг", "БазовыйТест_v3_УФ_ДваТеста_ИКодВокруг_Результат", Ложь, Ложь), "Проверить конвертацию, когда определено 2 теста и есть код вокруг них (УФ)");
НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("РазныйРегистр", "РазныйРегистр_Результат", Истина, Ложь), "Проверить конвертацию, когда используется разный регистр символов");
НаборТестов.НачатьГруппу("Преобразование файла с одним тестом ОФ", Истина);
НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация");
НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог");
НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестом"), "Получить файл теста из макета ""ФайлСОднимТестом"" ");
НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файл теста со старым API");
НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайл", , "Преобразовать полученный файл");
НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файла теста");
НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученного теста");
НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы");
НаборТестов.НачатьГруппу("Преобразование файла с одним тестом УФ", Истина);
НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация");
НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог");
НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестомУФ"), "Получить файл теста из макета ""ФайлСОднимТестом"" ");
НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файл теста со старым API");
НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайл", , "Преобразовать полученный файл");
НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файла теста");
НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученного теста");
НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы");
НаборТестов.НачатьГруппу("Преобразование файлов из каталога", Истина);
НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация");
НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог");
НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестом"), "Получить файл теста из макета ""ФайлСОднимТестом"" ");
НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестомУФ"), "Получить файл теста из макета ""ФайлСОднимТестомУФ"" ");
НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файлы теста со старым API");
НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайлыИзВременногоКаталога", НаборТестов.ПараметрыТеста(Ложь), "Преобразовать файлы из каталога");
НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файлов тестов");
НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученных тестов");
НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы");
НаборТестов.НачатьГруппу("Преобразование файлов из каталога и подкаталога", Истина);
НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация");
НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог");
НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйПодКаталогДляСборкиРазборки", , "Подготовить временный подкаталог");
НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестом"), "Получить файл теста из макета ""ФайлСОднимТестом"" ");
НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестомУФ"), "Получить файл теста из макета ""ФайлСОднимТестомУФ"" ");
НаборТестов.Добавить("ТестДолжен_ПеренестиВторойФайлТестаВПодкаталог", , "Перенести второй файл теста в подкаталог");
НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файлы теста со старым API");
НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайлыИзВременногоКаталога", НаборТестов.ПараметрыТеста(Истина), "Преобразовать файлы из каталога рекурсивно");
НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файлов тестов");
НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученных тестов");
НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы");
КонецПроцедуры
//}
//{ блок юнит-тестов - сами тесты
Процедура ПередЗапускомТеста() Экспорт
Если КонтекстЯдра <> Неопределено
И КонтекстЯдра.ЭтоВстроеннаяОбработка Тогда
ИдентификаторКонвертераСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы("xddTestsConvertIntoRebornFormat", КонтекстЯдра.ИспользуемыйПрефиксПодсистемы);
Конвертер = Обработки[ИдентификаторКонвертераСПрефиксомПодсистемы].Создать();
Если ПеременнаяСодержитСвойство(Конвертер, "ИспользуемыйПрефиксПодсистемы") Тогда
Конвертер.ИспользуемыйПрефиксПодсистемы = КонтекстЯдра.ИспользуемыйПрефиксПодсистемы;
КонецЕсли;
Иначе
Конвертер = ВнешниеОбработки.Создать(ПутьКонвертера(), Ложь);
КонецЕсли;
СлужебныеПараметрыБраузераТестов = КонтекстЯдра.СлужебныеПараметрыОбработки();
Если ПеременнаяСодержитСвойство(ЭтотОбъект, "ИспользуемоеИмяФайла") Тогда
СлужебныеПараметрыБраузераТестов.Вставить("ИспользуемоеИмяФайла", ИспользуемоеИмяФайла);
КонецЕсли;
Конвертер.Инициализация(СлужебныеПараметрыБраузераТестов);
КонецПроцедуры
Процедура ТестДолжен_ВыполнитьИнициализацию() Экспорт
Контекст = Новый Структура;
КонтекстЯдра.СохранитьКонтекст(Контекст);
ДобавитьВКонтекст("НаборФайлов", Новый Массив);
КонецПроцедуры
Процедура ТестДолжен_УдалитьВременныеФайлы() Экспорт
Конвертер.УдалитьВременныеФайлы();
Конвертер = Неопределено;
ВременныеФайлы.Удалить();
КонецПроцедуры
Процедура ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки() Экспорт
ИмяКаталогаСборки = ВременныеФайлы.СоздатьКаталог_();
ДобавитьВКонтекст("ИмяКаталогаСборки", ИмяКаталогаСборки);
КонецПроцедуры
Процедура ТестДолжен_ПодготовитьВременныйПодКаталогДляСборкиРазборки() Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
ВременныйФайл = Новый Файл(ПолучитьИмяВременногоФайла(""));
Подкаталог = Новый Файл(Контекст.ИмяКаталогаСборки+"/"+ВременныйФайл.Имя);
СоздатьКаталог(Подкаталог.ПолноеИмя);
ДобавитьВКонтекст("ИмяПодКаталогаСборки", Подкаталог.ПолноеИмя);
КонецПроцедуры
Процедура ТестДолжен_ПеренестиВторойФайлТестаВПодкаталог() Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
ФайлТеста = Новый Файл(Контекст.НаборФайлов[1]);
ФайлПодКаталога = Новый Файл(Контекст.ИмяПодКаталогаСборки);
ФайлКонечный = Новый Файл(ФайлПодКаталога.ПолноеИмя+"/"+ФайлТеста.Имя);
ПереместитьФайл(ФайлТеста.ПолноеИмя, ФайлКонечный.ПолноеИмя);
Ожидаем.Что(ФайлКонечный.Существует(), "Файл должен быть перенесен, а его нет."+ФайлКонечный.ПолноеИмя).ЭтоИстина();
Ожидаем.Что(ФайлТеста.Существует(), "Файл-исходный должен быть уничтожен, а он существует."+ФайлТеста.ПолноеИмя).ЭтоЛожь();
Контекст.НаборФайлов[1] = ФайлКонечный.ПолноеИмя;
ДобавитьВКонтекст("НаборФайлов", Контекст.НаборФайлов); // иначе в УФ тесты не будут работать
КонецПроцедуры
Процедура ТестДолжен_ПолучитьФайлТестаИзМакета(ИмяМакета) Экспорт
МакетФайлаТеста = ПолучитьМакет(ИмяМакета);
Контекст = КонтекстЯдра.ПолучитьКонтекст();
ВременныйФайл = Новый Файл(ПолучитьИмяВременногоФайла("epf"));
ФайлТеста = Новый Файл(Контекст.ИмяКаталогаСборки+"/"+ВременныйФайл.Имя);
НаборФайлов = Контекст.НаборФайлов;
НаборФайлов.Добавить(ФайлТеста.ПолноеИмя);
МакетФайлаТеста.Записать(ФайлТеста.ПолноеИмя);
КонтекстЯдра.СохранитьКонтекст(Контекст);
КонецПроцедуры
Процедура ТестДолжен_ПреобразоватьФайл() Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл
ФайлТеста = Новый Файл(ФайлТеста);
РезультатыПреобразования = Конвертер.ПреобразоватьФайл(ФайлТеста, Истина);
Ожидаем.Что(РезультатыПреобразования.НайденоВнешнихОбработок, "РезультатыПреобразования.НайденоВнешнихОбработок").Равно(1);
Ожидаем.Что(РезультатыПреобразования.НайденоФайловТестов, "РезультатыПреобразования.НайденоФайловТестов").Равно(1);
Ожидаем.Что(РезультатыПреобразования.КонвертированоТестов, "РезультатыПреобразования.КонвертированоТестов").Равно(1);
КонецЦикла;
КонецПроцедуры
Процедура ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста() Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл
ФайлТеста = Новый Файл(ФайлТеста);
ФайлКопии = Новый Файл(ФайлТеста.Путь+"/"+ФайлТеста.ИмяБезРасширения +".orig.epf");
Ожидаем.Что(ФайлКопии.Существует(), "не удалось сделать копию-файла для файла "+ФайлТеста.ПолноеИмя +", ожидали файл копии "+ФайлКопии.ПолноеИмя).ЭтоИстина();
КонецЦикла;
КонецПроцедуры
Процедура ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI() Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла");
Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл
ФайлТеста = Новый Файл(ФайлТеста);
ФайлОбработкиСНовымAPI = Новый Файл(ФайлТеста.ПолноеИмя);
Попытка
ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя);
Исключение
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Сообщить(ТекстОшибки);
Если НайтиФайлы(ТекстОшибки, "Старый формат тестов в обработке тестов") = 0 Тогда
ВызватьИсключение ТекстОшибки;
КонецЕсли;
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Процедура ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI() Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла");
Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл
ФайлТеста = Новый Файл(ФайлТеста);
ФайлОбработкиСНовымAPI = Новый Файл(ФайлТеста.ПолноеИмя);
ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя);
ТестыОбработкиСНовымAPI = ДеревоТестов.Строки[0];
Ожидаем.Что(ТестыОбработкиСНовымAPI.СлучайныйПорядокВыполнения, "ТестыОбработкиСНовымAPI порядок выполнения").ЭтоИстина();
Ожидаем.Что(ТестыОбработкиСНовымAPI.Строки, "ТестыОбработкиСНовымAPI количество дочерних узлов").ИмеетДлину(1);
Элемент1 = ТестыОбработкиСНовымAPI.Строки[0];
Ожидаем.Что(Элемент1.Тип, "Элемент1.Тип").Равно(КонтекстЯдра.ТипыУзловДереваТестов.Элемент);
Ожидаем.Что(Элемент1.Путь, "Элемент1.Путь").Равно(ФайлОбработкиСНовымAPI.ПолноеИмя);
Ожидаем.Что(Элемент1.ИмяМетода, "Элемент1.ИмяМетода").Равно("Тест_ДваПлюсДва");
РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикФайла, ДеревоТестов);
Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.СостоянияТестов.Пройден);
Ожидаем.Что(РезультатТестирования.КоличествоТестов, "Количество тестов по результатам тестирования").Равно(ДеревоТестов.Строки.Количество());
КонецЦикла;
КонецПроцедуры
Процедура ТестДолжен_ПреобразоватьФайлыИзВременногоКаталога(ИскатьВПодкаталогах) Экспорт
Контекст = КонтекстЯдра.ПолучитьКонтекст();
РезультатыПреобразования = Конвертер.ПреобразоватьКаталог(Контекст.ИмяКаталогаСборки, ИскатьВПодкаталогах);
Ожидаем.Что(РезультатыПреобразования.НайденоВнешнихОбработок, "РезультатыПреобразования.НайденоВнешнихОбработок").Равно(2);
Ожидаем.Что(РезультатыПреобразования.НайденоФайловТестов, "РезультатыПреобразования.НайденоФайловТестов").Равно(2);
Ожидаем.Что(РезультатыПреобразования.КонвертированоТестов, "РезультатыПреобразования.КонвертированоТестов").Равно(2);
КонецПроцедуры
Процедура ТестДолжен_ПолучитьУтилитуКонвертации() Экспорт
Ожидаем.Что(Конвертер, "Ожидали конвертер не равен Неопределено, а получили другое").ЭтоНе().Равно(Неопределено);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоТекстНеМеняетсяЕслиВТекстеНетПолучитьСписокТестов() Экспорт
ИсходныйТекст = "Какой-то текст";
ТекстРезультата = Конвертер.ПреобразоватьТекст(ИсходныйТекст, Истина, Ложь);
Ожидаем.Что(ТекстРезультата, "Ожидали, что текст результата будет равен образцу, а это не так").Равно("");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеИмениПараметра_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов() Экспорт
ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст();
ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст);
Ожидаем.Что(ОписаниеМетода.ИмяПараметра_КонтекстЯдра, "Ожидали, что ОписаниеМетода.ИмяПараметра_КонтекстЯдра равен образцу, а это не так").Равно("ЮнитТестирование1");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеТела_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов() Экспорт
ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст();
ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст);
Образец = " юТест1 = ЮнитТестирование1;
| ВсеТесты1 = Новый Массив;
| ВсеТесты1.Добавить(""Тест_ДваПлюсДва"");
| Возврат ВсеТесты1;";
Ожидаем.Что(ОписаниеМетода.ТелоМетода, "Ожидали, что тело метода равно образцу, а это не так").Равно(Образец);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеИмениГлобальнойПеременнойКонтекстаЯдра() Экспорт
ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст();
ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст);
ОписаниеГлобальнойПеременнойКонтекстаЯдра = ОписаниеМетода.ОписаниеГлобальнойПеременнойКонтекстаЯдра;
ИмяГлобальнойПеременнойКонтекстаЯдра = ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя;
Ожидаем.Что(ИмяГлобальнойПеременнойКонтекстаЯдра, "Ожидали, что ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно("юТест1");
ТекстОписания = Сред(ИсходныйТекст, ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания, ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания);
Ожидаем.Что(ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания, "Ожидали, что ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания равно образцу, а это не так").Равно(0);
Ожидаем.Что(ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания, "Ожидали, что ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания равно образцу, а это не так").Равно(13);
Ожидаем.Что(ТекстОписания, "Ожидали, что ТекстОписания ГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно("Перем юТест1;");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеКоллекцииТестов() Экспорт
ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст();
ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст);
КоллекцияТестов = ОписаниеМетода.КоллекцияТестов;
Ожидаем.Что(КоллекцияТестов.Количество(), "Ожидали, что КоллекцияТестов.Количество() равно образцу, а это не так").Равно(1);
Ожидаем.Что(КоллекцияТестов[0], "Ожидали, что имя добавляемого теста равно образцу, а это не так").Равно("Тест_ДваПлюсДва");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьКонвертацию(ИсходныйМакет, МакетОбразецРезультата, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) Экспорт
//Конвертер.ВключитьЛог(Истина);
ИсходныйТекст = ПолучитьМакет(ИсходныйМакет).ПолучитьТекст();
ОбразецРезультата = ПолучитьМакет(МакетОбразецРезультата).ПолучитьТекст();
ТекстРезультата = Конвертер.ПреобразоватьТекст(ИсходныйТекст, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки);
ПоказатьНепустойЛогКонвертера();
СравнитьДлинныеСтроки(ОбразецРезультата, ТекстРезультата);
КонецПроцедуры
Процедура СравнитьДлинныеСтроки(Образец, Значение)
Для к = 1 По Мин(СтрЧислоСтрок(Значение), СтрЧислоСтрок(Образец)) Цикл
Ожидаем.Что(СтрПолучитьСтроку(Значение, к), "Ожидали, что СтрПолучитьСтроку(текст результата, "+к+") будет равен образцу, а это не так").Равно(СтрПолучитьСтроку(Образец, к));
КонецЦикла;
Ожидаем.Что(СтрЧислоСтрок(Значение), "Ожидали, что СтрЧислоСтрок(текст результата) будет равен образцу, а это не так").Равно(СтрЧислоСтрок(Образец));
Ожидаем.Что(Значение, "Ожидали, что текст результата будет равен образцу, а это не так").Равно(Образец);
Ожидаем.Что(СтрДлина(Значение), "Ожидали, что СтрДлина(текст результата) будет равен образцу, а это не так").Равно(СтрДлина(Образец));
КонецПроцедуры
Процедура ПоказатьНепустойЛогКонвертера()
Лог = Конвертер.ПолучитьЛог();
Если Не ПустаяСтрока(Лог) Тогда
Сообщить("Лог <" + Символы.ПС + Лог + Символы.ПС + ">");
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьВКонтекст(Ключ, Значение)
Контекст = КонтекстЯдра.ПолучитьКонтекст();
Контекст.Вставить(Ключ, Значение);
КонтекстЯдра.СохранитьКонтекст(Контекст);
КонецПроцедуры
Функция КаталогПроекта()
Файл = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла);
Возврат Файл.Путь;
КонецФункции
Функция ПутьКонвертера()
Возврат КаталогПроекта() + "\utils\xddTestsConvertIntoRebornFormat.epf";
КонецФункции
//}
// { Подсистема конфигурации xUnitFor1C
// Универсальная функция для проверки наличия
// свойств у значения любого типа данных
// Переменные:
// 1. Переменная - переменная любого типа,
// для которой необходимо проверить наличие свойства
// 2. ИмяСвойства - переменная типа "Строка",
// содержащая искомое свойства
//
Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства)
// Инициализируем структуру для теста
// с ключом (значение переменной "ИмяСвойства")
// и значением произвольного GUID'а
GUIDПроверка = Новый УникальныйИдентификатор;
СтруктураПроверка = Новый Структура;
СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка);
// Заполняем созданную структуру из переданного
// значения переменной
ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
// Если значение для свойства структуры осталось
// NULL, то искомое свойство не найдено,
// и наоборот.
Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы)
Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
Возврат Идентификатор;
КонецЕсли;
ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
Возврат Идентификатор;
Иначе
Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор;
КонецЕсли;
КонецФункции
Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы)
Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
Возврат Идентификатор;
КонецЕсли;
ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы);
Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда
Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса);
Иначе
Возврат Идентификатор;
КонецЕсли;
КонецФункции
// } Подсистема конфигурации xUnitFor1C