/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestCmfProperty.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.cmf;
import com.uwyn.rife.cmf.dam.exceptions.ContentManagerException;
import com.uwyn.rife.cmf.transform.ImageContentTransformer;
import junit.framework.TestCase;
import java.awt.*;
import java.util.Map;
public class TestCmfProperty extends TestCase
{
public TestCmfProperty(String name)
{
super(name);
}
public void testInstantiation()
{
CmfProperty property = new CmfProperty("property");
assertFalse(property.isListed());
assertEquals(-1, property.getPosition());
assertFalse(property.hasPosition());
assertNull(property.getMimeType());
assertFalse(property.hasMimeType());
assertFalse(property.isAutoRetrieved());
assertFalse(property.isFragment());
assertFalse(property.hasName());
assertNull(property.getName());
assertFalse(property.isOrdinal());
assertNull(property.getOrdinalRestriction());
assertFalse(property.hasOrdinalRestriction());
assertNull(property.getContentAttributes());
assertNull(property.getTransformer());
assertFalse(property.hasTransformer());
assertNull(property.getCachedLoadedData());
}
public void testListed()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.listed(true));
assertTrue(property.isListed());
property.setListed(false);
assertFalse(property.isListed());
}
public void testPosition()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.position(9));
assertEquals(9, property.getPosition());
assertTrue(property.hasPosition());
property.setPosition(-1);
assertEquals(-1, property.getPosition());
assertFalse(property.hasPosition());
}
public void testMimeType()
{
CmfProperty property = new CmfProperty("property");
property.setPersistent(true);
property.setDisplayedRaw(false);
assertSame(property, property.mimeType(MimeType.IMAGE_GIF));
assertEquals(MimeType.IMAGE_GIF, property.getMimeType());
assertTrue(property.hasMimeType());
assertFalse(property.isPersistent());
assertTrue(property.isDisplayedRaw());
property.setMimeType(null);
assertNull(property.getMimeType());
assertFalse(property.hasMimeType());
}
public void testAutoRetrieved()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.autoRetrieved(true));
assertTrue(property.isAutoRetrieved());
property.setAutoRetrieved(false);
assertFalse(property.isAutoRetrieved());
}
public void testName()
{
CmfProperty property = new CmfProperty("property");
property.setName("myname.gif");
assertTrue(property.hasName());
assertEquals("myname.gif", property.getName());
assertSame(property, property.name("anothername.png"));
assertTrue(property.hasName());
assertEquals("anothername.png", property.getName());
property.name(null);
assertFalse(property.hasName());
assertNull(property.getName());
}
public void testPersistent()
{
CmfProperty property = new CmfProperty("property");
property.setPersistent(true);
assertTrue(property.isPersistent());
property.setPersistent(false);
assertFalse(property.isPersistent());
property.mimeType(MimeType.IMAGE_GIF);
try
{
property.setPersistent(true);
fail();
}
catch (IllegalArgumentException e)
{
assertFalse(property.isPersistent());
}
property.setPersistent(false);
assertFalse(property.isPersistent());
}
public void testDisplayedRaw()
{
CmfProperty property = new CmfProperty("property");
property.setDisplayedRaw(true);
assertTrue(property.isDisplayedRaw());
property.setDisplayedRaw(false);
assertFalse(property.isDisplayedRaw());
property.mimeType(MimeType.IMAGE_GIF);
try
{
property.setDisplayedRaw(false);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(property.isDisplayedRaw());
}
property.setDisplayedRaw(true);
assertTrue(property.isDisplayedRaw());
}
public void testFragment()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.fragment(true));
assertTrue(property.isFragment());
property.setFragment(false);
assertFalse(property.isFragment());
}
public void testOrdinal()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.ordinal(true));
assertTrue(property.isOrdinal());
property.setOrdinal(false);
assertFalse(property.isOrdinal());
}
public void testOrdinalRestriction()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.ordinal(true, "restriction"));
assertTrue(property.isOrdinal());
assertTrue(property.hasOrdinalRestriction());
assertEquals("restriction", property.getOrdinalRestriction());
property.setOrdinal(false);
assertFalse(property.isOrdinal());
assertFalse(property.hasOrdinalRestriction());
assertNull(property.getOrdinalRestriction());
assertSame(property, property.ordinal(true, "restriction"));
assertSame(property, property.ordinal(false, "restriction2"));
assertFalse(property.hasOrdinalRestriction());
assertNull(property.getOrdinalRestriction());
}
public void testContentAttribute()
{
CmfProperty property = new CmfProperty("property");
assertSame(property, property.contentAttribute("attribute", true));
assertEquals("true", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", 'K'));
assertEquals("K", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", (byte)24));
assertEquals("24", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", (short)213));
assertEquals("213", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", 1243876));
assertEquals("1243876", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", 8692322879L));
assertEquals("8692322879", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", 6872.23f));
assertEquals("6872.23", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", 9249273.13d));
assertEquals("9249273.13", property.getContentAttributes().get("attribute"));
assertSame(property, property.contentAttribute("attribute", "somestring"));
assertEquals("somestring", property.getContentAttributes().get("attribute"));
}
public void testTransformer()
{
CmfProperty property = new CmfProperty("property");
ImageContentTransformer transformer = new ImageContentTransformer() {
public Image transform(Image data, Map<String, String> attributes)
throws ContentManagerException
{
return data;
}
};
assertSame(property, property.transformer(transformer));
assertEquals(transformer, property.getTransformer());
assertTrue(property.hasTransformer());
property.setTransformer(null);
assertNull(property.getTransformer());
assertFalse(property.hasTransformer());
}
public void testCachedLoadedData()
{
CmfProperty property = new CmfProperty("property");
Object cache = new Object();
property.setCachedLoadedData(cache);
assertSame(cache, property.getCachedLoadedData());
property.setCachedLoadedData(null);
assertNull(property.getCachedLoadedData());
}
}