Перем Результат;

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

Процедура Сетап() Экспорт
	Результат=СоздатьОбъект("РезультатТеста");
КонецПроцедуры

Процедура тест_ЗапускаМетода() Экспорт 
	Тест = СоздатьОбъект("БылЗапущен"); 
	Тест.Инит("ТестовыйМетод");
	Тест.Запустить(Результат); 
	
	Сам().AssertEquals(Тест.Журнал, "Сетап, Запуск, Сброс");
КонецПроцедуры

Процедура тест_Результата_1() Экспорт
	Тест = СоздатьОбъект("БылЗапущен");
	Тест.Инит("ТестовыйМетод");
	Тест.Запустить(Результат);
	
	Сам().AssertEquals(Результат.ВсегоТестов(), 1);
КонецПроцедуры

Процедура тест_Результата_2() Экспорт
	Тест = СоздатьОбъект("БылЗапущен");
	Тест.Инит("ТестовыйМетод");
	Тест.Запустить(Результат);
	
	Сам().AssertEquals(Результат.УспешныхТестов(), 1);
КонецПроцедуры

Процедура тест_Результата_Печать() Экспорт
	Тест = СоздатьОбъект("БылЗапущен");
	Тест.Инит("ТестовыйМетод");
	Тест.Запустить(Результат);
	
	Сам().AssertEquals(Результат.Итог(), "Запущено тестов: 1, из них упало - 0.");
КонецПроцедуры

Процедура тест_Падения() Экспорт
	Сам = Сам();
	Сам.ПроверитьИсключение(Сам, "_ВыброситьИскл", "");
	
	Сам.ПроверитьИсключение(Сам, "ПроверитьРавенство", 1, "1");
КонецПроцедуры

Процедура тест_Падения_2() Экспорт
	Тест = СоздатьОбъект("БылЗапущен");
	Тест.Инит("fail");
	Тест.Запустить(Результат);
	
	Сам().AssertEquals(Результат.УпавшихТестов(), 1);
КонецПроцедуры

Процедура тест_НабораТестов() Экспорт
	Набор=СоздатьОбъект("НаборТестов");
	Набор.Добавить("БылЗапущен", "ТестовыйМетод");
	Набор.Добавить("БылЗапущен", "Сбой");
	Набор.Запустить(Результат);

	Сам().AssertEquals(Результат.Итог(), "Запущено тестов: 2, из них упало - 1.");
КонецПроцедуры

Процедура тест_Результата_ЗамерВремени() Экспорт
	Время=_GetPerformanceCounter();
	Результат=СоздатьОбъект("РезультатТеста");
	Набор=СоздатьОбъект("НаборТестов");
	Набор.Добавить("БылЗапущен", "ТестовыйМетод");
	Набор.Добавить("БылЗапущен", "Сбой");
	Набор.Запустить(Результат);
	Время=_GetPerformanceCounter()-Время;
    
	РазницаВремени=Время-Результат.ВремяВыполнения();
	РазницаВремени=Макс(РазницаВремени, -РазницаВремени);
	Если РазницаВремени>30 Тогда
		Сам().ВыброситьИскл(, "Реальное время исполнения: "+Время+" мсек, замеренное: "+Результат.ВремяВыполнения()+" мсек");
	КонецЕсли;
КонецПроцедуры

Процедура Тест_ПропускТеста() Экспорт
	Набор=СоздатьОбъект("НаборТестов");
	Набор.Добавить("БылЗапущен", "ПропускТеста");
	Набор.Добавить("БылЗапущен", "ИсключениеПлатформы");
	Набор.Добавить("БылЗапущен", "Сбой");
	Набор.Запустить(Результат);
	
	Сам().AssertEquals(Результат.ПропущеноТестов(), 1);
	Сам().AssertEquals(Результат.Итог(), "Запущено тестов: 3, из них пропущено - 1, упало - 2.");
КонецПроцедуры

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

Процедура Тест_ОтключениеТестовВНаборе() Экспорт
	Набор=СоздатьОбъект("НаборТестов");
	Набор.Добавить("БылЗапущен", "ПропускТеста");
	Набор.Добавить("БылЗапущен", "НеотключаемыйПропускТеста");
	Набор.Запустить(Результат, 1);
	
	Сам().AssertEquals(Результат.ПропущеноТестов(), 1);
	Сам().AssertEquals(Результат.УпавшихТестов(), 1);
КонецПроцедуры
