package com.vaadin.v7.tests.server.component.table; import static org.junit.Assert.assertArrayEquals; import org.junit.Test; import com.vaadin.v7.ui.Table; import com.vaadin.v7.ui.Table.Align; public class TableColumnAlignmentsTest { @Test public void defaultColumnAlignments() { for (int properties = 0; properties < 10; properties++) { Table t = TableGeneratorTest .createTableWithDefaultContainer(properties, 10); Object[] expected = new Object[properties]; for (int i = 0; i < properties; i++) { expected[i] = Align.LEFT; } org.junit.Assert.assertArrayEquals("getColumnAlignments", expected, t.getColumnAlignments()); } } @Test public void explicitColumnAlignments() { int properties = 5; Table t = TableGeneratorTest.createTableWithDefaultContainer(properties, 10); Align[] explicitAlignments = new Align[] { Align.CENTER, Align.LEFT, Align.RIGHT, Align.RIGHT, Align.LEFT }; t.setColumnAlignments(explicitAlignments); assertArrayEquals("Explicit visible columns, 5 properties", explicitAlignments, t.getColumnAlignments()); } @Test public void invalidColumnAlignmentStrings() { Table t = TableGeneratorTest.createTableWithDefaultContainer(3, 7); Align[] defaultAlignments = new Align[] { Align.LEFT, Align.LEFT, Align.LEFT }; try { t.setColumnAlignments(new Align[] { Align.RIGHT, Align.RIGHT }); junit.framework.Assert .fail("No exception thrown for invalid array length"); } catch (IllegalArgumentException e) { // Ok, expected } assertArrayEquals("Invalid change affected alignments", defaultAlignments, t.getColumnAlignments()); } @Test public void columnAlignmentForPropertyNotInContainer() { Table t = TableGeneratorTest.createTableWithDefaultContainer(3, 7); Align[] defaultAlignments = new Align[] { Align.LEFT, Align.LEFT, Align.LEFT }; try { t.setColumnAlignment("Property 1200", Align.LEFT); // FIXME: Uncomment as there should be an exception (#6475) // junit.framework.Assert // .fail("No exception thrown for property not in container"); } catch (IllegalArgumentException e) { // Ok, expected } assertArrayEquals("Invalid change affected alignments", defaultAlignments, t.getColumnAlignments()); // FIXME: Uncomment as null should be returned (#6474) // junit.framework.Assert.assertEquals( // "Column alignment for property not in container returned", // null, t.getColumnAlignment("Property 1200")); } @Test public void invalidColumnAlignmentsLength() { Table t = TableGeneratorTest.createTableWithDefaultContainer(7, 7); Align[] defaultAlignments = new Align[] { Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT }; try { t.setColumnAlignments(new Align[] { Align.LEFT }); junit.framework.Assert .fail("No exception thrown for invalid array length"); } catch (IllegalArgumentException e) { // Ok, expected } assertArrayEquals("Invalid change affected alignments", defaultAlignments, t.getColumnAlignments()); try { t.setColumnAlignments(new Align[] {}); junit.framework.Assert .fail("No exception thrown for invalid array length"); } catch (IllegalArgumentException e) { // Ok, expected } assertArrayEquals("Invalid change affected alignments", defaultAlignments, t.getColumnAlignments()); try { t.setColumnAlignments(new Align[] { Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT }); junit.framework.Assert .fail("No exception thrown for invalid array length"); } catch (IllegalArgumentException e) { // Ok, expected } assertArrayEquals("Invalid change affected alignments", defaultAlignments, t.getColumnAlignments()); } @Test public void explicitColumnAlignmentOneByOne() { int properties = 5; Table t = TableGeneratorTest.createTableWithDefaultContainer(properties, 10); Align[] explicitAlignments = new Align[] { Align.CENTER, Align.LEFT, Align.RIGHT, Align.RIGHT, Align.LEFT }; Align[] currentAlignments = new Align[] { Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT, Align.LEFT }; for (int i = 0; i < properties; i++) { t.setColumnAlignment("Property " + i, explicitAlignments[i]); currentAlignments[i] = explicitAlignments[i]; assertArrayEquals( "Explicit visible columns, " + i + " alignments set", currentAlignments, t.getColumnAlignments()); } } }