1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 6package org.mockito.internal.progress; 7 8import java.io.Serializable; 9 10import org.mockito.MockSettings; 11import org.mockito.internal.listeners.MockingProgressListener; 12import org.mockito.invocation.Invocation; 13import org.mockito.verification.VerificationMode; 14 15@SuppressWarnings("unchecked") 16public class ThreadSafeMockingProgress implements MockingProgress, Serializable { 17 18 private static final long serialVersionUID = 6839454041642082618L; 19 private static ThreadLocal<MockingProgress> mockingProgress = new ThreadLocal<MockingProgress>(); 20 21 static MockingProgress threadSafely() { 22 if (mockingProgress.get() == null) { 23 mockingProgress.set(new MockingProgressImpl()); 24 } 25 return mockingProgress.get(); 26 } 27 28 public void reportOngoingStubbing(IOngoingStubbing iOngoingStubbing) { 29 threadSafely().reportOngoingStubbing(iOngoingStubbing); 30 } 31 32 public IOngoingStubbing pullOngoingStubbing() { 33 return threadSafely().pullOngoingStubbing(); 34 } 35 36 public void verificationStarted(VerificationMode verify) { 37 threadSafely().verificationStarted(verify); 38 } 39 40 public VerificationMode pullVerificationMode() { 41 return threadSafely().pullVerificationMode(); 42 } 43 44 public void stubbingStarted() { 45 threadSafely().stubbingStarted(); 46 } 47 48 public void validateState() { 49 threadSafely().validateState(); 50 } 51 52 public void stubbingCompleted(Invocation invocation) { 53 threadSafely().stubbingCompleted(invocation); 54 } 55 56 public String toString() { 57 return threadSafely().toString(); 58 } 59 60 public void reset() { 61 threadSafely().reset(); 62 } 63 64 public void resetOngoingStubbing() { 65 threadSafely().resetOngoingStubbing(); 66 } 67 68 public ArgumentMatcherStorage getArgumentMatcherStorage() { 69 return threadSafely().getArgumentMatcherStorage(); 70 } 71 72 public void mockingStarted(Object mock, Class classToMock) { 73 threadSafely().mockingStarted(mock, classToMock); 74 } 75 76 public void setListener(MockingProgressListener listener) { 77 threadSafely().setListener(listener); 78 } 79}