View Javadoc
1   /*
2    * Copyright (c) 2006 JMockit developers
3    * This file is subject to the terms of the MIT license (see LICENSE.txt).
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  }