• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2007 Mockito contributors
3  * This program is made available under the terms of the MIT License.
4  */
5 package org.mockito.internal.stubbing;
6 
7 import static org.mockito.internal.exceptions.Reporter.incorrectUseOfApi;
8 
9 import java.util.List;
10 
11 import org.mockito.invocation.Invocation;
12 import org.mockito.quality.Strictness;
13 import org.mockito.stubbing.Answer;
14 import org.mockito.stubbing.OngoingStubbing;
15 
16 public class OngoingStubbingImpl<T> extends BaseStubbing<T> {
17 
18     private final InvocationContainerImpl invocationContainer;
19     private Strictness strictness;
20 
OngoingStubbingImpl(InvocationContainerImpl invocationContainer)21     public OngoingStubbingImpl(InvocationContainerImpl invocationContainer) {
22         super(invocationContainer.invokedMock());
23         this.invocationContainer = invocationContainer;
24     }
25 
26     @Override
thenAnswer(Answer<?> answer)27     public OngoingStubbing<T> thenAnswer(Answer<?> answer) {
28         if (!invocationContainer.hasInvocationForPotentialStubbing()) {
29             throw incorrectUseOfApi();
30         }
31 
32         invocationContainer.addAnswer(answer, strictness);
33         return new ConsecutiveStubbing<T>(invocationContainer);
34     }
35 
getRegisteredInvocations()36     public List<Invocation> getRegisteredInvocations() {
37         // TODO interface for tests
38         return invocationContainer.getInvocations();
39     }
40 
setStrictness(Strictness strictness)41     public void setStrictness(Strictness strictness) {
42         this.strictness = strictness;
43     }
44 }
45