package com.levelup.java.exercises.beginner;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Test;
import com.levelup.java.exercises.beginner.TossingCoinsForADollar.Coin;
/**
* Unit test for {@link TossingCoinsForADollar}
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/exercises/tossing-coins-for-a-dollar/'>Tossing Coins For A Dollar</a>
*
*/
public class TossingCoinsForADollarTest {
@Test
public void heads_up() {
// use mockito to mock object
Coin coin = mock(TossingCoinsForADollar.Coin.class);
when(coin.getSideUp()).thenReturn("heads");
assertTrue(TossingCoinsForADollar.isHeadsUp(coin));
}
@Test
public void heads_down() {
// use mockito to mock object
Coin coin = mock(TossingCoinsForADollar.Coin.class);
when(coin.getSideUp()).thenReturn("tails");
assertFalse(TossingCoinsForADollar.isHeadsUp(coin));
}
@Test(expected = NullPointerException.class)
public void heads_up_nullpointer() {
TossingCoinsForADollar.isHeadsUp(null);
}
}