From c9b80f52118ba867c0a5cc94a7ea9776b1baeff4 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 20 Oct 2010 11:17:28 +0000 Subject: [PATCH] more TypedTableModelBuilder tests SVN: 18383 --- .../util/TypedTableModelBuilderTest.java | 95 ++++++++++++++++++- 1 file changed, 91 insertions(+), 4 deletions(-) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilderTest.java index 2d14ad27ae3..3171e188636 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilderTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/TypedTableModelBuilderTest.java @@ -16,6 +16,9 @@ package ch.systemsx.cisd.openbis.generic.shared.util; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; import java.util.List; import org.testng.AssertJUnit; @@ -23,14 +26,18 @@ import org.testng.annotations.Test; import com.google.gwt.user.client.rpc.IsSerializable; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DateTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DoubleTableCell; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IntegerTableCell; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.StringTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; -import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder; /** * @@ -47,7 +54,7 @@ public class TypedTableModelBuilderTest extends AssertJUnit public void testSimpleBuilding() { TypedTableModelBuilder<IsSerializable> builder = new TypedTableModelBuilder<IsSerializable>(); - builder.addColumn("A").withTitle("Alpha"); + builder.addColumn("A").withTitle("Alpha").hideByDefault(); builder.addColumn("B").withDataType(DataTypeCode.REAL).withDefaultWidth(500); MockSerializable object = new MockSerializable(); builder.addRow(object); @@ -58,9 +65,11 @@ public class TypedTableModelBuilderTest extends AssertJUnit List<TableModelColumnHeader> headers = model.getHeader(); assertHeadersOrder(headers, "A", "B"); assertEquals("Alpha", headers.get(0).getTitle()); + assertEquals(true, headers.get(0).isHidden()); assertEquals(150, headers.get(0).getDefaultColumnWidth()); assertEquals(DataTypeCode.VARCHAR, headers.get(0).getDataType()); assertEquals(null, headers.get(1).getTitle()); + assertEquals(false, headers.get(1).isHidden()); assertEquals(500, headers.get(1).getDefaultColumnWidth()); assertEquals(DataTypeCode.REAL, headers.get(1).getDataType()); List<TableModelRowWithObject<IsSerializable>> rows = model.getRows(); @@ -71,6 +80,83 @@ public class TypedTableModelBuilderTest extends AssertJUnit assertEquals(1, rows.size()); } + @Test + public void testBuildingWithGroups() + { + TypedTableModelBuilder<IsSerializable> builder = new TypedTableModelBuilder<IsSerializable>(); + MockSerializable object = new MockSerializable(); + builder.addRow(object); + builder.columnGroup("g1").column("a1").addDate(new Date(4711)); + builder.columnGroup("g2").column("a2").addDouble(2.125); + builder.columnGroup("g1").column("b1").addString("hello"); + builder.columnGroup("g2").column("b2").addInteger(42L); + + TypedTableModel<IsSerializable> model = builder.getModel(); + List<TableModelColumnHeader> headers = model.getHeader(); + assertHeadersOrder(headers, "a1", "b1", "a2", "b2"); + assertEquals(DataTypeCode.TIMESTAMP, headers.get(0).getDataType()); + assertEquals(DataTypeCode.VARCHAR, headers.get(1).getDataType()); + assertEquals(DataTypeCode.REAL, headers.get(2).getDataType()); + assertEquals(DataTypeCode.INTEGER, headers.get(3).getDataType()); + List<TableModelRowWithObject<IsSerializable>> rows = model.getRows(); + assertEquals(new DateTableCell(4711), rows.get(0).getValues().get(0)); + assertEquals(new StringTableCell("hello"), rows.get(0).getValues().get(1)); + assertEquals(new DoubleTableCell(2.125), rows.get(0).getValues().get(2)); + assertEquals(new IntegerTableCell(42), rows.get(0).getValues().get(3)); + assertEquals(1, rows.size()); + } + + @Test + public void testAddProperties() + { + TypedTableModelBuilder<IsSerializable> builder = new TypedTableModelBuilder<IsSerializable>(); + builder.addRow(new MockSerializable()); + IEntityProperty p1 = property("beta", "3.25", DataTypeCode.REAL); + IEntityProperty p2 = property("alpha", "hello\nworld", DataTypeCode.MULTILINE_VARCHAR); + IEntityProperty p3 = property("gamma", "hello", DataTypeCode.VARCHAR); + builder.columnGroup("g").addProperties("MY-", Arrays.asList(p1, p2, p3)); + builder.addRow(new MockSerializable()); + IEntityProperty p4 = property("gamma", "hi", DataTypeCode.VARCHAR); + IEntityProperty p5 = property("kappa", "42", DataTypeCode.INTEGER); + builder.columnGroup("g").addProperties("MY-", Arrays.asList(p4, p5)); + + + TypedTableModel<IsSerializable> model = builder.getModel(); + List<TableModelColumnHeader> headers = model.getHeader(); + assertHeadersOrder(headers, "MY-ALPHA", "MY-BETA", "MY-GAMMA", "MY-KAPPA"); + assertEquals("alpha", headers.get(0).getTitle()); + assertEquals(DataTypeCode.MULTILINE_VARCHAR, headers.get(0).getDataType()); + assertEquals("beta", headers.get(1).getTitle()); + assertEquals(DataTypeCode.REAL, headers.get(1).getDataType()); + assertEquals("gamma", headers.get(2).getTitle()); + assertEquals(DataTypeCode.VARCHAR, headers.get(2).getDataType()); + assertEquals("kappa", headers.get(3).getTitle()); + assertEquals(DataTypeCode.INTEGER, headers.get(3).getDataType()); + List<TableModelRowWithObject<IsSerializable>> rows = model.getRows(); + assertEquals(new StringTableCell("hello\nworld"), rows.get(0).getValues().get(0)); + assertEquals(new DoubleTableCell(3.25), rows.get(0).getValues().get(1)); + assertEquals(new StringTableCell("hello"), rows.get(0).getValues().get(2)); + assertEquals(new StringTableCell(""), rows.get(0).getValues().get(3)); + assertEquals(new StringTableCell(""), rows.get(1).getValues().get(0)); + assertEquals(new StringTableCell(""), rows.get(1).getValues().get(1)); + assertEquals(new StringTableCell("hi"), rows.get(1).getValues().get(2)); + assertEquals(new IntegerTableCell(42), rows.get(1).getValues().get(3)); + + assertEquals(2, rows.size()); + } + + private IEntityProperty property(String key, String value, DataTypeCode type) + { + EntityProperty property = new EntityProperty(); + PropertyType propertyType = new PropertyType(); + propertyType.setCode(key.toUpperCase()); + propertyType.setLabel(key); + propertyType.setDataType(new DataType(type)); + property.setPropertyType(propertyType); + property.setValue(value); + return property; + } + @Test public void testAddIntegerValueToColumn() { @@ -146,12 +232,13 @@ public class TypedTableModelBuilderTest extends AssertJUnit private void assertHeadersOrder(List<TableModelColumnHeader> headers, String... headerIds) { + List<String> actualHeaderIds = new ArrayList<String>(); for (int i = 0; i < headerIds.length; i++) { TableModelColumnHeader header = headers.get(i); - assertEquals(headerIds[i], header.getId()); assertEquals(i, header.getIndex()); + actualHeaderIds.add(header.getId()); } - assertEquals(headerIds.length, headers.size()); + assertEquals(Arrays.asList(headerIds).toString(), actualHeaderIds.toString()); } } -- GitLab