1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5package org.mockito.internal.stubbing; 6 7import org.mockito.exceptions.Reporter; 8import org.mockito.invocation.Invocation; 9import org.mockito.stubbing.Answer; 10import org.mockito.stubbing.DeprecatedOngoingStubbing; 11import org.mockito.stubbing.OngoingStubbing; 12 13import java.util.List; 14 15public class OngoingStubbingImpl<T> extends BaseStubbing<T> { 16 17 private final InvocationContainerImpl invocationContainerImpl; 18 19 public OngoingStubbingImpl(InvocationContainerImpl invocationContainerImpl) { 20 this.invocationContainerImpl = invocationContainerImpl; 21 } 22 23 public OngoingStubbing<T> thenAnswer(Answer<?> answer) { 24 if(!invocationContainerImpl.hasInvocationForPotentialStubbing()) { 25 new Reporter().incorrectUseOfApi(); 26 } 27 28 invocationContainerImpl.addAnswer(answer); 29 return new ConsecutiveStubbing<T>(invocationContainerImpl); 30 } 31 32 public OngoingStubbing<T> then(Answer<?> answer) { 33 return thenAnswer(answer); 34 } 35 36 public DeprecatedOngoingStubbing<T> toAnswer(Answer<?> answer) { 37 invocationContainerImpl.addAnswer(answer); 38 return new ConsecutiveStubbing<T>(invocationContainerImpl); 39 } 40 41 public List<Invocation> getRegisteredInvocations() { 42 //TODO interface for tests 43 return invocationContainerImpl.getInvocations(); 44 } 45 46 public <M> M getMock() { 47 return (M) invocationContainerImpl.invokedMock(); 48 } 49} 50