package pracownik;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class PracownikTest {
	private Pracownik pracownik1;
	private Pracownik pracownik2;
	private PracownikZPremia pp;

	@Before
	public void setUp() {
		pracownik1 = new Pracownik(100);
		pracownik2 = new Pracownik(150);
		pp = new PracownikZPremia(100);
	}

	@Test
	public void testZwykleGodziny() {
		pracownik1.praca(5);
		pracownik1.praca(6);
		int wyplata = pracownik1.wyplata();
		assertEquals(1100, wyplata);
	}

	@Test
	public void testZerowanieGodzin() {
		pracownik1.praca(4);
		pracownik1.praca(12);
		// Nie interesuje nas tutaj wartość pierwszej wypłaty
		pracownik1.wyplata();
		
		// Interesuje nas wartość drugiej wypłaty z rzędu - powinna wynosić zero
		int drugaWyplata = pracownik1.wyplata();
		assertEquals(0, drugaWyplata);
	}

	@Test
	public void testNadgodziny() {
		pracownik1.praca(10); // 8 + 2
		pracownik1.praca(12); // 8 + 4
		int wyplata = pracownik1.wyplata();
		assertEquals(2800, wyplata);
	}

	@Test
	public void testInnaStawka() {
		pracownik2.praca(10);
		int wyplata = pracownik2.wyplata();
		assertEquals(1800, wyplata);
	}

	@Test
	public void testPremia() {
		pp.praca(10); // 1200
		pp.premia(200);
		pp.premia(300);
		int wyplata = pp.wyplata();
		assertEquals(1700, wyplata);
		int drugaWyplata = pp.wyplata();
		assertEquals(0, drugaWyplata);
	}

}
