Package org.springmodules.cache.config

Source Code of org.springmodules.cache.config.ConfigAssert

/*
* Created on Mar 6, 2006
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Copyright @2006 the original author or authors.
*/
package org.springmodules.cache.config;

import junit.framework.Assert;

import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConstructorArgumentValues;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.util.StringUtils;

/**
* <p>
* Assert methods related to schema-based configuration of Spring IoC
* containers.
* </p>
*
* @author Alex Ruiz
*/
public abstract class ConfigAssert {

  public static void assertBeanDefinitionHasConstructorArgument(
      Object expectedArgument, ConstructorArgumentValues argumentValues,
      int index, Class argumentType) {

    String message = "<Constructor argument with index [" + index + "]";

    ValueHolder argumentValue = argumentValues.getArgumentValue(index,
        argumentType);

    assertEquals(message, expectedArgument, argumentValue.getValue());
  }

  /**
   * Asserts that the given bean definition contains a property value equal to
   * the given one.
   *
   * @param beanDefinition
   *          the given bean definition
   * @param expectedPropertyValue
   *          the expected property value
   */
  public static void assertBeanDefinitionHasProperty(
      BeanDefinition beanDefinition, PropertyValue expectedPropertyValue) {

    assertPropertyIsPresent(beanDefinition.getPropertyValues(),
        expectedPropertyValue);
  }

  /**
   * Asserts that the given bean definition wraps a bean of the given class.
   *
   * @param beanDefinition
   *          the given bean definition
   * @param expectedClass
   *          the expected class of the wrapped bean
   */
  public static void assertBeanDefinitionWrapsClass(
      AbstractBeanDefinition beanDefinition, Class expectedClass) {
    Assert.assertEquals("<Bean definition class>", expectedClass,
        beanDefinition.getBeanClass());
  }

  /**
   * Asserts that both <code>{@link RuntimeBeanReference}</code> have the same
   * target bean name.
   *
   * @param message
   *          message to be displayed if this assertion is <code>false</code>
   * @param expected
   *          the runtime bean reference containing the expected target bean
   *          name
   * @param actual
   *          the runtime bean reference containing the actual target bean name
   */
  public static void assertEqualBeanNames(String message,
      RuntimeBeanReference expected, RuntimeBeanReference actual) {
    Assert.assertEquals(message, expected.getBeanName(), actual.getBeanName());
  }

  /**
   * Asserts the given set of property values contains the expected property
   * value.
   *
   * @param propertyValues
   *          the given set of property values
   * @param expectedPropertyValue
   *          the expected property value
   */
  public static void assertPropertyIsPresent(
      MutablePropertyValues propertyValues, PropertyValue expectedPropertyValue) {

    String propertyName = expectedPropertyValue.getName();
    PropertyValue actualPropertyValue = propertyValues
        .getPropertyValue(propertyName);

    Assert.assertNotNull("Property " + StringUtils.quote(propertyName)
        + " not found", actualPropertyValue);

    Object expectedValue = expectedPropertyValue.getValue();
    Object actualValue = actualPropertyValue.getValue();
    String message = "<Property " + StringUtils.quote(propertyName) + ">";

    assertEquals(message, expectedValue, actualValue);
  }

  private static void assertEquals(String message, Object expected,
      Object actual) {
    if (expected instanceof RuntimeBeanReference) {
      assertEqualBeanNames(message, (RuntimeBeanReference) expected,
          (RuntimeBeanReference) actual);

    } else {
      Assert.assertEquals(message, expected, actual);
    }

  }

}
TOP

Related Classes of org.springmodules.cache.config.ConfigAssert

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.