package org.rapidbeans.core.basic; import java.util.TreeSet; import junit.framework.TestCase; import org.rapidbeans.core.common.ReadonlyListCollection; import org.rapidbeans.core.type.RapidBeansTypeLoader; import org.rapidbeans.core.type.TypePropertyCollection; import org.rapidbeans.core.type.TypeRapidBean; import org.rapidbeans.test.TestBean; import org.rapidbeans.test.TestHelper; import org.rapidbeans.test.codegen.AddressBook; import org.rapidbeans.test.codegen.Person; /** * UnitTests f�r IdKeyprops. * * @author Martin Bluemel */ public class IdKeypropsTest extends TestCase { /** * Test method for toString(). */ public void testToString() { GenericBean bean = createTestBean("Bl�mel", "Martin", "19641014"); IdKeyprops id = new IdKeyprops(bean, null); assertEquals("Bl�mel_Martin_19641014", id.toString()); } /** * Test method for equals(). */ public void testEqualsEqual() { GenericBean bean1 = createTestBean("Bl�mel", "Martin", "19641014"); IdKeyprops id1 = new IdKeyprops(bean1, null); GenericBean bean2 = createTestBean("Bl�mel", "Martin", "19641014"); IdKeyprops id2 = new IdKeyprops(bean2, null); assertEquals(id1, id2); } /** * Test method for equals(). */ public void testEqualsDifferent() { GenericBean bean1 = createTestBean("Bl�mel", "Martin", "19641014"); IdKeyprops id1 = new IdKeyprops(bean1, null); GenericBean bean2 = createTestBean("Bl�mel", "Johannes", "19641014"); IdKeyprops id2 = new IdKeyprops(bean2, null); assertFalse(id1.equals(id2)); } /** * Test method for equals(). */ public void testEqualsWrongType() { TestBean bean = new TestBean("\"Bluemel\" \"Martin\" \"19641014\""); bean.getType().setIdGenerator(new IdGeneratorUuid()); IdKeyprops id1 = new IdKeyprops(bean, null); IdUuid id2 = new IdUuid(bean, null); assertFalse(id1.equals(id2)); } public void testSortingSimple() { try { AddressBook book = new AddressBook(); Person p1 = new Person("a"); Person p2 = new Person("b"); Person p3 = new Person("c"); book.addPerson(p3); book.addPerson(p2); book.addPerson(p1); ReadonlyListCollection<Person> list = (ReadonlyListCollection<Person>) book.getPersons(); assertSame(p3, list.get(0)); assertSame(p2, list.get(1)); assertSame(p1, list.get(2)); } finally { RapidBeansTypeLoader.getInstance().unregisterType(new AddressBook().getType().getName()); RapidBeansTypeLoader.getInstance().unregisterType(new Person().getType().getName()); } } public void testSortingReal() { try { AddressBook book = new AddressBook(); TypePropertyCollection colproptype = (TypePropertyCollection) book.getProperty("persons").getType(); colproptype.setCollectionClass(TreeSet.class); Person p1 = new Person("a"); Person p2 = new Person("b"); Person p3 = new Person("c"); book.addPerson(p3); book.addPerson(p1); book.addPerson(p2); ReadonlyListCollection<Person> list = (ReadonlyListCollection<Person>) book.getPersons(); assertSame(p1, list.get(0)); assertSame(p2, list.get(1)); assertSame(p3, list.get(2)); } finally { TypeRapidBean abType = new AddressBook().getType(); TypeRapidBean pType = new Person().getType(); if (RapidBeansTypeLoader.getInstance().lookupType(abType.getName()) != null) { RapidBeansTypeLoader.getInstance().unregisterType(abType.getName()); } if (RapidBeansTypeLoader.getInstance().lookupType(abType.getName()) != null) { RapidBeansTypeLoader.getInstance().unregisterType(pType.getName()); } } } /** * create a generic TestBean. * * @param name * the last name * @param prename * the first name * @param dateofbirth * the date of birth * @return the test bean */ private GenericBean createTestBean(final String name, final String prename, final String dateofbirth) { String descr = "<beantype name=\"TestBean\">" + "<property name=\"name\" key=\"true\"/>" + "<property name=\"prename\" key=\"true\"/>" + "<property name=\"dateofbirth\" type=\"date\" key=\"true\"/>" + "</beantype>"; GenericBean bean = TestHelper.createGenericBeanInstance(descr); bean.setPropValue("name", name); bean.setPropValue("prename", prename); bean.setPropValue("dateofbirth", dateofbirth); return bean; } }