package sklep.model;

import java.math.BigDecimal;

import org.junit.*;

import sklep.exn.NieznanyTowar;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

public class KatalogTestMockito {
	private static final BigDecimal ZMIANA = new BigDecimal("0.10");
	private static final String PRALKA = "Pralka";

	private static final BigDecimal CENA_NETTO_ODKURZACZA = new BigDecimal("200.00");
	private static final String ODKURZACZ = "Odkurzacz";

	private Katalog katalog;
	
	private Towar m_pralka, m_odkurzacz;
	
	@Before
	public void setUp() {
		m_pralka = mock(Towar.class);
		m_odkurzacz = mock(Towar.class);
		
		when(m_pralka.getNazwa()).thenReturn(PRALKA);
		when(m_odkurzacz.getNazwa()).thenReturn(ODKURZACZ);
		
		katalog = new Katalog();
		katalog.dodajTowar(m_odkurzacz);
		katalog.dodajTowar(m_pralka);

		//reset(m_pralka);
	}

	@Test
	public void testZmienWszystkieCeny() throws NieznanyTowar {
		katalog.zmienWszystkieCeny(ZMIANA);
		
		verify(m_pralka).zmienCene(ZMIANA);
		verify(m_odkurzacz).zmienCene(ZMIANA);
	}

	@Test
	public void testZmienCene() throws NieznanyTowar {
		katalog.zmienCene(PRALKA, ZMIANA);
		
		verify(m_pralka).zmienCene(ZMIANA);
		verify(m_odkurzacz, never()).zmienCene(any(BigDecimal.class));
		
		//verifyNoMoreInteractions(m_pralka);
	}

}
