-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathtimezones.os
183 lines (118 loc) · 9.35 KB
/
timezones.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
Перем юТест;
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеЧасовогоПояса");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеДопустимыхЧасовыхПоясов");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеПредставленияЧасовогоПояса");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеЧасовогоПоясаПоСтроке");
ВсеТесты.Добавить("ТестДолжен_ПроверитьКорректностьПолученияЧасовогоПоясаПоСтроке");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПреобразованиеВремениБезПараметров");
ВсеТесты.Добавить("ТестДолжен_ПроверитьПреобразованиеВремениСПараметрами");
ВсеТесты.Добавить("ТестДолжен_ПроверитьСмещениеUTC");
ВсеТесты.Добавить("ТестДолжен_ПроверитьНачалоНедели");
ВсеТесты.Добавить("ТестДолжен_ПроверитьКонецНедели");
Возврат ВсеТесты;
КонецФункции
Процедура ПередЗапускомТеста() Экспорт
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеЧасовогоПояса() Экспорт
ЧасовойПояс = ЧасовойПояс();
юТест.Проверить(ЗначениеЗаполнено(ЧасовойПояс), "Часовой пояс должен быть заполнен");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеДопустимыхЧасовыхПоясов() Экспорт
ЧасовыеПояса = ПолучитьДопустимыеЧасовыеПояса();
юТест.Проверить(ЧасовыеПояса.Количество() > 0, "Должны присутствовать доступные часовые пояса");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеПредставленияЧасовогоПояса() Экспорт
ЧасовойПояс = ЧасовойПояс();
Представление = ПредставлениеЧасовогоПояса(ЧасовойПояс);
юТест.Проверить(ЗначениеЗаполнено(Представление), "Представление часовой пояса должено быть заполнено");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПолучениеЧасовогоПоясаПоСтроке() Экспорт
ЧасовойПояс1 = ПредставлениеЧасовогоПояса("GMT+4");
ЧасовойПояс2 = ПредставлениеЧасовогоПояса("GMT+04:00");
юТест.Проверить(ЧасовойПояс1 = ЧасовойПояс2, "Часовые пояса должны быть равны");
ЧасовойПояс3 = ПредставлениеЧасовогоПояса("GMT+03:00");
юТест.Проверить(ЧасовойПояс1 <> ЧасовойПояс3, "Часовые пояса должны быть не равны");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьКорректностьПолученияЧасовогоПоясаПоСтроке() Экспорт
Попытка
ЧасовойПояс = ПредставлениеЧасовогоПояса("GMT+444");
Исключение
ЧасовойПояс = Неопределено;
КонецПопытки;
юТест.Проверить(ЧасовойПояс = Неопределено,
"Часовой пояс с некорректным смещением в часах должен быть неопределенным");
Попытка
ЧасовойПояс = ПредставлениеЧасовогоПояса("GMT+4:33333");
Исключение
ЧасовойПояс = Неопределено;
КонецПопытки;
юТест.Проверить(ЧасовойПояс = Неопределено,
"Часовой пояс с некорректным смещением в минутах должен быть неопределенным");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПреобразованиеВремениБезПараметров() Экспорт
ТекущаяДата = ТекущаяДата();
utc = УниверсальноеВремя(ТекущаяДата);
ТекущаяДата2 = МестноеВремя(utc);
юТест.Проверить(ТекущаяДата = ТекущаяДата2, "Текущая дата и преобразованная дата должны быть равны");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьПреобразованиеВремениСПараметрами() Экспорт
ЧасовойПояс = "GMT+4";
ТекущаяДата = ТекущаяДата();
utc = УниверсальноеВремя(ТекущаяДата, ЧасовойПояс);
ТекущаяДата2 = МестноеВремя(utc, ЧасовойПояс);
юТест.Проверить(ТекущаяДата = ТекущаяДата2, "Текущая дата и преобразованная дата должны быть равны");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьСмещениеUTC() Экспорт
ТекущаяДата = ТекущаяДата();
utc = УниверсальноеВремя(ТекущаяДата);
Смещение1 = ТекущаяДата - utc;
Смещение2 = СмещениеСтандартногоВремени();
юТест.Проверить(Смещение1 = Смещение2, "Смещения часового пояса должны быть равны");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьНачалоНедели() Экспорт
ТекущаяДата = ТекущаяДата();
А = НачалоНедели(ТекущаяДата);
Б = BegOfWeek(ТекущаяДата);
юТест.ПроверитьРавенство(А, Б, "Английский и русский терм совпадают");
СерединаНедели = '2021-06-24';
НачалоНедели = '2021-06-21';
КонецНедели = '2021-06-27';
Эталон = НачалоНедели;
Результат1 = НачалоНедели(СерединаНедели);
Результат2 = НачалоНедели(НачалоНедели);
Результат3 = НачалоНедели(КонецНедели);
юТест.ПроверитьРавенство(Результат1, Эталон, "Из середины");
юТест.ПроверитьРавенство(Результат2, Эталон, "От начала");
юТест.ПроверитьРавенство(Результат3, Эталон, "С конца");
// с переходом через месяц
Дата = '2021-07-03';
Эталон = '2021-06-28';
НачалоНедели = НачалоНедели(Дата);
юТест.ПроверитьРавенство(НачалоНедели, Эталон, "С переходом через месяц");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьКонецНедели() Экспорт
ТекущаяДата = ТекущаяДата();
А = КонецНедели(ТекущаяДата);
Б = EndOfWeek(ТекущаяДата);
юТест.ПроверитьРавенство(А, Б, "Английский и русский терм совпадают");
СерединаНедели = '2021-06-24 12:24:08';
НачалоНедели = '2021-06-21';
КонецНедели = '2021-06-27 23:59:59';
Эталон = КонецНедели;
Результат1 = КонецНедели(СерединаНедели);
Результат2 = КонецНедели(НачалоНедели);
Результат3 = КонецНедели(КонецНедели);
юТест.ПроверитьРавенство(Результат1, Эталон, "Из середины");
юТест.ПроверитьРавенство(Результат2, Эталон, "От начала");
юТест.ПроверитьРавенство(Результат3, Эталон, "С конца");
// с переходом через месяц
Дата = '2021-06-28';
Эталон = '2021-07-04 23:59:59';
КонецНедели = КонецНедели(Дата);
юТест.ПроверитьРавенство(КонецНедели, Эталон, "С переходом через месяц");
КонецПроцедуры