View Javadoc
1   /*
2    * MIT License
3    * Copyright (c) 2006-2025 JMockit developers
4    * See LICENSE file for full license text.
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  }