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