Package net.sf.fmj.test.compat.playerbean

Source Code of net.sf.fmj.test.compat.playerbean.MediaPlayerBeanInfoTest

package net.sf.fmj.test.compat.playerbean;

import java.beans.BeanDescriptor;
import java.beans.EventSetDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;

import javax.media.bean.playerbean.MediaPlayer;
import javax.media.bean.playerbean.MediaPlayerBeanInfo;
import javax.media.bean.playerbean.MediaPlayerMediaLocationEditor;

import junit.framework.TestCase;

public class MediaPlayerBeanInfoTest extends TestCase
{

  public void testMediaPlayerBeanInfo() throws IntrospectionException
  {
    MediaPlayerBeanInfo info = new MediaPlayerBeanInfo();
    PropertyDescriptor[] pds = info.getPropertyDescriptors();

   
    PropertyDescriptor[] pds2 = new PropertyDescriptor[] {
       buildPropertyDescriptor(MediaPlayer.class, "mediaLocation", "media location", MediaPlayerMediaLocationEditor.class, true),
       buildPropertyDescriptor(MediaPlayer.class, "controlPanelVisible", "show control panel", null, true),
       buildPropertyDescriptor(MediaPlayer.class, "cachingControlVisible", "show caching control", null, true),
       buildPropertyDescriptor(MediaPlayer.class, "fixedAspectRatio", "fixedAspectRatio", null, true),
       buildPropertyDescriptor(MediaPlayer.class, "playbackLoop", "loop", null, true),
       buildPropertyDescriptor(MediaPlayer.class, "volumeLevel", "volume", javax.media.bean.playerbean.MediaPlayerVolumePropertyEditor.class, true),
       buildPropertyDescriptor(MediaPlayer.class, "background", "background", null, false),
       buildPropertyDescriptor(MediaPlayer.class, "foreground", "foreground", null, false),
       buildPropertyDescriptor(MediaPlayer.class, "font", "font", null, false),
    };

    for (int i = 0; i < pds.length; ++i)
    {
      if (i >= pds2.length)
      {
        print(pds[i]);
        continue;
      }
      PropertyDescriptor a = pds[i];
      PropertyDescriptor b = pds2[i];
      if (!a.equals(b))
      {
        print(a);
        print(b);
        System.out.println("eq: " + eq(a, b));
        assertTrue(false);
      }
    }
   
    assertEquals(info.getDefaultPropertyIndex(), 1);
    for (int i = 0; i < 20; ++i)
    assertEquals(info.getIcon(i), null);

   
    final BeanDescriptor bd = info.getBeanDescriptor();
    assertEquals(bd.getDisplayName(), "MediaPlayer Bean");
    assertEquals(bd.getName(), "MediaPlayer");
    assertEquals(bd.getShortDescription(), "MediaPlayer Bean");
    assertEquals(bd.getBeanClass(), MediaPlayer.class);
    assertEquals(bd.getCustomizerClass(), null);
    assertEquals(bd.isExpert(), false);   
    assertEquals(bd.isHidden(), false);
    assertEquals(bd.isPreferred(), false);
   
    try
    {
      EventSetDescriptor[] eds = info.getEventSetDescriptors();
      for (int i = 0; i < eds.length; ++i)
      {
        EventSetDescriptor ed = eds[i];
        System.out.println(ed.getAddListenerMethod());
        System.out.println(ed.getDisplayName());
        System.out.println();
      }
      assertTrue(false);
    }
    catch (Throwable e)
    {  // TODO: do we really want to emulate this behavior?
    }
   

  }
 
  private static boolean nullSafeEquals(Object a, Object b)
  {
    if (a == null && b == null)
      return true;
    if (a == null || b == null)
      return false;
    return a.equals(b);
  }
 
  private static boolean eq(PropertyDescriptor a, PropertyDescriptor b)
  {
    if (a == b)
      return true;
    if (!a.getName().equals(b.getName()))
    {  System.out.println("getName");
      return false;
    }
    if (!a.getDisplayName().equals(b.getDisplayName()))
    {  System.out.println("getDisplayName");
      return false;
    }
    if (!nullSafeEquals(a.getPropertyEditorClass(), b.getPropertyEditorClass()))
    {  System.out.println("getPropertyEditorClass");
      return false;
    }
    if (!a.getPropertyType().equals(b.getPropertyType()))
    {  System.out.println("getPropertyType");
      return false;
    }
    if (!a.getReadMethod().equals(b.getReadMethod()))
    {  System.out.println("getReadMethod");
      return false;
    }
    if (!a.getShortDescription().equals(b.getShortDescription()))
    {  System.out.println("getShortDescription");
      return false;
    }
    if (!a.getWriteMethod().equals(b.getWriteMethod()))
    {  System.out.println("getWriteMethod");
      return false;
    }

    if (a.isBound() != b.isBound())
    {  System.out.println("isBound");
      return false;
    }

    if (a.isConstrained() != b.isConstrained())
    {  System.out.println("isConstrained");
      return false;
    }
   
    if (a.isExpert() != b.isExpert())
    {  System.out.println("isExpert");
      return false;
    }
   
    if (a.isHidden() != b.isHidden())
    {  System.out.println("isHidden");
      return false;
    }
   
    if (a.isPreferred() != b.isPreferred())
    {  System.out.println("isPreferred");
      return false;
    }

   
    return true;
  }
 
  private static PropertyDescriptor buildPropertyDescriptor(Class clazz, String name, String displayName, Class propertyEditorClass, boolean bound) throws IntrospectionException
  {
    final PropertyDescriptor pd = new PropertyDescriptor(name, clazz);
    pd.setDisplayName(displayName);
    pd.setPropertyEditorClass(propertyEditorClass);
    pd.setBound(bound)
    return pd;
  }
 
  private static final void print(PropertyDescriptor pd)
  {
    System.out.println(pd.getDisplayName());
    System.out.println(pd.getName());
    System.out.println(pd.getShortDescription());
    System.out.println(pd.getPropertyEditorClass());
    System.out.println(pd.getPropertyType());
    System.out.println(pd.getReadMethod());
    System.out.println(pd.getWriteMethod());
    //System.out.println(pd.getValue());// TODO
    System.out.println();
  }
}
TOP

Related Classes of net.sf.fmj.test.compat.playerbean.MediaPlayerBeanInfoTest

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.