Class ReturnsArgumentAt

  • All Implemented Interfaces:
    java.io.Serializable, Answer<java.lang.Object>, ValidableAnswer

    public class ReturnsArgumentAt
    extends java.lang.Object
    implements Answer<java.lang.Object>, ValidableAnswer, java.io.Serializable
    Returns the passed parameter identity at specified index.

    The argumentIndex represents the index in the argument array of the invocation.

    If this number equals -1 then the last argument is returned.

    Since:
    1.9.5
    See Also:
    AdditionalAnswers, Serialized Form
    • Field Detail

      • wantedArgumentPosition

        private final int wantedArgumentPosition
    • Constructor Detail

      • ReturnsArgumentAt

        public ReturnsArgumentAt​(int wantedArgumentPosition)
        Build the identity answer to return the argument at the given position in the argument array.
        Parameters:
        wantedArgumentPosition - The position of the argument identity to return in the invocation. Using -1 indicates the last argument (LAST_ARGUMENT).
    • Method Detail

      • answer

        public java.lang.Object answer​(InvocationOnMock invocation)
                                throws java.lang.Throwable
        Specified by:
        answer in interface Answer<java.lang.Object>
        Parameters:
        invocation - the invocation on the mock.
        Returns:
        the value to be returned
        Throws:
        java.lang.Throwable - the throwable to be thrown
      • validateFor

        public void validateFor​(InvocationOnMock invocation)
        Description copied from interface: ValidableAnswer
        Validation of the answer at stub time for the given invocation.

        This method will be called by Mockito.

        The implementation must throw an MockitoException to indicate that this answer is not valid for the given invocation. If the validation succeed the implementation must simply return without throwing.

        Specified by:
        validateFor in interface ValidableAnswer
        Parameters:
        invocation - The stubbed invocation
      • inferWantedArgumentPosition

        private int inferWantedArgumentPosition​(InvocationOnMock invocation)
      • validateIndexWithinInvocationRange

        private void validateIndexWithinInvocationRange​(InvocationOnMock invocation,
                                                        int argumentPosition)
      • validateArgumentTypeCompatibility

        private void validateArgumentTypeCompatibility​(Invocation invocation,
                                                       int argumentPosition)
      • wantedArgIndexIsVarargAndSameTypeAsReturnType

        private boolean wantedArgIndexIsVarargAndSameTypeAsReturnType​(java.lang.reflect.Method method,
                                                                      int argumentPosition)
      • wantedArgumentPositionIsValidForInvocation

        private boolean wantedArgumentPositionIsValidForInvocation​(InvocationOnMock invocation,
                                                                   int argumentPosition)
      • inferArgumentType

        private java.lang.Class<?> inferArgumentType​(Invocation invocation,
                                                     int argumentIndex)