/** * */ package org.javabuilders.test; import org.javabuilders.layout.ControlConstraint; import org.javabuilders.layout.HAlign; import org.javabuilders.layout.LayoutCell; import org.javabuilders.layout.LayoutException; import org.javabuilders.layout.Size; import org.javabuilders.layout.VAlign; import org.junit.Test; import static org.junit.Assert.*; import static org.javabuilders.layout.ControlConstraint.*; /** * JUnit tests for ControlConstraint * @author Jacek Furmankiewicz * */ @SuppressWarnings("unused") public class ControlConstraintTest { private final String control1="control1"; @Test public void justName() throws Exception { ControlConstraint c = new ControlConstraint(control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void rightAligned() throws Exception { ControlConstraint c = new ControlConstraint(HALIGN_RIGHT + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.RIGHT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void centered() throws Exception { ControlConstraint c = new ControlConstraint(HALIGN_CENTER + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.CENTER, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void middle() throws Exception { ControlConstraint c = new ControlConstraint(VALIGN_MIDDLE + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.MIDDLE, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void bottom() throws Exception { ControlConstraint c = new ControlConstraint(VALIGN_BOTTOM + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.BOTTOM, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void middleAndCenter() throws Exception { ControlConstraint c = new ControlConstraint("" + HALIGN_CENTER + VALIGN_MIDDLE + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.CENTER, c.getHAlign()); assertEquals(VAlign.MIDDLE, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void centerAndMiddle() throws Exception { ControlConstraint c = new ControlConstraint("" + HALIGN_CENTER + VALIGN_MIDDLE + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.CENTER, c.getHAlign()); assertEquals(VAlign.MIDDLE, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void bottomAndCenter() throws Exception { ControlConstraint c = new ControlConstraint("" + VALIGN_BOTTOM + HALIGN_CENTER + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.CENTER, c.getHAlign()); assertEquals(VAlign.BOTTOM, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void centerAndBottom() throws Exception { ControlConstraint c = new ControlConstraint("" + HALIGN_CENTER + VALIGN_BOTTOM + control1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.CENTER, c.getHAlign()); assertEquals(VAlign.BOTTOM, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void nameAndHSpan1() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + 1); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void nameAndHSpan2() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + 2); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(2,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void nameAndHSpan1AndVSpan2() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + 1 + LayoutCell.SPAN_INDICATOR + 2); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(2,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void nameAndHSpan2AndVSpan2() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + 2 + LayoutCell.SPAN_INDICATOR + 2); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(2,c.getHSpan()); assertEquals(2,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void testMinWidth() { ControlConstraint c = new ControlConstraint("control1<"); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.MIN, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void testPrefWidth() { ControlConstraint c = new ControlConstraint("control1|"); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.PREF, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void testMaxWidth() { ControlConstraint c = new ControlConstraint("control1>"); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.MAX, c.getHSize()); assertEquals(Size.DEFAULT, c.getVSize()); } @Test public void testMinHeight() { ControlConstraint c = new ControlConstraint("control1^"); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.MIN, c.getVSize()); } @Test public void testPrefHeight() { ControlConstraint c = new ControlConstraint("control1-"); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.PREF, c.getVSize()); } @Test public void testMaxHeight() { ControlConstraint c = new ControlConstraint("control1/"); assertEquals(control1,c.getControlName()); assertEquals(HAlign.DEFAULT, c.getHAlign()); assertEquals(VAlign.DEFAULT, c.getVAlign()); assertEquals(1,c.getHSpan()); assertEquals(1,c.getVSpan()); assertEquals(Size.DEFAULT, c.getHSize()); assertEquals(Size.MAX, c.getVSize()); } @Test public void testAllSizeCombination() { ControlConstraint c = new ControlConstraint("control1+2+3=4</"); assertEquals(control1,c.getControlName()); assertEquals(2,c.getHSpan()); assertEquals(3,c.getVSpan()); assertEquals(new Integer(4),c.getSizeGroup()); assertEquals(Size.MIN, c.getHSize()); assertEquals(Size.MAX, c.getVSize()); } @Test(expected=LayoutException.class) public void invalidSpanException() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR); } @Test(expected=LayoutException.class) public void invalidNumericHSpanException() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + "A"); } @Test(expected=LayoutException.class) public void invalidNumericVSpanException() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + 1 + LayoutCell.SPAN_INDICATOR + "A"); } @Test(expected=LayoutException.class) public void invalidNumberOfSpansException() throws Exception { ControlConstraint c = new ControlConstraint("" + control1 + LayoutCell.SPAN_INDICATOR + 1 + LayoutCell.SPAN_INDICATOR + "1" + LayoutCell.SPAN_INDICATOR + 4); } }