[richfaces-svn-commits] JBoss Rich Faces SVN: r19016 - trunk/ui/iteration/ui/src/test/java/org/richfaces/component.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Mon Aug 30 10:13:53 EDT 2010


Author: abelevich
Date: 2010-08-30 10:13:52 -0400 (Mon, 30 Aug 2010)
New Revision: 19016

Added:
   trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java
Log:
rename and fix UIDataTableBaseTest 

Added: trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java
===================================================================
--- trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java	                        (rev 0)
+++ trunk/ui/iteration/ui/src/test/java/org/richfaces/component/UIDataTableTest.java	2010-08-30 14:13:52 UTC (rev 19016)
@@ -0,0 +1,274 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.richfaces.component;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import javax.el.ELContext;
+import javax.el.ExpressionFactory;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIOutput;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.model.DataVisitor;
+import org.ajax4jsf.model.ExtendedDataModel;
+import org.ajax4jsf.model.Range;
+import org.jboss.test.faces.AbstractFacesTest;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.richfaces.model.Arrangeable;
+import org.richfaces.model.ArrangeableState;
+import org.richfaces.model.FilterField;
+import org.richfaces.model.SortField;
+import org.richfaces.model.SortMode;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class UIDataTableTest extends AbstractFacesTest {
+
+    private class MockArrangeableModel extends ExtendedDataModel<Object> implements Arrangeable {
+
+        private ArrangeableState state;
+        @Override
+        public Object getRowKey() {
+            return null;
+        }
+
+        @Override
+        public void setRowKey(Object key) {
+        }
+
+        @Override
+        public void walk(FacesContext context, DataVisitor visitor, Range range, Object argument) {
+        }
+
+        @Override
+        public int getRowCount() {
+            return 0;
+        }
+
+        @Override
+        public Object getRowData() {
+            return null;
+        }
+
+        @Override
+        public int getRowIndex() {
+            return 0;
+        }
+
+        @Override
+        public Object getWrappedData() {
+            return null;
+        }
+
+        @Override
+        public boolean isRowAvailable() {
+            return false;
+        }
+
+        @Override
+        public void setRowIndex(int rowIndex) {
+        }
+
+        @Override
+        public void setWrappedData(Object data) {
+        }
+
+        public void arrange(FacesContext context, ArrangeableState state) {
+            this.state = state;
+        }
+
+        public ArrangeableState getState() {
+            return state;
+        }
+        
+    }
+    private UIDataTable table = null;
+    
+    /**
+     * @throws java.lang.Exception
+     */
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        setupFacesRequest();
+        table = new UIDataTable();
+    }
+
+    /**
+     * @throws java.lang.Exception
+     */
+    @After
+    public void tearDown() throws Exception {
+        table = null;
+        super.tearDown();
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#getRendersChildren()}.
+     */
+    @Test
+    public void testGetRendersChildren() {
+        Assert.assertTrue(table.getRendersChildren());
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#dataChildren()}.
+     */
+    @Test
+    public void testDataChildren() {
+        Assert.assertTrue(table.dataChildren() instanceof DataTableDataIterator);
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#fixedChildren()}.
+     */
+    @Test
+    public void testFixedChildren() {
+        Assert.assertTrue(table.fixedChildren() instanceof DataTableFixedChildrenIterator);
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#createExtendedDataModel()}.
+     */
+    @Test
+    public void testCreateExtendedDataModel() {
+        Assert.assertFalse(table.createExtendedDataModel() instanceof Arrangeable);        
+        List<String> sortPriority = Arrays.asList("id2", "id0", "id1"); 
+        List<UIComponent> children = table.getChildren();
+        ExpressionFactory expressionFactory = facesContext.getApplication().getExpressionFactory();
+        ELContext elContext = facesContext.getELContext();
+        UIColumn column = new UIColumn();
+        column.setRendered(false);
+        children.add(column);
+        for (int i = 0; i < sortPriority.size(); i++) {
+            UIColumn child = new UIColumn();
+            child.setId("id" + i);
+            child.setValueExpression("filterExpression", expressionFactory
+                .createValueExpression(elContext, "#{'id" + i + "'}", Object.class));
+            child.setValueExpression("sortBy", expressionFactory
+                .createValueExpression(elContext, "#{'id" + i + "'}", Object.class));
+            child.setSortOrder(SortOrder.ascending);
+            children.add(child);
+        }
+        Assert.assertTrue(table.createExtendedDataModel() instanceof Arrangeable);
+        MockArrangeableModel model = new MockArrangeableModel();
+        table.setValue(model);
+        table.setSortPriority(sortPriority);
+        Assert.assertSame(model, table.createExtendedDataModel());
+        ArrangeableState state = model.getState();
+        List<FilterField> filterFields = state.getFilterFields();
+        for (int i = 0; i < sortPriority.size(); i++) {
+            Assert.assertEquals("id" + i , filterFields.get(i).getFilterExpression().getValue(elContext));
+        }
+        List<SortField> sortFields = state.getSortFields();
+        for (int i = 0; i < sortPriority.size(); i++) {
+            Assert.assertEquals(sortPriority.get(i), sortFields.get(i).getSortBy().getValue(elContext));
+        }
+        Assert.assertEquals(facesContext.getViewRoot().getLocale(), state.getLocale());
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#columns()}.
+     */
+    @Test
+    public void testColumns() {
+        Assert.assertTrue(table.columns() instanceof DataTableColumnsIterator);
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#getHeader()}.
+     */
+    @Test
+    public void testGetHeader() {
+        UIOutput component = new UIOutput();
+        table.getFacets().put("header", component);
+        Assert.assertSame(component, table.getHeader());
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#getFooter()}.
+     */
+    @Test
+    public void testGetFooter() {
+        UIOutput component = new UIOutput();
+        table.getFacets().put("footer", component);
+        Assert.assertSame(component, table.getFooter());
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#getFilterVar()} and
+     * {@link org.richfaces.component.UIDataTableBase#setFilterVar(java.lang.String)}.
+     */
+    @Test
+    public void testFilterVar() {
+        String string = "fv";
+        table.setFilterVar(string);
+        Assert.assertEquals(string, table.getFilterVar());
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#getSortPriority()} and
+     * {@link org.richfaces.component.UIDataTableBase#setSortPriority(java.util.Collection)}.
+     */
+    @Test
+    public void testSortPriority() {
+        table.setSortPriority(Collections.EMPTY_LIST);
+        Assert.assertEquals(Collections.EMPTY_LIST, table.getSortPriority());
+    }
+
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#getSortMode()} and 
+     * {@link org.richfaces.component.UIDataTableBase#setSortMode(org.richfaces.model.SortMode)}.
+     */
+    @Test
+    public void testSortMode() {
+        table.setSortMode(SortMode.multi);
+        Assert.assertEquals(SortMode.multi, table.getSortMode());
+    }
+    
+    /**
+     * Test method for {@link org.richfaces.component.UIDataTableBase#isColumnFacetPresent(java.lang.String)}.
+     */
+    @Test
+    public void testIsColumnFacetPresent() {
+        String facetName = "header";
+        Assert.assertFalse(table.isColumnFacetPresent(facetName));
+        UIColumn child = new UIColumn();
+        List<UIComponent> children = table.getChildren();
+        children.add(new UIColumn());
+        children.add(child);
+        Assert.assertFalse(table.isColumnFacetPresent(facetName));
+        child.getFacets().put(facetName, new UIOutput());
+        Assert.assertTrue(table.isColumnFacetPresent(facetName));
+        child.setRendered(false);
+        Assert.assertFalse(table.isColumnFacetPresent(facetName));
+    }
+}



More information about the richfaces-svn-commits mailing list