-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathfixed-structure.os
167 lines (121 loc) · 12.1 KB
/
fixed-structure.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
#Использовать 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);
КонецПроцедуры