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