/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestConstrainedProperty.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.site; import com.uwyn.rife.tools.BeanImpl; import java.text.SimpleDateFormat; import java.util.Date; import junit.framework.TestCase; public class TestConstrainedProperty extends TestCase { public TestConstrainedProperty(String name) { super(name); } public void testIllegalInstantiation() { try { new ConstrainedProperty(null); fail(); } catch (IllegalArgumentException e) { assertTrue(true); } try { new ConstrainedProperty(""); fail(); } catch (IllegalArgumentException e) { assertTrue(true); } } public void testInstantiation() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertEquals("the_name", property.getPropertyName()); assertEquals("the_name", property.getSubjectName()); assertFalse(property.isNotNull()); assertFalse(property.isNotEmpty()); assertFalse(property.isNotEqual()); assertFalse(property.isUnique()); assertFalse(property.isIdentifier()); assertTrue(property.isEditable()); assertTrue(property.isSaved()); assertFalse(property.isDisplayedRaw()); assertTrue(property.isPersistent()); assertFalse(property.hasLimitedLength()); assertFalse(property.hasPrecision()); assertFalse(property.hasScale()); assertEquals(-1, property.getMinLength()); assertEquals(-1, property.getMaxLength()); assertNull(property.getRegexp()); assertFalse(property.matchesRegexp()); assertFalse(property.isEmail()); assertFalse(property.isUrl()); assertNull(property.getMinDate()); assertNull(property.getMaxDate()); assertFalse(property.isLimitedDate()); assertNull(property.getFormat()); assertFalse(property.isFormatted()); assertNull(property.getInList()); assertFalse(property.isInList()); assertNull(property.getDefaultValue()); assertFalse(property.hasDefaultValue()); assertFalse(property.hasManyToOne()); assertNull(property.getManyToOne()); assertFalse(property.isEmail()); } public void testSubjectName() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.subjectName("subject")); assertEquals("subject", property.getSubjectName()); property.subjectName("subject2"); assertEquals("subject2", property.getSubjectName()); } public void testMandatory() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notNull(true)); assertTrue(property.isNotNull()); property.setNotNull(false); assertFalse(property.isNotNull()); } public void testNotEmpty() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEmpty(true)); assertTrue(property.isNotEmpty()); assertSame(property, property.notEmpty(false)); assertFalse(property.isNotEmpty()); } public void testNotEqualBoolean() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual(true)); assertTrue(property.isNotEqual()); assertEquals(true, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualChar() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual('K')); assertTrue(property.isNotEqual()); assertEquals('K', property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualByte() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual((byte)23)); assertTrue(property.isNotEqual()); assertEquals((byte)23, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualShort() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual((short)432)); assertTrue(property.isNotEqual()); assertEquals((short)432, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualInt() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual(5452)); assertTrue(property.isNotEqual()); assertEquals(5452, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualLong() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual(34386434L)); assertTrue(property.isNotEqual()); assertEquals(34386434L, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualFloat() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual(435.23f)); assertTrue(property.isNotEqual()); assertEquals(435.23f, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqualDouble() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual(3983498.234d)); assertTrue(property.isNotEqual()); assertEquals(3983498.234d, property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testNotEqual() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.notEqual("value")); assertTrue(property.isNotEqual()); assertEquals("value", property.getNotEqual()); assertSame(property, property.notEqual(null)); assertFalse(property.isNotEqual()); assertNull(property.getNotEqual()); } public void testUnique() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.unique(true)); assertTrue(property.isUnique()); assertSame(property, property.unique(false)); assertFalse(property.isUnique()); } public void testIdentifier() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.identifier(true)); assertTrue(property.isIdentifier()); assertSame(property, property.identifier(false)); assertFalse(property.isIdentifier()); } public void testEditable() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.editable(false)); assertFalse(property.isEditable()); assertSame(property, property.editable(true)); assertTrue(property.isEditable()); } public void testSaved() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.saved(false)); assertFalse(property.isSaved()); assertSame(property, property.saved(true)); assertTrue(property.isSaved()); } public void testDisplayedRaw() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.displayedRaw(true)); assertTrue(property.isDisplayedRaw()); assertSame(property, property.displayedRaw(false)); assertFalse(property.isDisplayedRaw()); } public void testPersistent() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.persistent(false)); assertFalse(property.isPersistent()); assertSame(property, property.persistent(true)); assertTrue(property.isPersistent()); } public void testLimitedLength() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.minLength(5)); assertTrue(property.hasLimitedLength()); assertEquals(5, property.getMinLength()); assertSame(property, property.minLength(0)); assertFalse(property.hasLimitedLength()); assertSame(property, property.maxLength(0)); assertTrue(property.hasLimitedLength()); assertTrue(property.hasPrecision()); assertEquals(0, property.getMaxLength()); assertEquals(0, property.getPrecision()); assertSame(property, property.maxLength(10)); assertTrue(property.hasLimitedLength()); assertTrue(property.hasPrecision()); assertEquals(10, property.getMaxLength()); assertEquals(10, property.getPrecision()); assertSame(property, property.maxLength(-1)); assertFalse(property.hasLimitedLength()); assertFalse(property.hasPrecision()); assertEquals(-1, property.getMaxLength()); assertEquals(-1, property.getPrecision()); assertSame(property, property.minLength(7)); assertSame(property, property.maxLength(27)); assertTrue(property.hasLimitedLength()); assertEquals(7, property.getMinLength()); assertEquals(27, property.getMaxLength()); } public void testPrecision() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.precision(0)); assertTrue(property.hasPrecision()); assertTrue(property.hasLimitedLength()); assertEquals(0, property.getPrecision()); assertEquals(0, property.getMaxLength()); assertSame(property, property.precision(10)); assertTrue(property.hasPrecision()); assertTrue(property.hasLimitedLength()); assertEquals(10, property.getPrecision()); assertEquals(10, property.getMaxLength()); assertSame(property, property.precision(-1)); assertFalse(property.hasPrecision()); assertFalse(property.hasLimitedLength()); assertEquals(-1, property.getPrecision()); assertEquals(-1, property.getMaxLength()); } public void testScale() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.scale(0)); assertTrue(property.hasScale()); assertEquals(0, property.getScale()); assertSame(property, property.scale(10)); assertTrue(property.hasScale()); assertEquals(10, property.getScale()); assertSame(property, property.scale(-1)); assertFalse(property.hasScale()); assertEquals(-1, property.getScale()); } public void testRegexp() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.regexp("/l/k/")); assertTrue(property.matchesRegexp()); assertEquals("/l/k/", property.getRegexp()); assertSame(property, property.regexp(null)); assertFalse(property.matchesRegexp()); assertNull(property.getRegexp()); } public void testEmail() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.email(true)); assertTrue(property.isEmail()); assertSame(property, property.email(false)); assertFalse(property.isEmail()); } public void testUrl() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.url(true)); assertTrue(property.isUrl()); assertSame(property, property.url(false)); assertFalse(property.isUrl()); } public void testLimitedDate() { Date date1 = new Date(); Date date2 = new Date(); ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.minDate(date1)); assertTrue(property.isLimitedDate()); assertSame(date1, property.getMinDate()); assertSame(property, property.minDate(null)); assertFalse(property.isLimitedDate()); assertNull(property.getMinDate()); assertSame(property, property.maxDate(date2)); assertTrue(property.isLimitedDate()); assertSame(date2, property.getMaxDate()); assertSame(property, property.maxDate(null)); assertFalse(property.isLimitedDate()); assertNull(property.getMaxDate()); assertSame(property, property.minDate(date2)); assertSame(property, property.maxDate(date1)); assertTrue(property.isLimitedDate()); assertSame(date2, property.getMinDate()); assertSame(date1, property.getMaxDate()); } public void testFormat() { SimpleDateFormat format = new SimpleDateFormat("dd/mm/yyyy"); ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.format(format)); assertTrue(property.isFormatted()); assertSame(format, property.getFormat()); assertSame(property, property.format(null)); assertFalse(property.isFormatted()); assertNull(property.getFormat()); } public void testInList() { String[] list = new String[] {"one", "two"}; ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.inList(list)); assertTrue(property.isInList()); assertSame(list, property.getInList()); assertSame(property, property.inList((String[])null)); assertFalse(property.isInList()); assertNull(property.getInList()); list = new String[0]; assertSame(property, property.inList(list)); assertFalse(property.isInList()); assertSame(list, property.getInList()); } public void testRangeByte() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin((byte)5)); assertTrue(property.isRange()); assertEquals((byte)5, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd((byte)78)); assertTrue(property.isRange()); assertEquals((byte)78, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin((byte)7)); assertSame(property, property.rangeEnd((byte)27)); assertTrue(property.isRange()); assertEquals((byte)7, property.getRangeBegin()); assertEquals((byte)27, property.getRangeEnd()); } public void testRangeChar() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin('b')); assertTrue(property.isRange()); assertEquals('b', property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd('z')); assertTrue(property.isRange()); assertEquals('z', property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin('d')); assertSame(property, property.rangeEnd('g')); assertTrue(property.isRange()); assertEquals('d', property.getRangeBegin()); assertEquals('g', property.getRangeEnd()); } public void testRangeShort() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin((short)23)); assertTrue(property.isRange()); assertEquals((short)23, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd((short)534)); assertTrue(property.isRange()); assertEquals((short)534, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin((short)39)); assertSame(property, property.rangeEnd((short)3534)); assertTrue(property.isRange()); assertEquals((short)39, property.getRangeBegin()); assertEquals((short)3534, property.getRangeEnd()); } public void testRangeInt() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin(534)); assertTrue(property.isRange()); assertEquals(534, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd(6344)); assertTrue(property.isRange()); assertEquals(6344, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin(423)); assertSame(property, property.rangeEnd(89724)); assertTrue(property.isRange()); assertEquals(423, property.getRangeBegin()); assertEquals(89724, property.getRangeEnd()); } public void testRangeLong() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin(242L)); assertTrue(property.isRange()); assertEquals(242L, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd(783658L)); assertTrue(property.isRange()); assertEquals(783658L, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin(2432L)); assertSame(property, property.rangeEnd(9872949L)); assertTrue(property.isRange()); assertEquals(2432L, property.getRangeBegin()); assertEquals(9872949L, property.getRangeEnd()); } public void testRangeFloat() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin(234.32f)); assertTrue(property.isRange()); assertEquals(234.32f, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd(9887.23f)); assertTrue(property.isRange()); assertEquals(9887.23f, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin(12.8f)); assertSame(property, property.rangeEnd(89736.25f)); assertTrue(property.isRange()); assertEquals(12.8f, property.getRangeBegin()); assertEquals(89736.25f, property.getRangeEnd()); } public void testRangeDouble() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin(290.523d)); assertTrue(property.isRange()); assertEquals(290.523d, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd(7623847.3453d)); assertTrue(property.isRange()); assertEquals(7623847.3453d, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin(24.2348d)); assertSame(property, property.rangeEnd(423987.2345d)); assertTrue(property.isRange()); assertEquals(24.2348d, property.getRangeBegin()); assertEquals(423987.2345d, property.getRangeEnd()); } public void testRange() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.rangeBegin(new Integer(5))); assertTrue(property.isRange()); assertEquals(5, property.getRangeBegin()); assertSame(property, property.rangeBegin(null)); assertFalse(property.isRange()); assertNull(property.getRangeBegin()); assertSame(property, property.rangeEnd(new Integer(78))); assertTrue(property.isRange()); assertEquals(78, property.getRangeEnd()); assertSame(property, property.rangeEnd(null)); assertFalse(property.isRange()); assertNull(property.getRangeEnd()); assertSame(property, property.rangeBegin(new Integer(7))); assertSame(property, property.rangeEnd(new Integer(27))); assertTrue(property.isRange()); assertEquals(7, property.getRangeBegin()); assertEquals(27, property.getRangeEnd()); } public void testDefaultValueChar() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue('C')); assertTrue(property.hasDefaultValue()); assertEquals('C', property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueBoolean() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue(false)); assertTrue(property.hasDefaultValue()); assertEquals(false, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueByte() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue((byte)89)); assertTrue(property.hasDefaultValue()); assertEquals((byte)89, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueDouble() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue(87923.878d)); assertTrue(property.hasDefaultValue()); assertEquals(87923.878d, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueFloat() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue(61.9f)); assertTrue(property.hasDefaultValue()); assertEquals(61.9f, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueInt() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue(9824)); assertTrue(property.hasDefaultValue()); assertEquals(9824, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueLong() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue(2332979L)); assertTrue(property.hasDefaultValue()); assertEquals(2332979L, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueShort() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue((short)221)); assertTrue(property.hasDefaultValue()); assertEquals((short)221, property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testDefaultValueObject() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.defaultValue("the default")); assertTrue(property.hasDefaultValue()); assertEquals("the default", property.getDefaultValue()); assertSame(property, property.defaultValue(null)); assertFalse(property.hasDefaultValue()); assertNull(property.getDefaultValue()); } public void testManyToOne() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.manyToOne(BeanImpl.class, "column")); assertTrue(property.hasManyToOne()); assertEquals("column", property.getManyToOne().getColumn()); assertNull(property.getManyToOne().getTable()); assertEquals("beanimpl", property.getManyToOne().getDerivedTable()); property.manyToOne("tablename", "column"); assertTrue(property.hasManyToOne()); assertEquals("column", property.getManyToOne().getColumn()); assertEquals("tablename", property.getManyToOne().getTable()); assertEquals("tablename", property.getManyToOne().getDerivedTable()); } public void testFile() { ConstrainedProperty property = new ConstrainedProperty("the_name"); assertSame(property, property.file(true)); assertTrue(property.isFile()); assertSame(property, property.file(false)); assertFalse(property.isFile()); } }