package konto;

import static org.junit.Assert.*;

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

public class KontoTest {
	private Osoba ala;
	private Konto konto;

	@Before
	public void setUp() {
		// to się wykona przed każdym testem
		ala = new Osoba("Ala", "Kowalska", 30);
		konto = new Konto(1, 1000, ala);
	}

	@Test
	public void testWplata_BezUzyciaSetUp() {
		// Przygotowanie obiektów
		Osoba ala = new Osoba("Ala", "Kowalska", 30);
		Konto konto = new Konto(1, 1000, ala);
		
		// Uruchomienie testowanej operacji
		konto.wplata(300);
		
		// Sprawdzenie wyniku lub stanu końcowego
		assertEquals(1300, konto.getSaldo());
	}
	
	@Test
	public void testWplata() {
		konto.wplata(300);
		assertEquals(1300, konto.getSaldo());
	}
	
	@Test
	public void testWyplata() throws BrakSrodkow {
		konto.wyplata(400);
		assertEquals(600, konto.getSaldo());
	}
	
	// chciałbym, żeby w przypadku kwoty ujemnej pojawił się taki wyjątek
	@Test(expected=IllegalArgumentException.class)
	public void testWplataUjemna() {
		konto.wplata(-1);
	}

	@Test(expected=IllegalArgumentException.class)
	public void testWyplataUjemna() throws BrakSrodkow {
		konto.wyplata(-1);
		
	}

	@Test(expected=BrakSrodkow.class)
	public void testBrakSrodkow() throws BrakSrodkow {
		konto.wyplata(1100);
	}
}
