package org.drage.tutorial.mocking;

// imports ...

@RunWith(MockitoJUnitRunner.class)
public class CarSelectorTest {
  
	private CarSelector carSelector;
	
	@Mock
	private CarBuilderService service;
	
	@Before
	public void initTest(){
		carSelector = new CarSelector(service);
	}

	@Test
	public void testBuyRedFerrari() {
		
		carSelector.buyRedFerrari();
		
		ArgumentCaptor<BuyingCriteria> argumentCaptor = ArgumentCaptor.forClass(BuyingCriteria.class);
		Mockito.verify(service).buildCar(argumentCaptor.capture());
		BuyingCriteria buyingCriteria = argumentCaptor.getValue();

		assertEquals("RED", buyingCriteria.getColor());
		assertEquals("FERRARI", buyingCriteria.getModel());
		
	}

}