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 APIs for the creation of the objects to be tested, for mocking dependencies, and for faking external APIs; JUnit (4 & 5) and TestNG test runners are supported. It also contains an advanced code coverage tool.

There is a newer version: 1.49
Show newest version
/*
 * Copyright (c) 2006 Rogério Liesenfeld
 * 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