package samples.powermockito.junit4.doreturn; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.powermock.modules.junit4.PowerMockRunner; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsEqual.equalTo; import static org.powermock.api.mockito.PowerMockito.doReturn; /** * Created by gauee on 12/11/15. * Test that demonstrates that <a * href="https://github.com/jayway/powermock/issues/599">issue 599</a> * is resolved. */ @RunWith(PowerMockRunner.class) public class DoReturnTest { private static final String TEMP_DAY_FIRST = "41F"; private static final String TEMP_DAY_SECOND = "44F"; @Mock private Weather weather; interface Weather { String getTemperature(); } @Before public void init() { doReturn(TEMP_DAY_FIRST, TEMP_DAY_SECOND).when(weather).getTemperature(); } @Test public void returnsDifferentTemperatureForEachInvocation(){ assertThat(weather.getTemperature(), is(equalTo(TEMP_DAY_FIRST))); assertThat(weather.getTemperature(), is(equalTo(TEMP_DAY_SECOND))); } @Test public void returnsFirstTemperatureWhenPassedArrayIsEmpty() { doReturn(TEMP_DAY_FIRST, new Object[0]).when(weather).getTemperature(); assertThat(weather.getTemperature(), is(equalTo(TEMP_DAY_FIRST))); assertThat(weather.getTemperature(), is(equalTo(TEMP_DAY_FIRST))); } }