package ru.rsdn.defensive;

import org.junit.Test;

/**
 * Тестирование хранителя объекта, который не предполагает поступление
 * ошибочных данных
 */
public class OptimisticObjectHolderTest {
	/**
	 * Тестирование условий, на которые расчитывает хранитель объекта
	 */
	@Test
	public void normTest() {
		final Object obj = "Некоторый объект";
		final OptimisticObjectHolder holder = new OptimisticObjectHolder(obj);
		System.out.println(holder.toString());
	}

	/**
	 * Тестирование условий, на которые хранитель объекта не расчитывал
	 */
	@Test(expected = NullPointerException.class)
	public void crashTest() {
		final Object obj = null; // ошибка
		final OptimisticObjectHolder holder = new OptimisticObjectHolder(obj); // ошибка
		// маскируется
		System.out.println(holder.toString()); // ошибка проявляется
	}
}
