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