Home | History | Annotate | Download | only in stubbing
      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 org.mockito.exceptions.Reporter;
      8 import org.mockito.invocation.Invocation;
      9 import org.mockito.stubbing.Answer;
     10 import org.mockito.stubbing.DeprecatedOngoingStubbing;
     11 import org.mockito.stubbing.OngoingStubbing;
     12 
     13 import java.util.List;
     14 
     15 public 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