-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathevents.os
198 lines (132 loc) · 11.3 KB
/
events.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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
Перем юТест;
Перем СчетчикВызовов;
Перем ПараметрыВызова;
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("ТестДолжен_ПроверитьПодпискуНаСобытие");
ВсеТесты.Добавить("ТестДолжен_ПроверитьОтпискуОтСобытия");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПодпискуНаСобытиеВВидеЛокальнойФункции");
ВсеТесты.Добавить("ТестДолжен_ПроверитьОтпискуОтСобытияВВидеЛокальнойФункции");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоПодпискаПоОбъектуВидитТолькоЭкспорт");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПодпискуНаСобытиеВВидеВыражения");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПодпискуСОбработчикомВВидеВыражения");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоУИсточникаМожетБытьНесколькоСобытий");
Возврат ВсеТесты;
КонецФункции
Процедура ПередЗапускомТеста() Экспорт
СчетчикВызовов = 0;
ПараметрыВызова = Неопределено;
КонецПроцедуры
Процедура СгенерироватьСобытие(Знач ИмяСобытия, Знач Параметры) Экспорт
ВызватьСобытие(ИмяСобытия, Параметры);
КонецПроцедуры
Процедура ОбработчикСобытия(Параметр1, Параметр2) Экспорт
СчетчикВызовов = СчетчикВызовов + 1;
ПараметрыВызова = Новый Структура("Параметр1, Параметр2", Параметр1, Параметр2);
КонецПроцедуры
Процедура ОбработчикСобытияВнутр(Параметр1, Параметр2)
ОбработчикСобытия(Параметр1, Параметр2);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПодпискуНаСобытие() Экспорт
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник = Новый ТестСобытий;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(0, СчетчикВызовов);
ДобавитьОбработчик Источник.МоеСобытие, ЭтотОбъект.ОбработчикСобытия;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(1, СчетчикВызовов);
юТест.ПроверитьРавенство("П1", ПараметрыВызова.Параметр1);
юТест.ПроверитьРавенство("П2", ПараметрыВызова.Параметр2);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПодпискуНаСобытиеВВидеВыражения() Экспорт
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник = Новый ТестСобытий;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(0, СчетчикВызовов);
ДобавитьОбработчик Источник["Мое"+"Событие"], ЭтотОбъект.ОбработчикСобытия;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(1, СчетчикВызовов);
юТест.ПроверитьРавенство("П1", ПараметрыВызова.Параметр1);
юТест.ПроверитьРавенство("П2", ПараметрыВызова.Параметр2);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПодпискуСОбработчикомВВидеВыражения() Экспорт
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник = Новый ТестСобытий;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(0, СчетчикВызовов);
ДобавитьОбработчик Источник.МоеСобытие, ЭтотОбъект["Обработчик"+"События"];
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(1, СчетчикВызовов);
юТест.ПроверитьРавенство("П1", ПараметрыВызова.Параметр1);
юТест.ПроверитьРавенство("П2", ПараметрыВызова.Параметр2);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьОтпискуОтСобытия() Экспорт
Источник = Новый ТестСобытий;
ДобавитьОбработчик Источник.МоеСобытие, ЭтотОбъект.ОбработчикСобытия;
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.ПроверитьРавенство(1, СчетчикВызовов);
УдалитьОбработчик Источник.МоеСобытие, ЭтотОбъект.ОбработчикСобытия;
СчетчикВызовов = 0;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.ПроверитьРавенство(0, СчетчикВызовов);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПодпискуНаСобытиеВВидеЛокальнойФункции() Экспорт
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник = Новый ТестСобытий;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(0, СчетчикВызовов);
ДобавитьОбработчик Источник.МоеСобытие, ОбработчикСобытияВнутр;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.Проверитьравенство(1, СчетчикВызовов);
юТест.ПроверитьРавенство("П1", ПараметрыВызова.Параметр1);
юТест.ПроверитьРавенство("П2", ПараметрыВызова.Параметр2);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьОтпискуОтСобытияВВидеЛокальнойФункции() Экспорт
Источник = Новый ТестСобытий;
ОбработчикСобытияВнутр = 42; // проверим, что все равно выберет метод, а не переменную
ДобавитьОбработчик Источник.МоеСобытие, ОбработчикСобытияВнутр;
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.ПроверитьРавенство(1, СчетчикВызовов);
УдалитьОбработчик Источник.МоеСобытие, ОбработчикСобытияВнутр;
СчетчикВызовов = 0;
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.ПроверитьРавенство(0, СчетчикВызовов);
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоПодпискаПоОбъектуВидитТолькоЭкспорт() Экспорт
Источник = Новый ТестСобытий;
Попытка
ДобавитьОбработчик Источник.МоеСобытие, ЭтотОбъект.ОбработчикСобытияВнутр;
Исключение
юТест.ПроверитьБольше(Найти(ОписаниеОшибки(), "Метод объекта не обнаружен"), 0);
Возврат;
КонецПопытки;
ВызватьИсключение "Ожидали исключение, но его не было";
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоУИсточникаМожетБытьНесколькоСобытий() Экспорт
Источник = Новый ТестСобытий;
ДобавитьОбработчик Источник.МоеСобытие, ОбработчикСобытияВнутр;
ДобавитьОбработчик Источник.МоеСобытиеВторое, ОбработчикСобытияВнутр;
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("П1");
МассивПараметров.Добавить("П2");
Источник.СгенерироватьСобытие("МоеСобытие", МассивПараметров);
юТест.ПроверитьРавенство(1, СчетчикВызовов);
Источник.СгенерироватьСобытие("МоеСобытиеВторое", МассивПараметров);
юТест.ПроверитьРавенство(2, СчетчикВызовов);
КонецПроцедуры
ПодключитьСценарий(ТекущийСценарий().Источник, "ТестСобытий");