/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/timezones.os
183 строки
9 KB
Andrey Ovsiankin
Добавлены функции НачалоНедели/КонецНедели
29 июн 2021, 13:40
29 июн 2021, 13:40
3dd2009
Код
Авторство
О чём код?
Перем юТест; Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеЧасовогоПояса"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеДопустимыхЧасовыхПоясов"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеПредставленияЧасовогоПояса"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПолучениеЧасовогоПоясаПоСтроке"); ВсеТесты.Добавить("ТестДолжен_ПроверитьКорректностьПолученияЧасовогоПоясаПоСтроке"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПреобразованиеВремениБезПараметров"); ВсеТесты.Добавить("ТестДолжен_ПроверитьПреобразованиеВремениСПараметрами"); ВсеТесты.Добавить("ТестДолжен_ПроверитьСмещение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'; КонецНедели = КонецНедели(Дата); юТест.ПроверитьРавенство(КонецНедели, Эталон, "С переходом через месяц"); КонецПроцедуры