13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar/*
29257700370b2bf9ddba666c472a2ffe8bd376f77Nuno Lopes * Copyright (c) 2007 Mockito contributors
39b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner * This program is made available under the terms of the MIT License.
49257700370b2bf9ddba666c472a2ffe8bd376f77Nuno Lopes */
59257700370b2bf9ddba666c472a2ffe8bd376f77Nuno Lopespackage org.mockito;
69b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattner
79b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnerimport org.mockito.internal.stubbing.answers.CallsRealMethods;
89b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnerimport org.mockito.internal.stubbing.defaultanswers.GloballyConfiguredAnswer;
99b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnerimport org.mockito.internal.stubbing.defaultanswers.ReturnsDeepStubs;
109b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnerimport org.mockito.internal.stubbing.defaultanswers.ReturnsMocks;
119b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnerimport org.mockito.internal.stubbing.defaultanswers.ReturnsSmartNulls;
129b6912ceefbf15964758b835b62f75a60fa5b4ceChris Lattnerimport org.mockito.stubbing.Answer;
1301a46924878a85e2b8db914277801f747675fe8bChris Lattner
1401a46924878a85e2b8db914277801f747675fe8bChris Lattner/**
1501a46924878a85e2b8db914277801f747675fe8bChris Lattner * Enumeration of pre-configured mock answers
1601a46924878a85e2b8db914277801f747675fe8bChris Lattner * <p>
17c7855c6447efc16dd49685d81288edb061e6808eChris Lattner * You can use it to pass extra parameters to &#064;Mock annotation, see more info here: {@link Mock}
18c7855c6447efc16dd49685d81288edb061e6808eChris Lattner * <p>
19c7855c6447efc16dd49685d81288edb061e6808eChris Lattner * Example:
20c7855c6447efc16dd49685d81288edb061e6808eChris Lattner * <pre class="code"><code class="java">
21aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner *   &#064;Mock(answer = RETURNS_DEEP_STUBS) UserProvider userProvider;
22aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner * </code></pre>
23aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner * <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.
24aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner */
25aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattnerpublic enum Answers {
26aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner
27aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner    /**
28aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner     * The default configured answer of every mock.
29aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner     *
30aa4aa00ba7489742cf688c1e33fc077035c51f53Chris Lattner     * <p>Please see the {@link org.mockito.Mockito#RETURNS_DEFAULTS} documentation for more details.</p>
3196a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar     *
3296a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar     * @see org.mockito.Mockito#RETURNS_DEFAULTS
3396a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar     */
3496a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar    RETURNS_DEFAULTS(new GloballyConfiguredAnswer()),
3596a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar
3696a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar    /**
3796a731ddcab3b34d89564010fef7f02dd62f76afDaniel Dunbar     * An answer that returns smart-nulls.
38     *
39     * <p>Please see the {@link org.mockito.Mockito#RETURNS_SMART_NULLS} documentation for more details.</p>
40     *
41     * @see org.mockito.Mockito#RETURNS_SMART_NULLS
42     */
43    RETURNS_SMART_NULLS(new ReturnsSmartNulls()),
44
45    /**
46     * An answer that returns <strong>mocks</strong> (not stubs).
47     *
48     * <p>Please see the {@link org.mockito.Mockito#RETURNS_MOCKS} documentation for more details.</p>
49     *
50     * @see org.mockito.Mockito#RETURNS_MOCKS
51     */
52    RETURNS_MOCKS(new ReturnsMocks()),
53
54
55    /**
56     * An answer that returns <strong>deep stubs</strong> (not mocks).
57     *
58     * <p>Please see the {@link org.mockito.Mockito#RETURNS_DEEP_STUBS} documentation for more details.</p>
59     *
60     * @see org.mockito.Mockito#RETURNS_DEEP_STUBS
61     */
62    RETURNS_DEEP_STUBS(new ReturnsDeepStubs()),
63
64    /**
65     * An answer that calls the real methods (used for partial mocks).
66     *
67     * <p>Please see the {@link org.mockito.Mockito#CALLS_REAL_METHODS} documentation for more details.</p>
68     *
69     * @see org.mockito.Mockito#CALLS_REAL_METHODS
70     */
71    CALLS_REAL_METHODS(new CallsRealMethods())
72    ;
73
74    private Answer<Object> implementation;
75
76    private Answers(Answer<Object> implementation) {
77        this.implementation = implementation;
78    }
79
80    public Answer<Object> get() {
81        return implementation;
82    }
83}