-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathfixed-map.os
159 lines (106 loc) · 10.3 KB
/
fixed-map.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
#Использовать asserts
///////////////////////////////////////////////////////////////////////
// Тест класса ФиксированноеСоответствие
///////////////////////////////////////////////////////////////////////
Перем юТест;
////////////////////////////////////////////////////////////////////
// Программный интерфейс
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("ТестДолжен_СоздатьФиксированноеСоответствиеПоСоответствию");
ВсеТесты.Добавить("ТестДолжен_СоздатьСоответствиеПоФиксированномуСоответствию");
ВсеТесты.Добавить("ТестДолжен_ПроверитьНеизменностьфиксированногоСоответствия");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоНельзяПоменятьЗначениеПриОбращенииЧерезКлюч");
ВсеТесты.Добавить("ТестДолжен_ПроверитьОтсутствиеМетодаВставить");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоНесуществующийКлючНельзяПрочитать");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСуществующийКлючНельзяИзменить");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоПолучениеНесуществующегоКлючаНеВызываетОшибки");
Возврат ВсеТесты;
КонецФункции
Процедура ТестДолжен_СоздатьФиксированноеСоответствиеПоСоответствию() Экспорт
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", "Значение1");
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Ожидаем.Что(ТипЗнч(ФиксированноеСоответствие)).Равно(Тип("ФиксированноеСоответствие"));
Ожидаем.Что(ФиксированноеСоответствие.Количество(), "количество элементов исходной и полученной Соответствия совпадут").Равно(Соответствие.Количество());
КонецПроцедуры
Процедура ТестДолжен_СоздатьСоответствиеПоФиксированномуСоответствию() Экспорт
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", "Значение1");
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
НовоеСоответствие = Новый Соответствие(ФиксированноеСоответствие);
Ожидаем.Что(ТипЗнч(НовоеСоответствие)).Равно(Тип("Соответствие"));
Ожидаем.Что(ФиксированноеСоответствие.Количество(), "количество элементов исходной и полученной Соответствия совпадут").Равно(НовоеСоответствие.Количество());
КонецПроцедуры
Процедура ТестДолжен_ПроверитьНеизменностьфиксированногоСоответствия() Экспорт
Значение = "Значение1";
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", Значение);
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Ожидаем.Что(ФиксированноеСоответствие["Ключ1"], "ФиксированноеСоответствие[""Ключ1""] равно Соответствие[""Ключ1""]").Равно(Соответствие["Ключ1"]);
Соответствие["Ключ1"] = Значение+1;
Ожидаем.Что(ФиксированноеСоответствие["Ключ1"], "ФиксированноеСоответствие[""Ключ1""]/Значение1 не меняет своего значения после изменения Соответствие[""Ключ1""]/Значение").Равно(Значение);
Значение = "Значение10";
Ожидаем.Что(ФиксированноеСоответствие["Ключ1"], "ФиксированноеСоответствие[""Ключ1""]/Значение1 не меняет своего значения после изменения исходной переменной").Равно("Значение1");
КонецПроцедуры
Процедура ТестДолжен_ПроверитьОтсутствиеМетодаВставить() Экспорт
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", "Значение1");
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Попытка
ФиксированноеСоответствие.Вставить("Ключ2", "Значение2");
Исключение
Ожидаем.Что(ФиксированноеСоответствие.Количество(), "количество элементов фиксированного Соответствия не меняется").Равно(1);
Возврат;
КонецПопытки;
ВызватьИсключение "У класса ""ФиксированноеСоответствие"" не должно быть метода ""Вставить"", а он есть";
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоНельзяПоменятьЗначениеПриОбращенииЧерезКлюч() Экспорт
Значение = "Значение1";
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", Значение);
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Попытка
ФиксированноеСоответствие["Ключ1"] = Значение+1;
Исключение
Ожидаем.Что(ФиксированноеСоответствие["Ключ1"], "ФиксированноеСоответствие[""Ключ1""]/Значение1 не меняет своего значения после изменения Соответствие[""Ключ1""]/Значение").Равно(Значение);
Возврат;
КонецПопытки;
ВызватьИсключение "Ожидали, что у класса ""ФиксированноеСоответствие"" нельзя менять значение через обращение по ключу, а получили, что меняется";
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоНесуществующийКлючНельзяПрочитать() Экспорт
Значение = "Значение1";
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", Значение);
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Попытка
А = ФиксированноеСоответствие["Ключ2"];
Исключение
Если Не ИнформацияОбОшибке().Описание = "Значение, соответствующее ключу, не задано" Тогда
ВызватьИсключение;
КонецЕсли;
Возврат;
КонецПопытки;
ВызватьИсключение "Чтение несуществующего ключа было выполнено";
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоСуществующийКлючНельзяИзменить() Экспорт
Значение = "Значение1";
Соответствие = Новый Соответствие;
Соответствие.Вставить("Ключ1", Значение);
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Попытка
ФиксированноеСоответствие["Ключ1"] = 5;
Исключение
Ожидаем.Что(ФиксированноеСоответствие["Ключ1"], "не изменился элемент соответствия").Равно(Значение);
Если Не ИнформацияОбОшибке().Описание = "Индексированное значение доступно только для чтения" Тогда
ВызватьИсключение;
КонецЕсли;
КонецПопытки;
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоПолучениеНесуществующегоКлючаНеВызываетОшибки() Экспорт
Соответствие = Новый Соответствие;
ФиксированноеСоответствие = Новый ФиксированноеСоответствие(Соответствие);
Значение = ФиксированноеСоответствие.Получить("Заведомо отсутствующий ключ");
юТест.ПроверитьРавенство(Значение, Неопределено, "Отсутствующий ключ вернул не Неопределено");
КонецПроцедуры