1 /* 2 * Copyright 2001-2009 OFFIS, Tammo Freese 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.easymock; 17 18 /** 19 * Allows setting expectations for an associated expected invocation. 20 * Implementations of this interface are returned by 21 * {@link EasyMock#expect(Object)}, and by {@link EasyMock#expectLastCall()}. 22 * 23 * @param <T> type of what should be returned by this expected call 24 */ 25 public interface IExpectationSetters<T> { 26 27 /** 28 * Sets a return value that will be returned for the expected invocation. 29 * 30 * @param value 31 * the value to return. 32 * @return this object to allow method call chaining. 33 */ andReturn(T value)34 IExpectationSetters<T> andReturn(T value); 35 36 /** 37 * Sets a throwable that will be thrown for the expected invocation. 38 * 39 * @param throwable 40 * the throwable to throw. 41 * @return this object to allow method call chaining. 42 */ andThrow(Throwable throwable)43 IExpectationSetters<T> andThrow(Throwable throwable); 44 45 /** 46 * Sets an object that will be used to calculate the answer for the expected 47 * invocation (either return a value, or throw an exception). 48 * 49 * @param answer 50 * the object used to answer the invocation. 51 * @return this object to allow method call chaining. 52 */ andAnswer(IAnswer<? extends T> answer)53 IExpectationSetters<T> andAnswer(IAnswer<? extends T> answer); 54 55 /** 56 * Sets an object implementing the same interface as the mock. The expected 57 * method call will be delegated to it with the actual arguments. The answer 58 * returned by this call will then be the answer returned by the mock 59 * (either return a value, or throw an exception). 60 * 61 * @param delegateTo 62 * the object the call is delegated to. 63 * @return the value returned by the delegated call. 64 */ andDelegateTo(Object delegateTo)65 IExpectationSetters<T> andDelegateTo(Object delegateTo); 66 67 /** 68 * Sets a stub return value that will be returned for the expected 69 * invocation. 70 * 71 * @param value 72 * the value to return. 73 */ andStubReturn(T value)74 void andStubReturn(T value); 75 76 /** 77 * Sets a stub throwable that will be thrown for the expected invocation. 78 * 79 * @param throwable 80 * the throwable to throw. 81 */ andStubThrow(Throwable throwable)82 void andStubThrow(Throwable throwable); 83 84 /** 85 * Sets a stub object that will be used to calculate the answer for the 86 * expected invocation (either return a value, or throw an exception). 87 * 88 * @param answer 89 * the object used to answer the invocation. 90 */ andStubAnswer(IAnswer<? extends T> answer)91 void andStubAnswer(IAnswer<? extends T> answer); 92 93 /** 94 * Sets a stub object implementing the same interface as the mock. The 95 * expected method call will be delegated to it with the actual arguments. 96 * The answer returned by this call will then be the answer returned by the 97 * mock (either return a value, or throw an exception). 98 * 99 * @param delegateTo 100 * the object the call is delegated to. 101 */ andStubDelegateTo(Object delegateTo)102 void andStubDelegateTo(Object delegateTo); 103 104 /** 105 * Sets stub behavior for the expected invocation (this is needed for void 106 * methods). 107 */ asStub()108 void asStub(); 109 110 /** 111 * Expect the last invocation <code>count</code> times. 112 * 113 * @param count 114 * the number of invocations expected. 115 * @return this object to allow method call chaining. 116 */ times(int count)117 IExpectationSetters<T> times(int count); 118 119 /** 120 * Expect the last invocation between <code>min</code> and 121 * <code>max</code> times. 122 * 123 * @param min 124 * the minimum number of invocations expected. 125 * @param max 126 * the maximum number of invocations expected. 127 * @return this object to allow method call chaining. 128 */ times(int min, int max)129 IExpectationSetters<T> times(int min, int max); 130 131 /** 132 * Expect the last invocation once. This is default in EasyMock. 133 * 134 * @return this object to allow method call chaining. 135 */ once()136 IExpectationSetters<T> once(); 137 138 /** 139 * Expect the last invocation at least once. 140 * 141 * @return this object to allow method call chaining. 142 */ atLeastOnce()143 IExpectationSetters<T> atLeastOnce(); 144 145 /** 146 * Expect the last invocation any times. 147 * 148 * @return this object to allow method call chaining. 149 */ anyTimes()150 IExpectationSetters<T> anyTimes(); 151 } 152