All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.internal.expectations.PartiallyMockedInstances Maven / Gradle / Ivy

/*
 * Copyright (c) 2006 JMockit developers
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.internal.expectations;

import java.util.*;
import javax.annotation.*;

import static mockit.internal.util.Utilities.containsReference;

final class PartiallyMockedInstances
{
   @Nonnull private final List dynamicMockInstancesToMatch;

   PartiallyMockedInstances(@Nonnull List dynamicMockInstancesToMatch) {
      this.dynamicMockInstancesToMatch = dynamicMockInstancesToMatch;
   }

   boolean isToBeMatchedOnInstance(@Nonnull Object mock) {
      return containsReference(dynamicMockInstancesToMatch, mock);
   }

   boolean isDynamicMockInstanceOrClass(@Nonnull Object invokedInstance, @Nonnull Object invocationInstance) {
      if (containsReference(dynamicMockInstancesToMatch, invokedInstance)) {
         return true;
      }

      Class invokedClass = invocationInstance.getClass();

      for (Object dynamicMock : dynamicMockInstancesToMatch) {
         if (dynamicMock.getClass() == invokedClass) {
            return true;
         }
      }

      return false;
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy