1 /* 2 * Copyright (c) 2018 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockito.internal.listeners; 6 7 import java.util.Collection; 8 import java.util.List; 9 10 import org.mockito.internal.creation.settings.CreationSettings; 11 import org.mockito.invocation.Invocation; 12 import org.mockito.listeners.StubbingLookupEvent; 13 import org.mockito.listeners.StubbingLookupListener; 14 import org.mockito.mock.MockCreationSettings; 15 import org.mockito.stubbing.Stubbing; 16 17 public final class StubbingLookupNotifier { 18 notifyStubbedAnswerLookup( Invocation invocation, Stubbing stubbingFound, Collection<Stubbing> allStubbings, CreationSettings creationSettings)19 public static void notifyStubbedAnswerLookup( 20 Invocation invocation, 21 Stubbing stubbingFound, 22 Collection<Stubbing> allStubbings, 23 CreationSettings creationSettings) { 24 List<StubbingLookupListener> listeners = creationSettings.getStubbingLookupListeners(); 25 if (listeners.isEmpty()) { 26 return; 27 } 28 StubbingLookupEvent event = 29 new Event(invocation, stubbingFound, allStubbings, creationSettings); 30 for (StubbingLookupListener listener : listeners) { 31 listener.onStubbingLookup(event); 32 } 33 } 34 35 static class Event implements StubbingLookupEvent { 36 private final Invocation invocation; 37 private final Stubbing stubbing; 38 private final Collection<Stubbing> allStubbings; 39 private final MockCreationSettings mockSettings; 40 Event( Invocation invocation, Stubbing stubbing, Collection<Stubbing> allStubbings, MockCreationSettings mockSettings)41 public Event( 42 Invocation invocation, 43 Stubbing stubbing, 44 Collection<Stubbing> allStubbings, 45 MockCreationSettings mockSettings) { 46 this.invocation = invocation; 47 this.stubbing = stubbing; 48 this.allStubbings = allStubbings; 49 this.mockSettings = mockSettings; 50 } 51 52 @Override getInvocation()53 public Invocation getInvocation() { 54 return invocation; 55 } 56 57 @Override getStubbingFound()58 public Stubbing getStubbingFound() { 59 return stubbing; 60 } 61 62 @Override getAllStubbings()63 public Collection<Stubbing> getAllStubbings() { 64 return allStubbings; 65 } 66 67 @Override getMockSettings()68 public MockCreationSettings getMockSettings() { 69 return mockSettings; 70 } 71 } 72 StubbingLookupNotifier()73 private StubbingLookupNotifier() {} 74 } 75