1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/* 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License. 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito; 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.stubbing.answers.CallsRealMethods; 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.stubbing.defaultanswers.GloballyConfiguredAnswer; 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.stubbing.defaultanswers.ReturnsDeepStubs; 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.stubbing.defaultanswers.ReturnsMocks; 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.stubbing.defaultanswers.ReturnsSmartNulls; 12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.stubbing.Answer; 13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/** 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Enumeration of pre-configured mock answers 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p> 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * You can use it to pass extra parameters to @Mock annotation, see more info here: {@link Mock} 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p> 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Example: 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <pre class="code"><code class="java"> 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @Mock(answer = RETURNS_DEEP_STUBS) UserProvider userProvider; 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * </code></pre> 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <b>This is not the full list</b> of Answers available in Mockito. Some interesting answers can be found in org.mockito.stubbing.answers package. 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic enum Answers { 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * The default configured answer of every mock. 29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>Please see the {@link org.mockito.Mockito#RETURNS_DEFAULTS} documentation for more details.</p> 31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @see org.mockito.Mockito#RETURNS_DEFAULTS 33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson RETURNS_DEFAULTS(new GloballyConfiguredAnswer()), 35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * An answer that returns smart-nulls. 38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>Please see the {@link org.mockito.Mockito#RETURNS_SMART_NULLS} documentation for more details.</p> 40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @see org.mockito.Mockito#RETURNS_SMART_NULLS 42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson RETURNS_SMART_NULLS(new ReturnsSmartNulls()), 44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * An answer that returns <strong>mocks</strong> (not stubs). 47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>Please see the {@link org.mockito.Mockito#RETURNS_MOCKS} documentation for more details.</p> 49e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 50e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @see org.mockito.Mockito#RETURNS_MOCKS 51e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 52e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson RETURNS_MOCKS(new ReturnsMocks()), 53e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 54e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 55e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 56e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * An answer that returns <strong>deep stubs</strong> (not mocks). 57e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 58e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>Please see the {@link org.mockito.Mockito#RETURNS_DEEP_STUBS} documentation for more details.</p> 59e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 60e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @see org.mockito.Mockito#RETURNS_DEEP_STUBS 61e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 62e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson RETURNS_DEEP_STUBS(new ReturnsDeepStubs()), 63e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 64e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 65e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * An answer that calls the real methods (used for partial mocks). 66e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 67e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>Please see the {@link org.mockito.Mockito#CALLS_REAL_METHODS} documentation for more details.</p> 68e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * 69e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * @see org.mockito.Mockito#CALLS_REAL_METHODS 70e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 71e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson CALLS_REAL_METHODS(new CallsRealMethods()) 72e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson ; 73e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 74e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson private Answer<Object> implementation; 75e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 76e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson private Answers(Answer<Object> implementation) { 77e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson this.implementation = implementation; 78e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 79e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 80e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public Answer<Object> get() { 81e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return implementation; 82e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 83e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}