/
smwwiki
/
OneScript_fork
Обзор
Документация
Войти
/
smwwiki
/
OneScript_fork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/structure.os
208 строк
14 KB
Michael Rybakin
fix #888: типы параметра конструктора Структуры и Фиксированной +тесты
06 июн 2019, 13:37
06 июн 2019, 13:37
77e30cc
Код
Авторство
О чём код?
/////////////////////////////////////////////////////////////////////// // Тест класса Структура /////////////////////////////////////////////////////////////////////// Перем юТест; //////////////////////////////////////////////////////////////////// // Программный интерфейс Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоКлючамЗначениям"); ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоКлючамЗначениямСоЗначениямиПоУмолчанию"); ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодСвойство"); ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоФиксированнойСтруктуре"); ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодОчистить"); ВсеТесты.Добавить("ТестДолжен_ПроверитьМетодУдалить"); ВсеТесты.Добавить("ТестДолжен_ПроверитьТипПараметровКонструктора"); // issue #888 ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоКлючамЗначениям_ПроверкаПравильностиКлючей"); // issue #674 ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоКлючамЗначениямСЛишнимиЗначениями"); // issues #674, #887 ВсеТесты.Добавить("ТестДолжен_СоздатьСтруктуруПоКлючамЗначениямСПропускомКлючей"); // issue #674 ВсеТесты.Добавить("ТестДолжен_ПроверитьКомпиляциюКлючевыхСловВСвойствахСтруктуры"); // issue #498 Возврат ВсеТесты; КонецФункции Процедура ТестДолжен_СоздатьСтруктуруПоКлючамЗначениям() Экспорт Структура1 = Новый Структура("Ключ1,Ключ2", "Значение1","Значение2"); юТест.ПроверитьРавенство( Структура1.Количество(), 2 ); юТест.ПроверитьРавенство( Структура1.Ключ1, "Значение1" ); юТест.ПроверитьРавенство( Структура1.Ключ2, "Значение2" ); // issue #26 Структура2 = Новый Структура("Ключ1, Ключ2 , Ключ3", "Значение1","Значение2","Значение3"); юТест.ПроверитьРавенство( Структура2.Количество(), 3 ); юТест.ПроверитьРавенство( Структура2.Ключ1, "Значение1" ); юТест.ПроверитьРавенство( Структура2.Ключ2, "Значение2" ); юТест.ПроверитьРавенство( Структура2.Ключ3, "Значение3" ); КонецПроцедуры Процедура ТестДолжен_СоздатьСтруктуруПоКлючамЗначениям_ПроверкаПравильностиКлючей() Экспорт Структура1 = Новый Структура("ψ,ξ", "Значение1","Значение2"); юТест.ПроверитьРавенство( Структура1.Количество(), 2 ); юТест.ПроверитьРавенство( Структура1.ψ, "Значение1" ); юТест.ПроверитьРавенство( Структура1.ξ, "Значение2" ); Попытка Структура2 = Новый Структура("1йКлюч, 2йКлюч", "Значение1","Значение2"); Исключение возврат; КонецПопытки; ВызватьИсключение "Недопустимое значение ключа Структуры"; КонецПроцедуры Процедура ТестДолжен_ПроверитьТипПараметровКонструктора() Экспорт Структура1 = Новый Структура("Ключ1,Ключ2", "Значение1","Значение2"); БезОшибки = Истина; Попытка Структура2 = Новый Структура( Структура1, "Значение1","Значение2"); Исключение БезОшибки = Ложь; КонецПопытки; если БезОшибки тогда ВызватьИсключение "Недопустимый тип параметра конструктора Структуры: Структура"; конецесли; БезОшибки = Истина; Попытка Структура2 = Новый Структура( 1000, "Значение1","Значение2"); Исключение БезОшибки = Ложь; КонецПопытки; если БезОшибки тогда ВызватьИсключение "Недопустимый тип параметра конструктора Структуры: Число"; конецесли; БезОшибки = Истина; Попытка Структура2 = Новый Структура( Неопределено, "Значение1","Значение2"); Исключение БезОшибки = Ложь; КонецПопытки; если БезОшибки тогда ВызватьИсключение "Недопустимый тип параметра конструктора Структуры: Неопределено"; конецесли; КонецПроцедуры Процедура ТестДолжен_СоздатьСтруктуруПоКлючамЗначениямСоЗначениямиПоУмолчанию() Экспорт Структура1 = Новый Структура("Ключ1,Ключ2,Ключ3", "Значение1","Значение2"); юТест.ПроверитьРавенство( Структура1.Количество(), 3 ); юТест.ПроверитьРавенство( Структура1.Ключ1, "Значение1" ); юТест.ПроверитьРавенство( Структура1.Ключ2, "Значение2" ); юТест.ПроверитьРавенство( Структура1.Ключ3, Неопределено ); Структура2 = Новый Структура("Ключ1,Ключ2,Ключ3", "Значение1",,"Значение3"); юТест.ПроверитьРавенство( Структура2.Количество(), 3 ); юТест.ПроверитьРавенство( Структура2.Ключ1, "Значение1" ); юТест.ПроверитьРавенство( Структура2.Ключ2, Неопределено ); юТест.ПроверитьРавенство( Структура2.Ключ3, "Значение3" ); Структура3 = Новый Структура("Ключ1,Ключ2"); юТест.ПроверитьРавенство( Структура3.Количество(), 2 ); юТест.ПроверитьРавенство( Структура3.Ключ1, Неопределено ); юТест.ПроверитьРавенство( Структура3.Ключ2, Неопределено ); КонецПроцедуры Процедура ТестДолжен_СоздатьСтруктуруПоКлючамЗначениямСЛишнимиЗначениями() Экспорт Структура1 = Новый Структура("Ключ1,Ключ2", "Значение1","Значение2","Значение3"); юТест.ПроверитьРавенство( Структура1.Количество(), 2 ); юТест.ПроверитьРавенство( Структура1.Ключ1, "Значение1" ); юТест.ПроверитьРавенство( Структура1.Ключ2, "Значение2" ); Структура2 = Новый Структура("Ключ1,Ключ2,Ключ3",,"Значение2",,,,,,); юТест.ПроверитьРавенство( Структура2.Количество(), 3 ); юТест.ПроверитьРавенство( Структура2.Ключ1, Неопределено ); юТест.ПроверитьРавенство( Структура2.Ключ2, "Значение2" ); юТест.ПроверитьРавенство( Структура2.Ключ3, Неопределено ); КонецПроцедуры Процедура ТестДолжен_СоздатьСтруктуруПоКлючамЗначениямСПропускомКлючей() Экспорт Структура1 = Новый Структура("Ключ1,,Ключ2", "Значение1","Значение2","Значение3"); юТест.ПроверитьРавенство( Структура1.Количество(), 2 ); юТест.ПроверитьРавенство( Структура1.Ключ1, "Значение1" ); юТест.ПроверитьРавенство( Структура1.Ключ2, "Значение2" ); Структура2 = Новый Структура(" , , , Ключ1 , , , , Ключ2, ",,"Значение2"); юТест.ПроверитьРавенство( Структура2.Количество(), 2 ); юТест.ПроверитьРавенство( Структура2.Ключ1, Неопределено ); юТест.ПроверитьРавенство( Структура2.Ключ2, "Значение2" ); КонецПроцедуры Процедура ТестДолжен_ПроверитьМетодСвойство() Экспорт Структура = Новый Структура("Ключ1", "Значение1"); юТест.ПроверитьРавенство( Структура.Свойство("Ключ1"), Истина ); Значение = Неопределено; Найдено = Структура.Свойство("Ключ1", Значение); юТест.ПроверитьРавенство(Найдено, Истина); юТест.ПроверитьРавенство(Значение, "Значение1"); юТест.ПроверитьРавенство( Структура.Свойство("НесуществующийКлюч"), Ложь ); Найдено = Структура.Свойство("НесуществующийКлюч", Значение); юТест.ПроверитьРавенство(Найдено, Ложь); юТест.ПроверитьРавенство(Значение, Неопределено); КонецПроцедуры Процедура ТестДолжен_ПроверитьМетодОчистить() Экспорт Структура = Новый Структура("Ключ1,Ключ2", "Значение1","Значение2"); Структура.Очистить(); юТест.ПроверитьРавенство( Структура.Количество(), 0 ); юТест.ПроверитьРавенство( Структура.Свойство("Ключ1"), Ложь ); КонецПроцедуры Процедура ТестДолжен_ПроверитьМетодУдалить() Экспорт Структура = Новый Структура("Ключ1,Ключ2", "Значение1","Значение2"); Структура.Удалить("Ключ1"); юТест.ПроверитьРавенство( Структура.Количество(), 1 ); юТест.ПроверитьРавенство( Структура.Свойство("Ключ1"), Ложь ); юТест.ПроверитьРавенство( Структура.Свойство("Ключ2"), Истина ); Структура.Удалить("НесуществующийКлюч"); юТест.ПроверитьРавенство( Структура.Количество(), 1 ); юТест.ПроверитьРавенство( Структура.Свойство("Ключ2"), Истина ); КонецПроцедуры Процедура ТестДолжен_СоздатьСтруктуруПоФиксированнойСтруктуре() Экспорт ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура("Ключ1, Ключ2", "Значение1", "Значение2"); Структура = Новый Структура(ФиксированнаяСтруктура); юТест.ПроверитьРавенство(Структура.Количество(), ФиксированнаяСтруктура.Количество()); юТест.ПроверитьРавенство(Структура.Ключ1, "Значение1"); юТест.ПроверитьРавенство(Структура.Ключ2, "Значение2"); КонецПроцедуры Процедура ТестДолжен_ПроверитьКомпиляциюКлючевыхСловВСвойствахСтруктуры() Экспорт Структура = Новый Структура; Структура.Вставить("Null", Null); Структура.Вставить("Неопределено", Неопределено); Структура.Вставить("Истина", Истина); Структура.Вставить("Ложь", Ложь); Структура.Вставить("И", 1); Структура.Вставить("ИЛИ", 2); Структура.Вставить("НЕ", 3); юТест.ПроверитьРавенство(Истина, Структура.Истина, "Истина"); юТест.ПроверитьРавенство(Ложь, Структура.Ложь, "Ложь"); юТест.ПроверитьРавенство(Неопределено, Структура.Неопределено, "Неопределено"); юТест.ПроверитьРавенство(Null, Структура.Null, "Null"); юТест.ПроверитьРавенство(1, Структура.И, "И"); юТест.ПроверитьРавенство(2, Структура.ИЛИ, "ИЛИ"); юТест.ПроверитьРавенство(3, Структура.НЕ, "НЕ"); КонецПроцедуры