package waluty;

import static org.junit.jupiter.api.Assertions.*;

import java.math.BigDecimal;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

class WalutaTest {
	private Waluta dolar;

	@BeforeEach
	void setUp() throws Exception {
		dolar = new Waluta("USD", "dolar", "4.0000");
	}

	@Test
	void testPrzeliczNaZlote() {
		BigDecimal kwota = BigDecimal.valueOf(1000);
		BigDecimal oczekiwanyWynik = new BigDecimal("4000.00");
		BigDecimal wynik = dolar.przeliczNaZlote(kwota);
		assertEquals(oczekiwanyWynik, wynik);
	}
	
	@Test
	void testPrzeliczNaZlote_Zaokraglanie() {
		Waluta innaWaluta = new Waluta("ABC", "przykładowa waluta", new BigDecimal("2.2222"));
		BigDecimal kwota = new BigDecimal("3.00");
		BigDecimal oczekiwanyWynik = new BigDecimal("6.67");
		BigDecimal wynik = innaWaluta.przeliczNaZlote(kwota);
		assertEquals(oczekiwanyWynik, wynik);
	}
	
	@Test
	void testPrzeliczNaWalute() {
		BigDecimal kwota = new BigDecimal("400.00");
		BigDecimal oczekiwanyWynik = new BigDecimal("100.00");
		BigDecimal wynik = dolar.przeliczNaWalute(kwota);
		assertEquals(oczekiwanyWynik, wynik);
	}
	
	@Test
	void testPrzeliczNaWalute_Zaokraglanie() {
		Waluta innaWaluta = new Waluta("ABC", "przykładowa waluta", new BigDecimal("3.0000"));
		BigDecimal kwota = new BigDecimal("200.00");
		BigDecimal oczekiwanyWynik = new BigDecimal("66.67");
		BigDecimal wynik = innaWaluta.przeliczNaWalute(kwota);
		assertEquals(oczekiwanyWynik, wynik);
	}

}
