/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestConstrainedBean.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.site; import com.uwyn.rife.site.TextualIdentifierGenerator; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; public class TestConstrainedBean extends TestCase { public TestConstrainedBean(String name) { super(name); } public void testInstantiation() { ConstrainedBean bean = new ConstrainedBean(); assertNull(bean.getAssociations()); assertFalse(bean.hasAssociations()); assertNull(bean.getUniques()); assertFalse(bean.hasUniques()); assertNull(bean.getTextualIdentifier()); assertFalse(bean.hasTextualIdentifier()); assertNull(bean.getDefaultOrdering()); assertFalse(bean.hasDefaultOrdering()); } public void testAssociations() { Class[] associations = new Class[] {RegularBeanImpl.class, InitializedBeanImpl.class}; ConstrainedBean bean = new ConstrainedBean(); assertSame(bean, bean.associations(associations)); assertTrue(bean.hasAssociations()); assertSame(associations, bean.getAssociations()); assertSame(bean, bean.associations((Class[])null)); assertFalse(bean.hasAssociations()); assertNull(bean.getAssociations()); associations = new Class[0]; assertSame(bean, bean.associations(associations)); assertFalse(bean.hasAssociations()); assertSame(associations, bean.getAssociations()); } public void testUniques() { ConstrainedBean bean = new ConstrainedBean(); assertSame(bean, bean.unique()); assertTrue(bean.hasUniques()); assertNotNull(bean.getUniques()); assertEquals(1, bean.getUniques().size()); assertEquals(0, ((String[])bean.getUniques().get(0)).length); assertSame(bean, bean.uniques(null)); assertFalse(bean.hasUniques()); assertNull(bean.getUniques()); final String[] first_unique = new String[] {"one", "two", "three"}; final String[] second_unique = new String[] {"one2", "two2", "three2", "four2"}; final String[] third_unique = new String[] {"one3", "two3"}; assertSame(bean, bean.unique(first_unique)); assertTrue(bean.hasUniques()); assertNotNull(bean.getUniques()); assertEquals(1, bean.getUniques().size()); assertSame(first_unique, bean.getUniques().get(0)); assertSame(bean, bean.unique(second_unique)); assertTrue(bean.hasUniques()); assertEquals(2, bean.getUniques().size()); assertSame(first_unique, bean.getUniques().get(0)); assertSame(second_unique, bean.getUniques().get(1)); assertSame(bean, bean.unique(third_unique)); assertTrue(bean.hasUniques()); assertEquals(3, bean.getUniques().size()); assertSame(first_unique, bean.getUniques().get(0)); assertSame(second_unique, bean.getUniques().get(1)); assertSame(third_unique, bean.getUniques().get(2)); assertSame(bean, bean.uniques(null)); assertFalse(bean.hasUniques()); assertNull(bean.getUniques()); assertSame(bean, bean.uniques(new ArrayList<String[]> () {{ add(first_unique); add(second_unique); add(third_unique); }} )); assertTrue(bean.hasUniques()); assertEquals(3, bean.getUniques().size()); assertSame(first_unique, bean.getUniques().get(0)); assertSame(second_unique, bean.getUniques().get(1)); assertSame(third_unique, bean.getUniques().get(2)); } public void testTextualIdentifier() { TextualIdentifierGenerator<InitializedBeanImpl> identifier = new TextualIdentifierGenerator<InitializedBeanImpl>() { public void setBean(InitializedBeanImpl bean) { } public String generateIdentifier() { return null; } }; ConstrainedBean bean = new ConstrainedBean(); assertSame(bean, bean.textualIdentifier(identifier)); assertTrue(bean.hasTextualIdentifier()); assertSame(identifier, bean.getTextualIdentifier()); assertSame(bean, bean.textualIdentifier(null)); assertFalse(bean.hasTextualIdentifier()); assertNull(bean.getTextualIdentifier()); } public void testDefaultOrdering() { ConstrainedBean bean = new ConstrainedBean(); assertSame(bean, bean.defaultOrder("col1")); assertTrue(bean.hasDefaultOrdering()); assertEquals(1, bean.getDefaultOrdering().size()); assertEquals("col1", ((ConstrainedBean.Order)bean.getDefaultOrdering().get(0)).getPropertyName()); assertSame(ConstrainedBean.ASC, ((ConstrainedBean.Order)bean.getDefaultOrdering().get(0)).getDirection()); assertSame(bean, bean.defaultOrder("col2", ConstrainedBean.DESC)); assertTrue(bean.hasDefaultOrdering()); assertEquals(2, bean.getDefaultOrdering().size()); assertEquals("col2", ((ConstrainedBean.Order)bean.getDefaultOrdering().get(1)).getPropertyName()); assertSame(ConstrainedBean.DESC, ((ConstrainedBean.Order)bean.getDefaultOrdering().get(1)).getDirection()); assertSame(bean, bean.defaultOrdering(null)); assertFalse(bean.hasDefaultOrdering()); assertNull(bean.getDefaultOrdering()); List<ConstrainedBean.Order> ordering = new ArrayList<ConstrainedBean.Order>(); ordering.add(new ConstrainedBean.Order("col3", ConstrainedBean.DESC)); ordering.add(new ConstrainedBean.Order("col4", ConstrainedBean.ASC)); ordering.add(new ConstrainedBean.Order("col5", ConstrainedBean.DESC)); assertSame(bean, bean.defaultOrdering(ordering)); assertTrue(bean.hasDefaultOrdering()); assertEquals(3, bean.getDefaultOrdering().size()); assertEquals("col3", ((ConstrainedBean.Order)bean.getDefaultOrdering().get(0)).getPropertyName()); assertSame(ConstrainedBean.DESC, ((ConstrainedBean.Order)bean.getDefaultOrdering().get(0)).getDirection()); assertEquals("col4", ((ConstrainedBean.Order)bean.getDefaultOrdering().get(1)).getPropertyName()); assertSame(ConstrainedBean.ASC, ((ConstrainedBean.Order)bean.getDefaultOrdering().get(1)).getDirection()); assertEquals("col5", ((ConstrainedBean.Order)bean.getDefaultOrdering().get(2)).getPropertyName()); assertSame(ConstrainedBean.DESC, ((ConstrainedBean.Order)bean.getDefaultOrdering().get(2)).getDirection()); } }