Package ch.inftec.ju.util.general

Source Code of ch.inftec.ju.util.general.DescriptorTest

package ch.inftec.ju.util.general;

import junit.framework.Assert;

import org.junit.Test;

import ch.inftec.ju.util.event.JuEventUtils;
import ch.inftec.ju.util.event.JuEventUtils.TestUpdateListener;
import ch.inftec.ju.util.general.DescriptorUtils.AbstractDescriptionEvaluator;

/**
* Descriptor related tests.
* @author tgdmemae
*
*/
public class DescriptorTest {
  @Test
  public void descriptor() {
    Descriptor d = DescriptorUtils.newInstance("Name", "Description");
    Assert.assertEquals("Name", d.getName());
    Assert.assertEquals("Description", d.getDescription());
    Assert.assertEquals("Name", d.toString());
  }
 
  @Test
  public void descriptorBuilder() {
    Descriptor d = DescriptorUtils.builder("Name")
        .description("Description")
        .setObject(Integer.class, 1)
        .setObject(Long.class, 2L)
        .getDescriptor();
   
    Assert.assertEquals("Name", d.getName());
    Assert.assertEquals("Description", d.getDescription());
    Assert.assertEquals("Name", d.toString());
    Assert.assertEquals((Integer)1, d.getObject(Integer.class));
    Assert.assertEquals((Long)2L, d.getObject(Long.class));
  }
 
  private String evaluatorDescription;
 
  /**
   * Tests update events of the descriptor.
   */
  @Test
  public void descripionEvaluator() {
    AbstractDescriptionEvaluator descriptionEvaluator = new AbstractDescriptionEvaluator() {
      @Override
      protected String evaluateDescription() {
        return evaluatorDescription;
      }
    };
   
    Descriptor d = DescriptorUtils.builder("Name")
        .description("1")
        .evaluator(descriptionEvaluator)
        .getDescriptor();
   
    evaluatorDescription = "2";
    Assert.assertEquals("2", d.getDescription());
   
    // Make sure evaluate is only called after call to updateDescription
    evaluatorDescription = "3";
    Assert.assertEquals("2", d.getDescription());
    descriptionEvaluator.updateDescription();
    Assert.assertEquals("3", d.getDescription());
   
    // Check event
    TestUpdateListener<Descriptor> testListener = JuEventUtils.newTestUpdateListener();
    d.getUpdateNotifier().addListener(testListener);
    evaluatorDescription = "4";
    descriptionEvaluator.updateDescription();
    Assert.assertEquals("4", d.getDescription());
    testListener.assertOneCall();
 
 
//  @Test
//  public void descriptorBase() {
//    DescriptorBase db = new DescriptorBase();
//    Descriptor d = db;
//   
//    Assert.assertNull(d.getName());
//    Assert.assertNull(d.getDescription());
//   
//    db.setName("Test");
//    Assert.assertEquals("Test", d.getName());
//   
//    Assert.assertNull(d.getObject(Integer.class));
//   
//    db.setObject(Integer.class, 1);
//    Assert.assertEquals(new Integer(1), d.getObject(Integer.class));
//  }
 
//  @Test
//  public void descriptorDecorator() {
//    DescriptorBase db = new DescriptorBase("BaseName", "BaseDescription");
//    db.setObject(String.class, "Object");
//   
//    DescriptorDecorator dd = new DescriptorDecorator(db);
//    Assert.assertEquals("BaseName", dd.getName());
//    Assert.assertEquals("BaseDescription", dd.getDescription());
//    Assert.assertEquals("Object", dd.getObject(String.class));
//   
//    dd.setPrefix("Hello: ", "World: ");
//    Assert.assertEquals("Hello: BaseName", dd.getName());
//    Assert.assertEquals("World: BaseDescription", dd.getDescription());
//  }
}
TOP

Related Classes of ch.inftec.ju.util.general.DescriptorTest

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.