1
2
3
4
5
6 package mockit.internal.expectations;
7
8 import static mockit.internal.util.Utilities.containsReference;
9
10 import edu.umd.cs.findbugs.annotations.NonNull;
11
12 import java.util.List;
13
14 final class PartiallyMockedInstances {
15 @NonNull
16 private final List<?> dynamicMockInstancesToMatch;
17
18 PartiallyMockedInstances(@NonNull List<?> dynamicMockInstancesToMatch) {
19 this.dynamicMockInstancesToMatch = dynamicMockInstancesToMatch;
20 }
21
22 boolean isToBeMatchedOnInstance(@NonNull Object mock) {
23 return containsReference(dynamicMockInstancesToMatch, mock);
24 }
25
26 boolean isDynamicMockInstanceOrClass(@NonNull Object invokedInstance, @NonNull Object invocationInstance) {
27 if (containsReference(dynamicMockInstancesToMatch, invokedInstance)) {
28 return true;
29 }
30
31 Class<?> invokedClass = invocationInstance.getClass();
32
33 for (Object dynamicMock : dynamicMockInstancesToMatch) {
34 if (dynamicMock.getClass() == invokedClass) {
35 return true;
36 }
37 }
38
39 return false;
40 }
41 }