blob: d65875f49f1b53d7ecee41a1319fe98760e1a442 [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockitousage.stubbing;
import org.junit.Test;
import org.mockito.AdditionalAnswers;
import org.mockito.Mock;
import org.mockito.exceptions.base.MockitoException;
import org.mockitousage.IMethods;
import org.mockitoutil.TestBase;
import java.util.List;
import static java.util.Arrays.asList;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.fail;
import static org.mockito.Mockito.when;
public class StubbingWithExtraAnswersTest extends TestBase {
@Mock private IMethods mock;
@Test
public void shouldWorkAsStandardMockito() throws Exception {
//when
List<Integer> list = asList(1, 2, 3);
when(mock.objectReturningMethodNoArgs()).thenAnswer(AdditionalAnswers.returnsElementsOf(list));
//then
assertEquals(1, mock.objectReturningMethodNoArgs());
assertEquals(2, mock.objectReturningMethodNoArgs());
assertEquals(3, mock.objectReturningMethodNoArgs());
//last element is returned continuously
assertEquals(3, mock.objectReturningMethodNoArgs());
assertEquals(3, mock.objectReturningMethodNoArgs());
}
@Test
public void shouldReturnNullIfNecessary() throws Exception {
//when
List<Integer> list = asList(1, null);
when(mock.objectReturningMethodNoArgs()).thenAnswer(AdditionalAnswers.returnsElementsOf(list));
//then
assertEquals(1, mock.objectReturningMethodNoArgs());
assertEquals(null, mock.objectReturningMethodNoArgs());
assertEquals(null, mock.objectReturningMethodNoArgs());
}
@Test
public void shouldScreamWhenNullPassed() throws Exception {
try {
//when
AdditionalAnswers.returnsElementsOf(null);
//then
fail();
} catch (MockitoException e) {}
}
}