package fr.vergne.taskmanager.history;

import static org.junit.Assert.*;

import org.junit.Test;

public class DefaultHistorizableTest extends HistorizableTest<Integer> {

	@Override
	protected Historizable<Integer> instantiateHistorizable() {
		return new DefaultHistorizable<Integer>();
	}

	@Test
	public void testSetGet() {
		DefaultHistorizable<Integer> historizable = new DefaultHistorizable<Integer>();
		historizable.set(5);
		assertEquals(5, (int) historizable.get());
		historizable.set(3);
		assertEquals(3, (int) historizable.get());
		historizable.set(-345);
		assertEquals(-345, (int) historizable.get());
	}

	@Test
	public void testNullManagement() {
		DefaultHistorizable<Integer> historizable = new DefaultHistorizable<Integer>(
				false);
		historizable.set(5);
		assertEquals(5, (int) historizable.get());
		historizable.set(null);
		assertEquals(null, historizable.get());
		historizable.set(-345);
		assertEquals(-345, (int) historizable.get());

		historizable = new DefaultHistorizable<Integer>(true);
		historizable.set(5);
		assertEquals(5, (int) historizable.get());
		try {
			historizable.set(null);
			fail("No exception thrown");
		} catch (NullPointerException ex) {
		}
		assertEquals(5, (int) historizable.get());
		historizable.set(-345);
		assertEquals(-345, (int) historizable.get());
	}
}

@@ -614,24 +614,540 @@
 get());%0A%09%7D%0A%0A
+%09@Test%0A%09public void testHistoryFilling() %7B%0A%09%09DefaultHistorizable%3CInteger%3E historizable = new DefaultHistorizable%3CInteger%3E();%0A%09%09historizable.set(5);%0A%09%09historizable.set(3);%0A%09%09historizable.set(-345);%0A%0A%09%09assertEquals(3, historizable.getHistory().size());%0A%09%09assertEquals(5, (int) historizable.getHistory().getHistorizedValues()%0A%09%09%09%09.get(0));%0A%09%09assertEquals(3, (int) historizable.getHistory().getHistorizedValues()%0A%09%09%09%09.get(1));%0A%09%09assertEquals(-345, (int) historizable.getHistory()%0A%09%09%09%09.getHistorizedValues().get(2));%0A%09%7D%0A%0A
 %09@Test%0A%09publ

Test history filling.