package org.javabuilders.test;
import static org.junit.Assert.*;
import java.util.List;
import org.javabuilders.layout.ControlConstraint;
import org.javabuilders.layout.LayoutConstraints;
import org.javabuilders.util.JBStringUtils;
import org.junit.Test;
public class LayoutConstraintsTest {
@Test
public void testQuotesAndCommas() {
String test = "11\"a,b\"11,22\"c, d\"22";
List<String> tokens = JBStringUtils.split(test, ',');
assertEquals(2, tokens.size());
assertEquals("11\"a,b\"11",tokens.get(0));
assertEquals("22\"c, d\"22",tokens.get(1));
}
@Test
public void testCellSplittingWithLiteralControlsAndEmbeddedCommas() {
String layout =" >\"label,1\"=5,\"label,2\" date=5";
LayoutConstraints c = LayoutConstraints.getParsedLayoutConstraints(layout, "[]","[]");
List<ControlConstraint> controls = c.getCellAt(0,0).getControls();
assertEquals(2, controls.size());
assertEquals("\"label,1\"", controls.get(0).getControlName());
assertEquals("\"label,2\"", controls.get(1).getControlName());
assertEquals(new Integer(5), controls.get(0).getSizeGroup());
controls = c.getCellAt(0,1).getControls();
assertEquals(1, controls.size());
assertEquals("date", controls.get(0).getControlName());
}
@Test
public void testSimpleStringLiteralControls() {
String layout =
" \"First Name\" firstName";
LayoutConstraints c = LayoutConstraints.getParsedLayoutConstraints(layout, "[]","[]");
List<ControlConstraint> controls = c.getCellAt(0,0).getControls();
assertEquals(1, controls.size());
assertEquals("\"First Name\"", controls.get(0).getControlName());
controls = c.getCellAt(0,1).getControls();
assertEquals(1, controls.size());
assertEquals("firstName", controls.get(0).getControlName());
}
@Test
public void testComplexSimpleStringLiteralControls() {
String layout =
" >\"First Name\"=5 firstName=5";
LayoutConstraints c = LayoutConstraints.getParsedLayoutConstraints(layout, "[]","[]");
List<ControlConstraint> controls = c.getCellAt(0,0).getControls();
assertEquals(1, controls.size());
assertEquals("\"First Name\"", controls.get(0).getControlName());
assertEquals(new Integer(5), controls.get(0).getSizeGroup());
controls = c.getCellAt(0,1).getControls();
assertEquals(1, controls.size());
assertEquals("firstName", controls.get(0).getControlName());
}
@Test
public void testComplexSimpleStringLiteralControlsWithEmbeddedCharacters() {
String layout =
" >\"Date YYYY/MM/DD\"=5 date=5";
LayoutConstraints c = LayoutConstraints.getParsedLayoutConstraints(layout, "[]","[]");
List<ControlConstraint> controls = c.getCellAt(0,0).getControls();
assertEquals(1, controls.size());
assertEquals("\"Date YYYY/MM/DD\"", controls.get(0).getControlName());
assertEquals(new Integer(5), controls.get(0).getSizeGroup());
controls = c.getCellAt(0,1).getControls();
assertEquals(1, controls.size());
assertEquals("date", controls.get(0).getControlName());
}
@Test
public void testCellSplittingWithLiteralControls() {
String layout =" >\"Date YYYY/MM/DD\"=5,someLabel date=5";
LayoutConstraints c = LayoutConstraints.getParsedLayoutConstraints(layout, "[]","[]");
List<ControlConstraint> controls = c.getCellAt(0,0).getControls();
assertEquals(2, controls.size());
assertEquals("\"Date YYYY/MM/DD\"", controls.get(0).getControlName());
assertEquals("someLabel", controls.get(1).getControlName());
assertEquals(new Integer(5), controls.get(0).getSizeGroup());
controls = c.getCellAt(0,1).getControls();
assertEquals(1, controls.size());
assertEquals("date", controls.get(0).getControlName());
}
@Test
public void testCellSplittingWith2LiteralControls() {
String layout =" >\"Date YYYY/MM/DD\"=5,\"Some other label\" date=5";
LayoutConstraints c = LayoutConstraints.getParsedLayoutConstraints(layout, "[]","[]");
List<ControlConstraint> controls = c.getCellAt(0,0).getControls();
assertEquals(2, controls.size());
assertEquals("\"Date YYYY/MM/DD\"", controls.get(0).getControlName());
assertEquals("\"Some other label\"", controls.get(1).getControlName());
assertEquals(new Integer(5), controls.get(0).getSizeGroup());
controls = c.getCellAt(0,1).getControls();
assertEquals(1, controls.size());
assertEquals("date", controls.get(0).getControlName());
}
}