blob: b4d6b43811934f56163fc8c1cb47480bda351b92 [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.stubbing.answers;
import org.junit.Test;
import org.mockito.exceptions.base.MockitoException;
import org.mockito.internal.invocation.InvocationBuilder;
import static java.lang.Boolean.TRUE;
import static org.assertj.core.api.Assertions.assertThat;
public class ReturnsTest {
@Test
public void should_return_value() throws Throwable {
assertThat(new Returns("value").answer(new InvocationBuilder().method("oneArg").arg("A").toInvocation())).isEqualTo("value");
}
@Test(expected = MockitoException.class)
public void should_fail_when_return_Value_is_set_for_void_method() throws Throwable {
new Returns("one").validateFor(new InvocationBuilder().method("voidMethod").toInvocation());
}
@Test
public void should_allow_correct_type_of_return_value() throws Throwable {
new Returns("one").validateFor(new InvocationBuilder().simpleMethod().toInvocation());
new Returns(false).validateFor(new InvocationBuilder().method("booleanReturningMethod").toInvocation());
new Returns(TRUE).validateFor(new InvocationBuilder().method("booleanObjectReturningMethod").toInvocation());
new Returns(1).validateFor(new InvocationBuilder().method("integerReturningMethod").toInvocation());
new Returns(1L).validateFor(new InvocationBuilder().method("longReturningMethod").toInvocation());
new Returns(1L).validateFor(new InvocationBuilder().method("longObjectReturningMethod").toInvocation());
new Returns(null).validateFor(new InvocationBuilder().method("objectReturningMethodNoArgs").toInvocation());
new Returns(1).validateFor(new InvocationBuilder().method("objectReturningMethodNoArgs").toInvocation());
}
@Test(expected = MockitoException.class)
public void should_fail_on_return_type_mismatch() throws Throwable {
new Returns("String").validateFor(new InvocationBuilder().method("booleanReturningMethod").toInvocation());
}
@Test(expected = MockitoException.class)
public void should_fail_on_wrong_primitive() throws Throwable {
new Returns(1).validateFor(new InvocationBuilder().method("doubleReturningMethod").toInvocation());
}
@Test(expected = MockitoException.class)
public void should_fail_on_null_with_primitive() throws Throwable {
new Returns(null).validateFor(new InvocationBuilder().method("booleanReturningMethod").toInvocation());
}
}