package no.valg.valgnatt.database.hibernate;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class KandidatTest {

	@Test
	public void beregnAlder_1999Begynnelse2013_14() throws Exception {
		Kandidat kandidat = new Kandidat();
		kandidat.setFodselsdato("1999-01-01");
		KandidatId id = new KandidatId();
		id.setValgaar(2013);
		kandidat.setId(id);
		assertEquals(14, (int) kandidat.getAlder());
	}

	@Test
	public void beregnAlder_1999Slutt2015_16() throws Exception {
		Kandidat kandidat = new Kandidat();
		kandidat.setFodselsdato("1999-12-31");
		KandidatId id = new KandidatId();
		id.setValgaar(2015);
		kandidat.setId(id);
		assertEquals(15, (int) kandidat.getAlder());
	}

	// Valgdager - disse regner systemet seg fram til
	// 2017: 11 sep (2. mandag)
	// 2015: 14 sep (2. mandag)
	// 2013: 9 sep (2. mandag)
	// 2011: 12 sep (2. mandag)
	// 2009: 14 sep (2. mandag)
	// 2007: 10 sep (2. mandag)
	// 1997: 15 sep (3. mandag) - systemet finner istedet 8 sep, men det kan vi leve med


	@Test
	public void beregnAlder_Valgår2017() throws Exception {
		Kandidat kandidat = new Kandidat();
		kandidat.setFodselsdato("1950-09-11");
		KandidatId id = new KandidatId();
		id.setValgaar(2017);
		kandidat.setId(id);
		assertEquals(67, (int) kandidat.getAlder());
	}

	@Test
	public void beregnAlder_Valgår2015() throws Exception {
		Kandidat kandidat = new Kandidat();
		kandidat.setFodselsdato("1950-09-11");
		KandidatId id = new KandidatId();
		id.setValgaar(2015);
		kandidat.setId(id);
		assertEquals(65, (int) kandidat.getAlder());
	}

	@Test
	public void beregnAlder_Valgår2013() throws Exception {
		Kandidat kandidat = new Kandidat();
		kandidat.setFodselsdato("1950-09-11");
		KandidatId id = new KandidatId();
		id.setValgaar(2013);
		kandidat.setId(id);
		assertEquals(62, (int) kandidat.getAlder());
	}

	@Test
	public void beregnAlder_Valgår1997() throws Exception {
		Kandidat kandidat = new Kandidat();
		kandidat.setFodselsdato("1950-09-11");
		KandidatId id = new KandidatId();
		id.setValgaar(1997);
		kandidat.setId(id);
		assertEquals(46, (int) kandidat.getAlder());
	}


}