
Функция Конт(Конт) Возврат Конт; КонецФункции // : Контекст
Функция Сам() Возврат Конт(Контекст); КонецФункции  // : Контекст

//*************************************************************************
Процедура Тест_СинтаксисПерваяСтрокаВ_Defcls_prm_НеОбязанаБытьПустой() Экспорт
	ОБ = СоздатьОбъект("СинтаксисТест1");
КонецПроцедуры

Процедура Тест_СинтаксисПерваяСтрокаВ_Defcls_md_НеОбязанаБытьПустой() Экспорт
	ОБ = СоздатьОбъект("Профайлер");
КонецПроцедуры

Процедура ТестОшибкаПриСозданииКласса() Экспорт 
	Перем ОБ;
	Попытка
		ОБ = СоздатьОбъект("КлассСОшибкойПриСоздании");
	Исключение
		Возврат;		
	КонецПопытки;
	
	Сам().ПроверитьРавенство(ТипЗначения(Об), 0);
КонецПроцедуры

Процедура ТестСозданиеКлассаСПустымМодулем() Экспорт 
	Перем ОБ;
	Попытка
		ОБ = СоздатьОбъект("КлассСПустымМодулем");
	Исключение
		Возврат;		
	КонецПопытки;
	
	Сам().ПроверитьРавенство(ТипЗначения(Об), 0);
	Сам().ПроверитьРавенство(ТипЗначенияСтр(Об), "");
КонецПроцедуры

Процедура ПроверитьКласс_ОписанныйВФайлеРеализацииКласса(ИмяКласса)
	Сам = Сам();

	Объект = СоздатьОбъект(ИмяКласса);
	
	Сам.ПроверитьРавенство(ТипЗначенияСтр(Объект), ИмяКласса);
	
	ВМ = СоздатьОбъект("ВыполняемыйМодуль");
	ТабМетодов = СоздатьОбъект("ТаблицаЗначений");
	ТабСвойств = СоздатьОбъект("ТаблицаЗначений");
	ВМ.GetMethOfContext(Объект, ТабМетодов, ТабСвойств);

	ОбПроверкаОбразов = СоздатьОбъект("ВыполняемыйМодуль_ОбразыКлассов");
	
	табМетодовИсходная = ОбПроверкаОбразов.ТаблицаМетодов_Создать(); 
	ОбПроверкаОбразов.ТаблицаМетодов_ДобавитьСтроку(табМетодовИсходная, 0, "ПабликПроцедура", "", 0, 0);
	ОбПроверкаОбразов.ТаблицаМетодов_ДобавитьСтроку(табМетодовИсходная, 1, "ПабликФункция", "", 1, 0);
	
	ТабСвойствИсходная = ОбПроверкаОбразов.ТаблицаСвойств_Создать();
	ОбПроверкаОбразов.ТаблицаСвойств_ДобавитьСтроку(ТабСвойствИсходная, 0, "ПриватАтрибут", "ПриватАтрибут", 1, 1);
	ОбПроверкаОбразов.ТаблицаСвойств_ДобавитьСтроку(ТабСвойствИсходная, 1, "ПабликАтрибут", "ПабликАтрибут", 1, 1);

	ОбПроверкаОбразов.СверитьМетодыИСвойстваОбъектаБезБазовыхМетодовИСвойств(Контекст, Объект, табМетодовИсходная, ТабСвойствИсходная);

КонецПроцедуры                                          

Процедура ТестКласс_ОписанныйВФайлеРеализацииКласса_txt() Экспорт 
	ИмяКласса = "Класс_ОписанныйВФайлеРеализацииКласса_txt";
	ПроверитьКласс_ОписанныйВФайлеРеализацииКласса(ИмяКласса);
КонецПроцедуры

Процедура ТестКласс_ОписанныйВФайлеРеализацииКласса_txt2() Экспорт 
	ИмяКласса = "Класс2_ОписанныйВФайлеРеализацииКласса_txt";
	ПроверитьКласс_ОписанныйВФайлеРеализацииКласса(ИмяКласса);
КонецПроцедуры

Процедура ТестКласс_ОписанныйВФайлеРеализацииКласса_ert() Экспорт 
	ИмяКласса = "Класс_ОписанныйВФайлеРеализацииКласса_ert";
	ПроверитьКласс_ОписанныйВФайлеРеализацииКласса(ИмяКласса);
КонецПроцедуры

Процедура ТестКласс_ОписанныйВФайлеРеализацииКласса_ert2() Экспорт 
	ИмяКласса = "Класс2_ОписанныйВФайлеРеализацииКласса_ert";
	ПроверитьКласс_ОписанныйВФайлеРеализацииКласса(ИмяКласса);
КонецПроцедуры