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

mockit.integration.springframework.BeanLookup Maven / Gradle / Ivy

Go to download

JMockit is a Java toolkit for automated developer testing. It contains mocking/faking APIs and a code coverage tool, supporting both JUnit and TestNG. The mocking APIs allow all kinds of Java code, without testability restrictions, to be tested in isolation from selected dependencies.

There is a newer version: 1.49
Show newest version
/*
 * Copyright (c) 2006 JMockit developers
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.integration.springframework;

import javax.annotation.*;

import mockit.internal.injection.*;

import org.springframework.beans.factory.*;

final class BeanLookup
{
   @Nonnull
   static Object getBean(@Nonnull BeanExporter beanExporter, @Nonnull String name) {
      Object bean = beanExporter.getBean(name);

      if (bean == null) {
         throw new NoSuchBeanDefinitionException(name);
      }

      return bean;
   }

   @Nonnull @SuppressWarnings("unchecked")
   static  T getBean(@Nonnull BeanExporter beanExporter, @Nonnull String name, @Nullable Class requiredType) {
      if (requiredType == null) {
         return (T) getBean(beanExporter, name);
      }

      T bean = (T) beanExporter.getBean(name);

      if (bean != null) {
         Class actualType = bean.getClass();

         if (!requiredType.isAssignableFrom(actualType)) {
            throw new BeanNotOfRequiredTypeException(name, requiredType, actualType);
         }
      }
      else {
         bean = beanExporter.getBean(requiredType);

         if (bean == null) {
            throw new NoSuchBeanDefinitionException(requiredType, "with bean name \"" + name + '"');
         }
      }

      return bean;
   }

   @Nonnull
   static  T getBean(@Nonnull BeanExporter beanExporter, @Nonnull Class requiredType) {
      T bean = beanExporter.getBean(requiredType);

      if (bean == null) {
         throw new NoSuchBeanDefinitionException(requiredType);
      }

      return bean;
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy