• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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