Package classloading.enhancers

Source Code of classloading.enhancers.PropertiesEnhancerTest

package classloading.enhancers;

import static org.junit.Assert.*;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;

import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;

import models.Project;

import org.apache.commons.beanutils.PropertyUtils;
import org.junit.BeforeClass;
import org.junit.Test;

import play.test.FunctionalTest;
import play.test.UnitTest;


public class PropertiesEnhancerTest extends FunctionalTest {

    @Test
    public void testEnhancerMethods() throws Exception {
  Project obj = new Project();
  // get all of the properties for a POJO
  PropertyDescriptor[] descriptors = PropertyUtils
    .getPropertyDescriptors(obj);
     
        //master version also reports JPAContext, probably due to other multidb impl
  assertEquals(11, descriptors.length);

  assertTrue(validAccessorFor(obj, descriptors, "class", true, false));
  assertTrue(validAccessorFor(obj, descriptors, "companies", true, true));
  assertTrue(validAccessorFor(obj, descriptors, "company", true, true));
  assertTrue(validAccessorFor(obj, descriptors, "endDate", true, true));
  assertTrue(validAccessorFor(obj, descriptors, "entityId", true, false));
  assertTrue(validAccessorFor(obj, descriptors, "id", true, false));
  assertTrue(validAccessorFor(obj, descriptors, "name", true, true));
  assertTrue(validAccessorFor(obj, descriptors, "observation", true, true));
  assertTrue(validAccessorFor(obj, descriptors, "startDate", true, true));
    }

    private boolean validAccessorFor(Object obj,
      PropertyDescriptor[] descriptors, String name, boolean readMethod,
      boolean writeMethod) {
  // go through all values
  for (int i = 0; i < descriptors.length; i++) {
      PropertyDescriptor descriptor = descriptors[i];
      if (descriptor.getName().equals(name)) {
    if (readMethod) {
        Method method = descriptor.getReadMethod();
        if (method == null) {
      return false;
        }
    }

    if (writeMethod) {
        Method method = descriptor.getWriteMethod();
        if (method == null) {
      return false;
        }
    }
    return true;
      }
  }
  return false;
    }

    @Test
    public void testEnhancerProperty() throws Exception {
  Project obj = new Project();
  obj.name = "toto";
  Object value = PropertyUtils.getProperty(obj, "name");

  assertNotNull(value);
  assertEquals("toto", value);
    }
}
TOP

Related Classes of classloading.enhancers.PropertiesEnhancerTest

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.