1 /* 2 * Copyright (c) 2016 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockito.internal.framework; 6 7 import org.mockito.MockitoFramework; 8 import org.mockito.internal.configuration.plugins.Plugins; 9 import org.mockito.internal.invocation.DefaultInvocationFactory; 10 import org.mockito.internal.util.Checks; 11 import org.mockito.invocation.InvocationFactory; 12 import org.mockito.listeners.MockitoListener; 13 import org.mockito.plugins.InlineMockMaker; 14 import org.mockito.plugins.MockMaker; 15 import org.mockito.plugins.MockitoPlugins; 16 17 import static org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress; 18 19 public class DefaultMockitoFramework implements MockitoFramework { 20 addListener(MockitoListener listener)21 public MockitoFramework addListener(MockitoListener listener) { 22 Checks.checkNotNull(listener, "listener"); 23 mockingProgress().addListener(listener); 24 return this; 25 } 26 removeListener(MockitoListener listener)27 public MockitoFramework removeListener(MockitoListener listener) { 28 Checks.checkNotNull(listener, "listener"); 29 mockingProgress().removeListener(listener); 30 return this; 31 } 32 33 @Override getPlugins()34 public MockitoPlugins getPlugins() { 35 return Plugins.getPlugins(); 36 } 37 38 @Override getInvocationFactory()39 public InvocationFactory getInvocationFactory() { 40 return new DefaultInvocationFactory(); 41 } 42 getInlineMockMaker()43 private InlineMockMaker getInlineMockMaker() { 44 MockMaker mockMaker = Plugins.getMockMaker(); 45 return (mockMaker instanceof InlineMockMaker) ? (InlineMockMaker) mockMaker : null; 46 } 47 48 @Override clearInlineMocks()49 public void clearInlineMocks() { 50 InlineMockMaker mockMaker = getInlineMockMaker(); 51 if (mockMaker != null) { 52 mockMaker.clearAllMocks(); 53 } 54 } 55 56 @Override clearInlineMock(Object mock)57 public void clearInlineMock(Object mock) { 58 InlineMockMaker mockMaker = getInlineMockMaker(); 59 if (mockMaker != null) { 60 mockMaker.clearMock(mock); 61 } 62 } 63 } 64